在 GDB 中,您可以设置断点来监视特定变量并识别它们何时被访问或修改。以下是用于此目的的 GDB 命令和技术的细分:
观察点命令:
在内存位置设置观察点:
您可以使用 rwatch 在内存位置设置观察点命令:
gdb$ rwatch *0xfeedface
每当读取内存地址 0xfeedface 时,都会触发断点。
表达式上观察点的限制:
请注意不能在涉及的表达式上设置 GDB 观察点变量:
gdb$ rwatch $ebx+0xec1a04f Expression cannot be implemented with read/access watchpoint.
要解决此问题,请手动展开表达式:
gdb$ print $ebx = 0x135700 gdb$ rwatch *0x135700+0xec1a04f
硬件与软件支持:
硬件观察点提供比软件观察点更快的性能。要检查您的操作系统是否支持硬件观察点,请运行以下命令:
gdb$ show can-use-hw-watchpoints
如果输出为 1,则硬件观察点可用。
以上是如何使用断点监控 GDB 中的变量访问和内存读/写?的详细内容。更多信息请关注PHP中文网其他相关文章!