GDB hardware watchpoint very slow - why?

Posted by Laurynas Biveinis on Stack Overflow See other posts from Stack Overflow or by Laurynas Biveinis
Published on 2010-03-15T09:36:46Z Indexed on 2010/03/15 9:39 UTC
Read the original article Hit count: 352

Filed under:
|

On a large C application, I have set a hardware watchpoint on a memory address as follows:

(gdb) watch *((int*)0x12F5D58)
Hardware watchpoint 3: *((int*)0x12F5D58)

As you can see, it's a hardware watchpoint, not software, which would explain the slowness.

Now the application running time under debugger has changed from less than ten seconds to one hour and counting. The watchpoint has triggered three times so far, the first time after 15 minutes when the memory page containing the address was made readable by sbrk. Surely during those 15 minutes the watchpoint should have been efficient since the memory page was inaccessible? And that still does not explain, why it's so slow afterwards.

The GDB is

$ gdb --version
GNU gdb (GDB) 7.0-ubuntu
[...]

Thanks in advance for any ideas as what might be the cause or how to fix/work around it.

© Stack Overflow or respective owner

Related posts about gdb

Related posts about watchpoint