鱼C论坛

 找回密码
 立即注册
查看: 1644|回复: 2

[已解决]gdb如何调试???

[复制链接]
发表于 2021-1-4 21:17:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
新人,刚接触指针,用linux,但不会用gdb,求帮忙,谢谢!!!
最佳答案
2021-1-5 11:32:32
本帖最后由 kishere 于 2021-1-5 11:37 编辑

GDB应该不需要精通汇编吧...
下面贴下我的笔记

编译时使用 :
  1. gcc test.c -g -o app
复制代码

让程序带有调试信息
然后打开程序 :
  1. gdb app
复制代码

显示代码
  1. l
  2. list
复制代码

两个都可以
默认显示main函数所在的文件
查看默认显示行数
设置默认显示行数为20行
  1. show list size
  2. set listsize 20
复制代码

显示第5行前后的代码
  1. l 5
复制代码

显示TestFunc函数的内容
  1. l TestFunc
复制代码

显示add.c中第15行附近的内容
  1. l add.c:15
复制代码

在12行下断点
在add文件12行下断点
在add文件的TestFunc函数下断点
  1. b 12
  2. break 12
  3. b add:12
  4. b add:TeatFunc
复制代码

在12行下断点, 断点在i=10时才生效
  1. b 12 if i==10
复制代码

查看断点
  1. infor b
  2. i b
复制代码

删除第一个断点
删除第1 2 3 个断点
删除第4-第7个断点
  1. del 1
  2. d 1 2 3
  3. d 4-7
复制代码

设置第1个断点为无效断点
设置第1个断点为有效断点
  1. dis 1
  2. ena 1
复制代码

查看变量i的值
  1. p i
复制代码
  1. next
  2. n  单步调试
  3. step 会进入函数体
  4. next 不进入函数体
  5. setp
复制代码

继续运行, 直到遇到下一个断点
  1. c
  2. continue
复制代码


GDB讲道理还是很好用的, 特别是有大量循环的时候, 可以在变量到达指定值时才命中断点
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-4 21:30:56 | 显示全部楼层
本帖最后由 jackz007 于 2021-1-4 21:33 编辑

      这要看阁下具备的基础和实力水平了,比如说,只有大学毕业了才适合学硕士生的课程,用 gdb 调试程序,最好具有精通汇编语言和在 DOS 下使用 debug 的经验和能力。有了这些知识背景,可以帮助你更好地理解把握调试器。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 11:32:32 | 显示全部楼层    本楼为最佳答案   
本帖最后由 kishere 于 2021-1-5 11:37 编辑

GDB应该不需要精通汇编吧...
下面贴下我的笔记

编译时使用 :
  1. gcc test.c -g -o app
复制代码

让程序带有调试信息
然后打开程序 :
  1. gdb app
复制代码

显示代码
  1. l
  2. list
复制代码

两个都可以
默认显示main函数所在的文件
查看默认显示行数
设置默认显示行数为20行
  1. show list size
  2. set listsize 20
复制代码

显示第5行前后的代码
  1. l 5
复制代码

显示TestFunc函数的内容
  1. l TestFunc
复制代码

显示add.c中第15行附近的内容
  1. l add.c:15
复制代码

在12行下断点
在add文件12行下断点
在add文件的TestFunc函数下断点
  1. b 12
  2. break 12
  3. b add:12
  4. b add:TeatFunc
复制代码

在12行下断点, 断点在i=10时才生效
  1. b 12 if i==10
复制代码

查看断点
  1. infor b
  2. i b
复制代码

删除第一个断点
删除第1 2 3 个断点
删除第4-第7个断点
  1. del 1
  2. d 1 2 3
  3. d 4-7
复制代码

设置第1个断点为无效断点
设置第1个断点为有效断点
  1. dis 1
  2. ena 1
复制代码

查看变量i的值
  1. p i
复制代码
  1. next
  2. n  单步调试
  3. step 会进入函数体
  4. next 不进入函数体
  5. setp
复制代码

继续运行, 直到遇到下一个断点
  1. c
  2. continue
复制代码


GDB讲道理还是很好用的, 特别是有大量循环的时候, 可以在变量到达指定值时才命中断点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-26 16:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表