8

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

这似乎是一个很常见的问题,但我记得一年前在谷歌上搜索过,现在我重复了一遍,但没有成功,所以..我怎么知道进程内存从哪里开始和在哪里结束?

4

1 回答 1

4

“所有记忆”的概念在现代过程中是复杂的。您真正拥有的是来自不同来源的许多映射。通过在运行时读取/proc/$pid/maps,然后编写一些脚本来为 gdb 提供适当的命令。老实说,我认为在二进制文件本身中编写一个例程来执行此操作并从 gdb 调用它可能是最简单的。

于 2012-07-21T16:45:48.623 回答