如果变量属于堆或堆栈,我可以通过GDB找到吗?

时间:2011-03-09 14:15:55

标签: c linux gdb

我的断点指向一个变量。 (指向某处。我能弄清楚某处是属于堆还是堆栈?)

有没有办法找到堆栈的开头和结尾?有没有办法找到堆的开头和结尾?

3 个答案:

答案 0 :(得分:7)

使用info proc mappings获取有关内存布局的/proc信息。

答案 1 :(得分:0)

我认为gdb不会直接告诉你,但你可以比较一下地址,找出它落入的范围。您必须查看库源代码才能找到它,但堆管理器通常会有一些内部变量来跟踪堆的位置。

答案 2 :(得分:0)

根据您的编译器,调试信息中可能包含__stack__stack_end等符号。如果是这样,您可以使用这些符号将指针与它们进行比较。