GNU GDB:自定义watchpoint输出格式

时间:2013-04-07 23:38:23

标签: c debugging gdb breakpoints watchpoint

每次修改观察点时,GDB都会打印旧值和新值。但是,有时我不想以默认的十进制整数格式打印该值:例如,如果我正在观察*(unsigned*)$ebp以调试可能的堆栈溢出(哇,SO ......) ,除非以十六进制格式显示(如打印内容时为p/x),否则该值为无意义。

是否可以设置特定观察点的显示格式?感谢。

2 个答案:

答案 0 :(得分:0)

  

是否可以设置特定观察点的显示格式?

如果您希望观察点以十六进制打印,请将其设置为指针表,例如

watch *(char**)$ebp     or
watch *(void**)$ebp

答案 1 :(得分:0)

set output-radix 16

请参考此答案How to make gdb print out all values in hexadecimal mode? 您可以设置由于gdb而发生的所有类型的打印(可能是由于断点,观察点或您的自定义打印)将具有十六进制格式。