GDB调试工具的实践

GDB是GNU Debuger的简称,是GNU发布的一款unix下应用程序调试工具。它被广泛使用在各个产家各种应用中。GDB和所有常用的调试工具一样,它的主要功能有:监视变量的值、设置断点及单步执行。

注意,在源程序编译时,要使用gcc -g 或 cc -g 或 g++ -g将源程序编译成可执行文件,然后才能使用gdb进行调试。只有这样,生成的可执行文件才包含调试信息。

参考别人的写一个简单的c程序,在linux下使用gcc编译成可执行文件,然后使用gdb进行调试。

GDB调试程序用法

GDB+GDBserver无源码调试Android 动态链接库的技巧

使用hello-gl2建立ndk-GDB环境(有源码和无源码调试环境)

Ubuntu上用GDB调试printf源码

Linux下用GDB调试可加载模块

Ubuntu下使用GDB断点Go程序

程序源代码如下

#include <stdio.h>

int func(int n)

{

int sum=0,i;

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

{

sum+=i;

}

return sum;

}

int main()

{

int i;

long result = 0;

for(i=1; i<=100; i++)

{

result += i;

}

printf("result[1-100] = %d \n\r", result );

printf("result[1-250] = %d \n\r", func(250) );

}

使用gcc -g变成生成可执行文件miki,方法为 gcc -g miki.c  -o miki

使用gdb开始调试miki应用,如下:

01.$gdb miki   
02.GNU gdb (GDB) CentOS (7.0.1-42.el5.centos)   
03.Copyright (C) 2009 Free Software Foundation, Inc.   
04.License GPLv3+: GNU GPL version 3 or later <>   
05.This is free software: you are free to change and redistribute it.   
06.There is NO WARRANTY, to the extent permitted by law.  Type "show copying"   
07.and "show warranty" for details.   
08.This GDB was configured as "x86_64-RedHat-linux-gnu".   
09.For bug reporting instructions, please see:   
10.<>…   
11.Reading symbols from /u01/home/Oracle/miki…done.   
12.(gdb) l 1   
13.1      #include <stdio.h>   
14.2   
15.3      int func(int n)   
16.4      {   
17.5              int sum=0,i;   
18.6              for(i=0; i<n; i++)   
19.7              {   
20.8                      sum+=i;   
21.9              }   
22.10              return sum;   
23.(gdb)   
24.11      }   
25.12   
26.13   
27.14      main()   
28.15      {   
29.16              int i;   
30.17              long result = 0;   
31.18              for(i=1; i<=10; i++)   
32.19              {   
33.20                      result += i;   
34.(gdb)   
35.21              }   
36.22   
37.23            printf("result[1-10] = %d \n\r", result );   
38.24            printf("result[1-5] = %d \n\r", func(5) );   
39.25      }   
40.(gdb)   
41.Line number 26 out of range; miki.c has 25 lines.   
42.(gdb) r   
43.Starting program: /u01/home/oracle/miki   
44.warning: no loadable sections found in added symbol-file system-supplied DSO at 0x2aaaaaaab000   
45.result[1-10] = 55   
46.result[1-5] = 10   
47.Program exited with code 023.   

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/a5e537133c0363125b20bff6376c1639.html