GDB的调试器及调试方法

GDB简介

GNU Debugger,是GNU工程为GNU操作系统开发的调试器,但它的使用不局限于GNU操作系统,GDN可以运行在UNIX、linux甚至Microsoft Windows。GDB可以调试C、C++等语言编写的程序;被调试的程序可以跟GDB运行在同一台电脑,也可以运行在不同的电脑。使用GDB我们可以1)设置断点使程序停住2)监视或修改程序中变量的值3)跟踪代码执行过程

gdb命令


gdb调试举例

用一段代码实现对一个整型数的反转功能,但输入100时,程序的输出结果却不正确。

#include<stdio.h>
void ShowRevertNum(int iNum)
{
	while(iNum > 10)
	{
		printf("%d",iNum%10);
		iNum = iNum/10;
	}
	printf("%d\n",iNum);
}
int main(void)
{
	int iNum;
	printf("Please input a number:");
	scanf("%d",&iNum);
	printf("After revert:");
	ShowRevertNum(iNum);
}

段错误调试

#include<stdio.h>
#include<string.h>

#define BUFSIZE 256

static char acBuf[BUFSIZE];
static char *pStr;
int main(void)
{
printf("Please input a string:");
gets(pStr);
printf("\nYour string is:%s\n",pStr);
}

linux中,程序崩溃时,一般会产生core文件,记录进程退出前的状态,调试段错误问题,借助于该文件,课快速定位问题。可按一下步骤生成和使用core文件

1)让系统产生core文件:ulimit -c num #设定core文件容量(num为数字,为0是不产生core文件)

2)运行程序,让程序奔溃,从而产生core文件

3)gdb配合core文件,定位问题: gdb 程序名 core 文件名;如 gdb segDemo core

posted @ 2020-10-30 18:30  一蓑烟雨任平生噶  阅读(197)  评论(0编辑  收藏  举报