我试图find一个特定的值(整数幻数(654321))在我正在使用GDB连接到正在运行的进程中。 我发现一个find [/sn] start_addr, +len, val1 [, val2, ...]命令,但它需要开始和结束地址,但是我不知道我的进程内存在哪里开始以及结束。
这似乎是非常普遍的问题,但我记得一年前使用Googlesearch,现在我没有重复,所以..我怎么知道进程内存的开始和结束?
“全部记忆”的思想在现代化进程中是复杂的。 你真的有许多来自不同来源的映射。 你可以枚举这些(一定不要尝试从没有读取权限的地图上读取!另外,你可能想要应用一些智能,所以你最终不会搜索共享库的.text部分等)在运行时读取/proc/$pid/maps ,然后编写脚本来为gdb提供适当的命令。 老实说,我认为在二进制文件中编写例程可能是最简单的,只需从gdb调用它即可。