GDB调试程序的使用

GDB概述:

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。

    一般来说GDB主要有三大功能: 1)启动被调试函数

             2)让被调试的程序在指定位置停住

      3) 当程序停住时,检查它的状态值


GDB的使用:

举下面的程序为例:


写完程序之后,输入“ gcc  -g  gdb.c ” 和 “ gcc a.out ” 启动GDB对程序的调试。

GDB的指令:

运行指令:run(简写“r”);  

设置中断指令:break  行数(简写“b”):;

查看代码指令:list

 在GDB中使用查看源代码相关的命令时,有一个当前文件的概念,当命令的位置参数没有限定一个文件的时候(不论是明确限定还是隐含限定),将使用当前文件。当前文件默认是main函数所在文件,如果程序当前正处于断点位置,则断点所在文件即为当前文件。

如下图: 

 会发现函数不是从头开始显示,这是因为当前行不是从头开始的程序只能;且每次显示10行左右,这是可以改变参数值的。

引申的指令:

list - :显示当前行前面程序。出现

		list  +: 往后显示源代码。
                set listsize <count>  设置一次显示源代码的行数
		list , <last>	显示从当前行到last行之间的源代码
查看状态值指令:print  变量名(简写 p)
查看断点信息指令:info  break
单步执行指令:next(不会进入子函数)
			step(可进入子函数)
继续执行指令:continue(简写“c”,在断点处继续执行,知道遇到下一个断点或者程序结束)
			 finish(继续执行,结束此函数)
退出指令:quit
 
运用GDB调试段错误
如下段程序:
	#include<stdio.h>
	
	int main()
	{	
		*pr = "HELLO WORLD";
		pr ++;
		*pr = 'L';
		printf("pr = %d\n",pr);
		return 0;
	}
	运行程序之后发现出现段错误了,运行GDB指令在哪里停住,哪里就是出现段错误的地方,便于我们修改。
 
 
 
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值