gdb调试工具的使用-创新互联

为了将原来有错的程序,找出问题所在,因修改源代码,输出正确的程序,对于刚学linux的菜鸟来说,使用gdb调试错误的信息再合适不过了,如果你是c语言的高手的话,就不必看下述内容了,因为这仅仅适合菜鸟调试几十行代码使用的工具。

创新互联建站服务项目包括蓝田网站建设、蓝田网站制作、蓝田网页制作以及蓝田网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,蓝田网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到蓝田省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

     下面我就举例为大家说明怎样使用好gdb调试,找到错误的信息

#include

#include

#include

int display1(char *string);

int display2(char *string);

int main()

{

  char string[] = "hallo world";

  display1(string);

  display2(string);

}

int display1(char *string)

{

   printf("The original string is %s\n",string);

}

int diaplay2(char *string1)

{

   char *string2;

   int size,i;

   size = (char *)malloc(size+1);

  for(i = 0 ; i < size; i++)

   {

       string2[size - i] = string[i];

  }

   string2[size+1] = ' ';

   printf("the string after is %s\n",string2);

   free(string2);

}

   当代码输入后,进行编译使用gcc -g test.c test   然后./a.out  发现结果并不是我们想要的结果,应该出现 一行是hello world 另一行是hallo world的倒叙输出,可是发现第二行却是为空,这个时候我们就可以采用gdb调试来进行错误的查重了。

   首先在上述操作命令的基础之上,在终端面板上输入gcc test,进入了gcc调试模式,这时我们可以采用命令l来查看源代码,然后对源代码设置断点b + 行数1,b + 行数2,设置好两个断点之后,查看断点信息我们使用info b命令,然后在运行代码使用r 这时候我们可以采用单步运行的命令n来逐步的进行代码的运行,查看运行的信息,如果这样并不能够查出错误信息的话,我们可以进行对变量查看信息,使用 p + 变量名,这时可以看到变量在此时的运行信息,在上述程序中,我们对string2[0]进行查看信息的时候发现string2[0]并没有值给他,这时string2[0]就会一直为 NULL,故并不会输出结果,找到错误后,退出gdb,使用命令q,重新编辑test.c 改为string2[size - i -1] = string[i];重新编译gcc -g test.c test  ./a.out 最后查看运行结果,发现是你想要的结果,好了,简单的gdb调试已经结束了。再见!


网页标题:gdb调试工具的使用-创新互联
链接地址:http://cdiso.cn/article/dcseih.html

其他资讯