假设我有这个代码:
int main() {
int var1;
char *ptr = malloc(5 * sizeof(char));
//...........
do_something();
//...........
return 0;
}
我们知道实际的内存布局将分为以下几个部分:.text,.bss,.data,.heap,.stack.
我知道如何使用objdump,readelf等.但是,我希望更好地了解内存堆栈,我可以看到以下内容:
.heap ptr
.stack do_something()
.text main()
.bss var1
重点是:objdump,readelf等的输出中缺少实际的变量名.
我正在使用-g编译此代码,从而保留符号表.
那么,为什么我无法看到包含本地/全局变量名称的内存布局?
如果type是static,则objdump -x显示变量的名称,否则不显示.为什么?