public:it:gdb

GDB

  • 获取指令帮助可随时运行 help, 比如 help run
  • 需要有调试符号,gcc 或 g++ 编译时带 -g 参数
  • 可用 file <your-file> 来查看是否带了调试符号
  • gdb 里使用info sharedlibrary命令查看库符号加载
  • 调试coredump 文件: gdb appname core-name
  • 调试进程: gdb appname 1234, 1234 为进程id
  • 带参数:
    • gdb --args app arg1 arg2
    • 或者 gdb 启动后set args arg1 arg2
    • 或 run 时携带参数:run arg1 arg2
    • 查看参数 show args
  • 查看所有断点info breakpoints
    • 删除对应序号断点:delete 1
  • 如果进入某个函数直接崩溃报错, bt栈只显示到该函数地址,很大可能是改函数内栈溢出(一般是8M),查看变量或数组是否过大。
  • 崩溃时,查看变量:
    • bt 显示栈信息
    • frame 0 进入最顶部栈
    • info local 打印所有局部变量
    • p <name> 打印某个变量,可打印全局变量
指令 简写 说明
help h 查看帮助文档
run r 执行程序
break b 打断点
info break info b查看断点
step s 步进、进入内部
next n 执行下一行
bt bt 查看栈调用信息
print p 查看变量等
list l 查看当前代码
info source 查看当前源码文件
info sources 查看源码文件
continue c 继续执行
where 当前执行到哪
quit q 退出gdb
  • public/it/gdb.txt
  • 最后更改: 2024/04/23 15:29
  • oakfire