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

前端之家收集整理的这篇文章主要介绍了linux – 如何在gdb中搜索进程的所有内存?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

这似乎是一个非常普遍的问题,但我记得一年前谷歌搜索它,我现在重复,但没有成功,所以..
我如何知道进程内存的起始位置和结束位置?

最佳答案
“所有记忆”的概念在现代过程中是复杂的.你真正拥有的是来自不同来源的许多映射.您可以枚举这些(请确保不要尝试从没有读取权限的地图读取!此外,您可能希望应用一些智能,这样您最终不会搜索共享库的.text部分等…)在运行时读取/proc/$pid/maps,然后编写一些东西来为gdb提供相应的命令.老实说,我认为在二进制文件中编写例程来执行此操作并从gdb中调用它可能是最简单的.

猜你在找的Linux相关文章