GDB的调试示例及opencv3.4.1的安装
目录
环境
UBUNTU18.04桌面版
GDB调试示例过程
一个将大数逆序输出的例子
1.使用gedit创建一个C语言源文件,写入以下代码
#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);
return 0;
}
2.使用命令gcc -o revertnum -g revertnum.c,并设置断点
3.在使用单步调试命令(gdb)step的过程中可能会有如下错误
4.这里的printf()函数是C语言库文件中的,并不需要调试故改称命令(gdb) n(next)就好。
这样就可以调试成功发现错误了。
gdb与core共同定位错误信息
1.新建文件写入代码
命令
nano segDemo.c
代码
#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("\n Your string is:%s\n",pStr);
}
2.生成可调试的可执行文件如遇到错误会自动生成core文件
使用gdb与core定位错误信息
core的练习
1.新建文件编写代码
命令
nano coretest.c
代码
#include<stdio.h>
int main(){
int *p=0;
*p=1;
return 0;
}
调试命令
gcc -o coretest -g coretest.c //生成可调式的可执行文件
ulimit -c 1000
./coretest //执行可执行文件并生成core文件
调试结果