这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
GDB (GNU Debugger) 和 CGDB (Curses-based GNU Debugger) 是Linux下强大的代码调试工具,用于查找和修复程序中的错误。以下是它们的主要使用方法:
GDB基础使用1. 启动GDB
或者先启动gdb再加载程序:
2. 常用命令
[td]命令 | 缩写 | 说明 | run | r | 开始执行程序 | break | b | 设置断点 | continue | c | 继续执行到下一个断点 | next | n | 单步执行(不进入函数) | step | s | 单步执行(进入函数) | print | p | 打印变量值 | backtrace | bt | 显示调用栈 | quit | q | 退出GDB | list | l | 显示源代码 | info breakpoints | i b | 查看断点信息 | delete | d | 删除断点 | 3. 断点设置示例
- b main # 在main函数设置断点
- b 10 # 在第10行设置断点
- b file.c:15 # 在file.c的第15行设置断点
- b func if x==5 # 条件断点,当x等于5时在func处中断
复制代码 4. 查看和修改变量
- p variable # 打印变量值
- p *ptr # 打印指针指向的值
- p/x variable # 以十六进制格式打印变量
- set var=value # 修改变量值
复制代码 CGDB增强功能CGDB是GDB的终端界面增强版,提供了源代码窗口和命令窗口分离的界面。 1. 启动CGDB
2. CGDB特有功能分屏界面:上部显示源代码,下部是GDB命令窗口 快捷键操作: ESC:切换到代码窗口 i:切换回命令窗口 空格:设置/取消断点 /:搜索源代码 F7:显示上一个断点 F8:显示下一个断点
3. 优势直观的源代码查看 无需记忆所有GDB命令即可进行基本调试 保留完整的GDB功能
高级调试技巧
1.多线程调试:
- info threads # 查看线程
- thread [id] # 切换到指定线程
复制代码 2.观察点:
- watch variable # 变量改变时中断
- rwatch variable # 变量被读取时中断
复制代码 3.核心转储分析:
4.远程调试:
- target remote [host]:[port]
复制代码 5.调试运行中的进程:
|