监视 GDB 中的变量访问
中断变量访问是调试复杂程序的有用技术。 GDB 中的多个观察点命令允许您监视变量的读取或写入。
watch 写入时中断,rwatch 读取时中断,以及 awatch 读/写操作中断。
内存访问观察点:
您可以使用 rwatch 在内存位置设置读取观察点。以下命令在地址 0xfeedface 上设置读取观察点:
gdb$ rwatch *0xfeedface
但是,您不能在 rwatch 和 awatch 的表达式中使用 GDB 变量。如果您尝试这样做,您将收到一条错误消息。相反,请手动展开表达式:
gdb$ print $ebx = 0x135700 gdb$ rwatch *0x135700+0xec1a04f
硬件和软件支持:
观察点支持取决于硬件或软件支持。硬件观察点要快得多。要检查您的操作系统是否支持硬件观察点,请使用 show can-use-hw-watchpoints 命令:
gdb$ show can-use-hw-watchpoints Debugger's willingness to use watchpoint hardware is 1.
如果输出为 1,则硬件观察点已启用。
以上是如何使用观察点监控 GDB 中的变量访问?的详细内容。更多信息请关注PHP中文网其他相关文章!