我正在使用一个.gdbinit 文件,它应该在每个 hook_stop 打印所有寄存器的值,然后是堆栈和数据帧。但是,在运行很多程序时,经常会出现段寄存器不可用的情况,这给我带来了问题。脚本在遇到这样的寄存器时中止。我收到错误消息:Error while running hook_stop: value is not available。由于错误,剩余的段寄存器没有打印出来,堆栈和数据帧也没有打印出来。
我想知道是否有办法处理 gdb 脚本语言中的错误,或者更好的是,只需测试寄存器是否可用,如果可用则仅打印它。我试过了:
if $ds
printf " %04X ", $ds
else
printf " ---- "
end
但这仍然给我错误。我通读了几个小时的文档,但找不到任何有用的东西。有任何想法吗?