写在前面:如果程序要使用 gdb 进行调试,则首先这个程序在编译的时候必须要把调试信息加到可执行文件中。使用编译器的 “-g” 参数可以做到这一点。
- 使用 gdb 运行程序 ```bash // 程序不需要输入参数 gdb ./demo
// 程序需要输入参数
- gdb ./demo 如:
- set args 参数信息 如:set args -m 2 -r “components/demo_tuya_ipc/“ -t “AYG0btUGeW2OAT”
输入 r(run) ```
查看栈帧
bt(打印堆栈信息)
堆栈切换
up (查看下一个父帧)
down(查看上一个子帧)
// 也可以使用 frame 1,来查看上一个父帧(当前正在执行的函数的帧被编号为0,其父帧(即该函数的调用者的栈帧)被编号为1,父帧的父帧被编号为2)
查看变量 ```bash // 查看当前 stack frame 局部变量 info locals
// 查看全局变量和静态变量 info variables
// 查看 stack frame 参数 info args ```