Watching expressions that don't involve memory (e.g., watch $regfoo)

Michael Snyder msnyder@vmware.com
Thu Mar 4 02:05:00 GMT 2010


Pedro Alves wrote:
> Anyone else things this is useful?  Here's a 5 minute hack at it.
> 
> It allows for e.g.:
> 
> (top-gdb) watch $rax
> Watchpoint 4: $rax
> (top-gdb) c
> Continuing.
> Watchpoint 4: $rax
> 
> Old value = 11802104
> New value = 140737488347216
> 0x0000000000456647 in main (argc=1, argv=0x7fffffffe158) at ../../src/gdb/gdb.c:28
> 28        memset (&args, 0, sizeof args);
> (top-gdb)
> 
> Current GDB will successfuly create the watchpoint in the
> breakpoint list, but it never triggers, because since the
> watchpoint isn't watching any memory, it ends up with
> no bp_location associated.
> 
> 
> For extra fun, even watching $_siginfo works.

I think watching registers, or expressions involving registers
(such as $sp > 0x10000000) could be incredibly useful.

Expressions on a varobj sound useful to watch too.

One question; what will happen if I watch a constant?




More information about the Gdb-patches mailing list