Search code examples
debugginggdbwatchpoint

Watchpoint a fixed address


For my current embedded application I am trying to put GDB watch point at a fixed memory address.

As an example, my application updates the following address: 0x10793ad0. In order to be sure which part of the code is corrupting the value, I tried

watch 0x10793ad0

Even though GDB does not print any error after this, it is not able to break during execution even though I verified the value is getting modified at between start and end of execution.

Questions:

  1. Can I really put watch at a fixed address? I didn't come across any such example online.
  2. Is this the right way or am I missing something?

Solution

  • The right way to set watchpoint on address is watch *0x10793ad0. See gdb doc.

    You can also specify what type GDB should interpret the memory address as. For example:

    watch *(unsigned char*)0x10793ad0
    

    or

    watch *(int*)0x10793ad0