栈帧
使用 GDB 调试程序时,当程序发生中断,我们首先应该知道程序在哪里产生中断以及产生中断的原因是什么?函数发生调用时,相关的调试信息就已经产生,并且被存储在一块被称为栈帧的数据里。
栈帧是在调用栈的内存区域里分配的,是调用栈划分的连续的区块,简称为栈。每个帧是一个函数调用另一个函数的相关数据,包含了传递给本地用函数的参数,这个函数的本地变量和这个函数的执行地址。
调用栈管理
- backtrace/bt 查看栈的回溯信息
- frame n 切换栈帧
- info f n 查看栈帧信息
代码
https://github.com/CoderDuanGe/gdbdebug/tree/master/backtrace