5.gdb调试

1.gdb编译/启动/退出/传参/查看源代码

1.gdb编译程序
	使用gcc编译程序生成可执行文件的命令中,加上-g参数
	
2.启动gdb调试程序
	gdb 可执行程序
3.退出gdb调试
	在gdb中输入quit(q)

4.命令行传参
	set args ___ ___  ___

5.gdb查看源代码:list(l)   
	[1] listsize显示设置
			默认情况下,显示list的上下各10行
			list showsize       #执行l命令,默认显示几行
			set listsize 20     #设置显示的行数为20
	[2] list(l)的使用
			l  文件名:行号
			l  文件名:函数名

2.断点相关命令

1.1设置断点:break(b)
		b  文件名:行号
		b  文件名:函数名
1.2条件断点
		b 行号 if 变量==var 
		  例:b 17 if i==10   表示:在第17行打断点,当i==10条件成立时,程序停在断点处
		
2.查看设置过的断点info(i) b

3.删除断点:del(d) 断点编号Num
		del num1 num2 ... numN
		del numK1-numK2
		
4.将断点设为[无效]:disable(dis) 断点编号Num
5.将断点设为[有效]:enable(ena) 断点编号Num

3.代码调试相关命令

启动并执行程序,停在程序的第一行:start
启动并执行程序,停在断点break处:run(r) 

查看变量的值:print(p) 变量
查看变量的类型:ptype 变量

在程序执行的过程中,实时自动地显示变量的值:dispaly i
取消实时自动地显示变量的值:
	1.info(i) display
	2.undisplay 编号Num

向下走,程序停在下一个断点:continue(c)

向下走一步,不会进入函数体:next(n)
向下走一步,会进入函数体:step(s)
跳出函数体:finish

从循环体直接跳出:until

直接设置变量等于某一个值:功能类似于条件断点
	[set var] 变量名=value

猜你喜欢

转载自blog.csdn.net/weixin_36750623/article/details/83058748