堆和栈

栈是一种有限定性的线性表,在内存中有特定的一段连续空间。当程序调用一个函数时,函数的地址、参数、函数内的局部变量都被压入保存在栈中。栈上的内容只在函数的范围内存在,在函数运行时结束,这些内容也会被销毁。可通过GDB调试查看栈信息,包括栈的层编号、当前函数名、函数参数值、函数所在文件及行号、函数执行到的语句。
GDB调试查看栈信息的指令:
backtrace:简写bt 显示当前的函数调用栈的所有信息
backtrace n:bt n,只显示栈顶上(n为正整数)/栈底(n为负整数)n层的栈信息
frame n:f n,只显示第n层栈信息,不加n显示当前层
up n:向栈底方向移动n层(栈底位于内存的高地址);相反down n 向栈顶移动。不加n表示移动一层
info frame:info f,显示更详细的栈层信息
info args:显示当前函数的参数及值
info locals:显示当前函数的局部变量及值
info catch:显示当前函数中的异常处理信息
posted @ 2013-11-21 17:30  ops  阅读(422)  评论(0编辑  收藏  举报