2012年5月31日星期四

使用dev-c++调试程序(包括gcc调试选项说明)

一般来说我调试的时候感觉用printf就足够了,不过今天想换换,用dev-c++来调试看看,没想到一直提示工程没有调试信息,后来在网上搜了一下,有好几种方法,试了一下,以下这种方法比较靠谱。我用的是方法2,也是可行的。

方法1:(已验证)
在“工具”-》编译选项-》"Add following commands when calling complier"下面的编辑框里加上: -g3
然后在下面的"Add these commands to the linker command line" 下的编辑框上加上: -g3

转到programs页,把gcc行修改为:gcc.exe -D__DEBUG__
把g++行修改为: g++.exe -D__DEBUG__ ,
点击ok。
重新编译,就能调试了。
方法2:(本人未验证)
在dev c++ 环境中,写程序的时候,写了一个类,但是有点问题,想调试一下,但是调试的时候,老出现这个问题
your project does not have debugging info, do you want to enable debugging and rebuild your project?
在网上搜了一下解决方法
在 tools --> compiler options --> compiler, 有一个选项是:
Add these commands to the linker command line
将此选项勾选,并将内容 添加为 -g3 -gstabs




一些说明:
-gLevel 是gcc编译选项,level表示输出调试信息的级别,Level 3包含更多的信息,如程序中出现的所有宏定义.
-gstabsLevel stabs表示调试信息使用stabs格式。在gcc里面,支持多种格式的调试信息。

以下是对调试文件格式的一些说明:
调试文件格式(Debug File Formats)
 
       调试可执行文件的时候,调试器需要使用由编译器生成的一些调试文件,这些信息将用户可读的变量名字与过程和数据地址联系起来。一般地,这些信息在程序执行时被舍去。调试程序时,这些信息很重要。
        Mac OS X使用两种调试文件格式,stabs和DWARF。stabs格式是Xcode 2.4之前的默认格式。DWARF是Xcode 2.4后的默认格式。stabs格式将调试信息贮存在可执行体的符号表中。参见Mac OS X ABI Mach-O File Format Refer-ence。DWARF格式则将其贮存在特殊的段中,或另一个调试信息文件。
        关于DWARF的更多信息,请看www.dwarfstd.org。关于stabs的更多信息,请看STABS Debug Format 。关于Mach-O文件和它的符号表,请看Mach-O Programming Topics 。

没有评论:

发表评论