Linux调试工具——GDB

GDB是UNIX及UNIX-like下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能,比BCB的图形化调试器有更强大的功能。所谓“尺有所短,寸有所长”就是这个道理.

为了使用GDB进行Linux下程序的调试,gdb调试前,需用gcc生成对应的包含调试信息的可执行文件 选项:-g

gcc -g myapp.c -o myapp
注:加入调试信息的可执行文件比普通可执行文件大很多。

Linux调试工具——GDB_第1张图片

一、进入gdb调试模式及内部操作

(1)l:列出源文件
	l  默认不加文件名列出包含main函数的文件
	l insert_into.c:20       指定显示文件中的第20行
	l insert_into.c:select_sort  列出insert_into.c中的select_sort函数,默认每次显示10行,想看见后面的直接enter(enter值默认按上条命令继续执行)
	
(2)打断点:break 22(注意:break可以简写为b)
有特殊需求时,设置条件断点:b 22 if i==0 (条件断点在for循环中,仅在循环内部停止,不在for条件处执行)
(3)help:查看gdb帮助
(4) 查看断点信息:info break (i b)
      查看变量编号:info display

(5)运行gdb中的断点:start (start仅执行一步) 
					n: 继续单步执行,一步一步执行
					s: step(单步) --可以进入当前执行的函数内部:s
		            c: 继续,执行多步,直接停在某个断点的位置
(6)跟踪某个变量的值:display 变量
	不跟踪时: display 变量编号 (变量编号查看方式:info display)
(7)断点停止时:要查看某个变量的当前值 :p j 查看j当前值 (print j)
	 查看某个某个变量的类型:ptype min
								  
					
(8)跳出单次循环: u
	从进入到的函数循环跳出 : finish (需等待断点执行完毕)
(9)删除断点:delete 断点编号 (查看断点编号:info break)
(10)在调试时改变变量的值: set var i = 10
				
(11)run(r):直接运行完程序
(12)退出gdb调试:quit

二、gdb思路整理

Linux调试工具——GDB_第2张图片

Linux调试工具——GDB_第3张图片

 

你可能感兴趣的:(C语言)