我在x86 Linux机器上有一个死堆进程的全堆核心转储(内核2.6.35-22,如果重要的话),我试图在GDB中调试.
是否有我可以使用的GDB命令,这意味着"向我显示此进程分配的所有内存地址区域的列表?" 换句话说,我可以弄清楚我可以在这个转储中检查的所有可能的有效内存地址是什么吗?
我问的原因是我需要在整个进程堆中搜索某个二进制字符串,并且为了使用该find命令,我需要有一个起始和结束地址.简单地从0x00搜索到0xff ..不起作用,因为find一旦遇到它无法访问的地址就会停止:
(gdb)find/w 0x10000000,0xff000000,0x12345678
警告:无法访问0x105ef883处的目标内存,暂停搜索.
因此,我需要获取内存中所有可读地址区域的列表,以便我可以一次搜索一个.
(我之所以要做这是我需要找到所有内存点结构在某个地址.)
没有show mem,show proc,info mem,info proc似乎做什么,我需要.
在gdb里面,什么命令会提供调试过程的pid?
大多数谷歌搜索结果只讨论了如何在知道pid后将gdb附加到进程.