首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我可以在读/写地址时有gdb中断吗?

我可以在读/写地址时有gdb中断吗?
EN

Stack Overflow用户
提问于 2011-06-29 02:47:17
回答 1查看 29.6K关注 0票数 28

可能重复:

Can I set a breakpoint on 'memory access' in GDB?

我在内存中有一个特定的位置正在被损坏,我希望能够准确地看到事情写入该位置的时间。有没有办法让gdb中断对那个特定地址的内存访问?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-29 02:51:03

是。

使用观察点

监视-仅在写入时中断(并且仅当值更改时)

rwatch -读取时中断,以及

警告读/写时的- breaks。

来自一些互联网来源的更详细的简要介绍:

手表

监视是gdb设置数据断点的方式,如果指定位置的内存发生变化,则会暂停程序的执行。

可以在变量名或任何地址位置设置监视断点。

代码语言:javascript
复制
watch my_variable
watch *0x12345678
where 0x12345678 is a valid address.

rwatch

当程序试图从变量或内存位置读取时,rwatch (读-看)断点会中断代码的执行。

代码语言:javascript
复制
rwatch iWasAccessed
rwatch *0x12345678
where 0x12345678 is a valid address.

awatch

如果向变量或内存位置写入或读取变量或内存位置,则awatch或access监视会中断程序的执行。总而言之,awatches是集手表和rwatches于一体的手表。这是一种创建一个断点而不是两个单独断点的便捷方法。

代码语言:javascript
复制
awatch *0x12345678
where 0x12345678 is a valid address.
票数 55
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6511560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档