标签: c linux macos process heap
与Where are static variables stored (data segment or heap or BSS)?略有相似,但不一样。
现在我得到了一个其他进程的变量地址,如:0x10fb90,这个变量存储在哪里(数据段或堆或BSS),我可以从进程中获取位置' s pid和变量的地址?
我正在使用obj-c和c。
答案 0 :(得分:2)
您有2个选项。
objdump
像
objdump -x a.out | grep YOUR_VARIABLE_ADDRESS
在gcc中编译类似的东西
$ gcc -o foo.exe -Wl,-Map,foo.map foo.c
现在
$ grep YOUR_VARIABLE_ADDRESS foo.map
如果您提供的所有地址都退出,这两种方法都会显示您的变量的位置。
PS :我为map file添加的链接显示了由Visual Studio链接器生成的示例地图文件,但格式在生成的大多数地图文件格式中通常类似通过各种连接器
map file