好记性不如铅笔头

C && C++, 编程

C语言开发笔记:GDB

最近在linux上编写了一个小程序,需要学习使用GDB调试,为了防止遗忘,这里备份下GDB的常用命令。

CONTENTS

被测试代码:

#include <stdio.h>

int func(int n)
{
	int sum = 0, i;
	for(i=0; i<n; i++)
	{
		sum += i;
	}
	return sum;
}
int main(void)
{
	int i;
	int result = 0;
	for(i=1; i<=100; i++)
	{
		result += i;
	}
	printf("result[1-100] = %d\n", result);
	printf("result[1-250] = %d\n", func(250));
}

 DEBUG步骤:

1)使用GCC编译,注意使用【 -g 】参数加入调试信息。

gcc -g test.c

2)使用【 gdb a.out 】来进入调试模式。

GDB常用命令:

1)help list  ==显示命令list的帮助

2)l/list  ==列出代码

3)b/break 16  ==在第16行上加断点

4)b/break func  ==在函数func上增加断点

5)info break  ==列出当前所有断点信息

6)clear/enable/disable  ==断点管理

7)r/run  ==开始执行程序,如果程序已经执行,会提示是否重新执行
8)n/next  ==单步执行程序
9)c/coutinue  ==继续执行程序
10)p/print i  ==显示变量i的值
11)bt/backtrace  ==查看函数堆栈,bt full打印出堆栈和局部变量值

12)set args  ==可指定运行时参数。(如:set args 10 20 30 40 50)
13)q/quit  ==退出gdb
14)回车  ==重复上个命令

备注:

作者也只是用到了GDB里面非常基础的命令,更多更系统的关于GDB的资料请参考 陈皓 大牛的博文【 http://blog.csdn.net/haoel/article/details/2879 】

发表评论

3 × 4 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据