加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux – 如何在gdb中搜索进程的所有内存?

发布时间:2021-01-08 02:37:59 所属栏目:Linux 来源:网络整理
导读:我正在尝试在我正在使用GDB附加的正在运行的进程中找到某个值(整数幻数(654321)). 我找到了一个find [/ sn] start_addr,len,val1 [,val2,]命令,但是它需要起始和结束地址,但我不知道我的进程内存在哪里开始以及它在哪里结束. 这似乎是一个非常普遍的问题,

我正在尝试在我正在使用GDB附加的正在运行的进程中找到某个值(整数幻数(654321)).
我找到了一个find [/ sn] start_addr,len,val1 [,val2,…]命令,但是它需要起始和结束地址,但我不知道我的进程内存在哪里开始以及它在哪里结束.

这似乎是一个非常普遍的问题,但我记得一年前谷歌搜索它,我现在重复,但没有成功,所以..
我如何知道进程内存的起始位置和结束位置? 最佳答案 “所有记忆”的概念在现代过程中是复杂的.你真正拥有的是来自不同来源的许多映射.您可以枚举这些(请确保不要尝试从没有读取权限的地图读取!此外,您可能希望应用一些智能,这样您最终不会搜索共享库的.text部分等…)在运行时读取/proc/$pid/maps,然后编写一些东西来为gdb提供相应的命令.老实说,我认为在二进制文件中编写例程来执行此操作并从gdb中调用它可能是最简单的.

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读