gdb入门
常用调试命令
| backtrace(bt) | 查看堆栈 |
| finish | 运行完当前函数 |
| frame(f) 帧号 | 选择栈帧 |
| info(i) locals | 查看当前栈帧局部变量值 |
| list(l) 行号 | 列出源码 |
| next(n) | 执行下一行 |
| print(p) | 打印表达式的值 |
| quit(q) | 退出gdb调试环境 |
| set var | 修改变量的值 |
| start | 执行程序,在main的第一行语句前停下 |
| step(s) | 执行下一步(进入函数) |
| kill | 终止正在调试的程序 |
| break(b) 行号 | 断点 |
| break 函数名 | 断点 |
| break 文件名:行号 | 断点 |
| continue(c) | 从当前位置开始继续执行 |
| delete breakpoints 断点号 | 删除断点 |
| display 变量名 | 跟踪某个变量 |
| disable breakpoints 断点号 | 禁用断点 |
| enable 断点号 | 启用断点 |
| info(i) breakpoints | 查看断点 |
| run(r) | 重新运行程序 |
| undisplay 跟踪显示号 | 取消跟踪 |
| watch | 设置观察点 |
| info(i) watchpoints | 查看观察点 |
| x | x/7b input//从input变量处打印7个存储单元的内容 |
| shell cmd | 执行命令 |
| set args | 设置参数 |
| show args | 查看参数 |
| show paths | 查看程序运行路径 |
| set environment varname=val | 设置环境变量 |
| show environment varname | 查看环境变量 |
| cd | 切换目录 |
| pwd | 查看当前目录 |
| info program | 查看程序状态 |
| clear 行号n | 清除第n行上的断点 |
| help | 帮助 |
gdb启动方法
gdb <program>
gdb <program> core
gdb <program> <PID>
gdb调试core文件
查看是否支持dump core功能:
ulimit -c或ulimit -a
配置系统使其支持core生成:
ulimit -c unlimited
gdb查看core文件:
gdb exe mycore

浙公网安备 33010602011771号