每次修改观察点时,GDB 都会打印旧值和新值。但是,有时我不想以默认的十进制整数格式打印该值:例如,如果我正在观察*(unsigned*)$ebp
调试可能的堆栈溢出(哇,SO...),除非以十六进制显示,否则该值是无意义的格式(例如p/x
打印某些内容时)。
是否可以为特定观察点设置显示格式?谢谢。
每次修改观察点时,GDB 都会打印旧值和新值。但是,有时我不想以默认的十进制整数格式打印该值:例如,如果我正在观察*(unsigned*)$ebp
调试可能的堆栈溢出(哇,SO...),除非以十六进制显示,否则该值是无意义的格式(例如p/x
打印某些内容时)。
是否可以为特定观察点设置显示格式?谢谢。
是否可以为特定观察点设置显示格式?
如果您希望观察点以十六进制打印,请将其设置为指针的观察点,例如
watch *(char**)$ebp or
watch *(void**)$ebp
set output-radix 16
请参考这个答案How to make gdb print out all values in hexadecimal mode? 您可以设置由于 gdb 发生的所有类型的打印(可能是因为断点、观察点或您的自定义打印)将具有十六进制格式。