假设我断点到一个变量,想知道变量前后地址的值,那怎么办呢
看图,

这是连个类的定义,我们看下运行时

添加一个监视(A*)(ph +sizeof(head)) ,就得到以ph为基准偏移sizeof(head)的一个地址。 把这个地址解释为A*,那么久可以查看A->a的值了,往下运行,看看最后是不是等于1,

显然我们是失败了,并不等于1,那么验证下地址是不是偏移错了

确实地址偏的太远了点,那么改成(A*)((char*)ph + sizeof(head)) , 验证

这下正确了,总结来说就是可以根据一个变量获取前后紧凑内存的值,对于调试数组这种连续变量或者内存池的额外信息有帮助。
Windows调试技巧:利用断点观察变量相邻内存

本文介绍了在Windows环境下进行断点调试时,如何通过监视变量的内存偏移来查看相邻变量的值。通过示例展示了如何设置监视表达式,以正确获取内存池或数组等连续内存区域的信息,这对于调试和理解程序运行状态非常有帮助。
最低0.47元/天 解锁文章

6万+

被折叠的 条评论
为什么被折叠?



