免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4362 | 回复: 4

gcc链接静态库时 丢失静态库的debug信息 怎么办? [复制链接]

论坛徽章:
0
发表于 2011-11-10 10:44 |显示全部楼层
有个程序,分为两部份写,通用部作成静态库。
主体部份,是个应用程序。
编译时都是开-g3
但是出错时,只能看到主体部份的调试信息,没有静态库的。
为什么呢?

论坛徽章:
5
技术图书徽章
日期:2013-11-07 13:21:58技术图书徽章
日期:2013-12-07 10:34:46技术图书徽章
日期:2014-04-23 08:50:31双鱼座
日期:2014-09-16 09:12:34亥猪
日期:2015-01-23 13:37:49
发表于 2011-11-10 12:28 |显示全部楼层
-g3是啥。听说过 -g -O0和-O3,就是没听说过g3

论坛徽章:
0
发表于 2011-11-10 13:06 |显示全部楼层
我用eclipse CDT建的工程,Debug Configuration 默认时就是这样
-O0 -ansi -pedantic -g3 -Wall -c -fmessage-length=0
出错时使用DrMingw看栈信息,只有主程序有代码显示。

论坛徽章:
0
发表于 2011-11-10 13:08 |显示全部楼层
-glevel -ggdblevel -gstabslevel -gcofflevel -gxcofflevel -gdwarflevel 请求生成调试信息,同时用level指出需要多少信息.默认的level值是2. Level 1输出最少量的信息,仅够在不打算调试的程序段内backtrace.包括函数和外部变量的描述,但是 没有局部变量和行号信息. Level 3包含更多的信息,如程序中出现的所有宏定义.当使用`-g3'选项的时候,某些调试器支持 宏扩展.
引《gcc 中文手册》

论坛徽章:
0
发表于 2011-11-10 15:45 |显示全部楼层
-glevel
       -ggdblevel
       -gstabslevel
       -gcofflevel
       -gxcofflevel
       -gvmslevel
           Request debugging information and also use level to specify how
           much information.  The default level is 2.

           Level 0 produces no debug information at all.  Thus, -g0 negates
           -g.

           Level 1 produces minimal information, enough for making backtraces
           in parts of the program that you don't plan to debug.  This
           includes descriptions of functions and external variables, but no
           information about local variables and no line numbers.

           Level 3 includes extra information, such as all the macro
           definitions present in the program.  Some debuggers support macro
           expansion when you use -g3.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP