用
GDB
调试程序
是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序
列,形成脚本。
UNIX
下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行
软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可
以做出一个非常强大的功能。
于是
下的软件比
Windows
下的软件更能有机地结合,各自发挥各自的长处,组合成
更为强劲的功能。而
下的图形软件基本上是各自为营,互相不能调用,很不利于
各种软件的相互集成。在这里并不是要和
做个什么比较,所谓
“
寸有所长,尺有
所短
”
,图形化工具还是有不如命令行的地方。
概述
————
是
GNU
开源组织发布的一个强大的
下的程序调试工具。或许,各位比较喜欢那
种图形界面方式的,像
VC
、
BCB
等
IDE
的调试,但如果你是在
平台下做软件,你
会发现
这个调试工具有比
的图形化调试器更强大的功能。所谓
寸有所长,
尺有所短
就是这个道理。
一般来说,
主要帮忙你完成下面四个方面的功能:
1
、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2
、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3
、当程序被停住时,可以检查此时你的程序中所发生的事。
4
、动态的改变你程序的执行环境。
从上面看来,
和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细
节上,你会发现
这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有
时候,命令行的调试工具却有着图形化工具所不能完成的功能。让我们一一看来。
一个调试示例
——————
源程序:
tst.c
1 #include
3 int func(int n)
4 {
5 int sum=0,i;
6 for(i=0; i<7; i++) {
8 sum+=i;
9 }
10 return sum;
11 }
12
13
14 main()
15 {
16 int i;
17 long result = 0;
18 for(i=1; i<=100; i++)