This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [rfc, rfa/doc] Multi-threaded watchpoint improvements


On Wed, Oct 24, 2007 at 02:22:00PM -0300, Luis Machado wrote:
> Hi Daniel,
> 
> This is what i get while trying to use a hardware watchpoint to monitor
> an int variable "i" that changes during a for statement (attached). Upon
> further investigation, it seems GDB is only calling
> "breakpoint_delete_event". I don't see GDB calling
> "breakpoint_create_event" anywhere except in the momment i created the
> watchpoint up there, so i presume that's the reason it's not triggering.

That's the only time it is supposed to be called; it's the event at
the creation of a breakpoint.  THe user creates it, it lives until it
is deleted.

> (gdb) watch i
> During symbol reading, incomplete CFI data; unspecified registers (e.g.,
> r0) at 0x10000738.
> breakpoint_create_event (CREATED!)
> Hardware watchpoint 2: i
> (gdb) n
> 41              res = pthread_create(&threads[i],
> (gdb)
> [New Thread 0x40000a26240 (LWP 3290)]
> breakpoint_delete_event (DELETED! After this point, no more creations.)

GDB has stopped for some reason and checked whether the watchpoint on
i is still in scope.  It thinks it isn't.  This may be an unwinder
problem.  Since the scope is gone, the watchpoint is deleted.

When you have a problem with watchpoints it's useful to remember that
watchpoints on local variables are by far the most complicated kind.
See if they still work on a global variable or a memory location.

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]