如何包含GDB调试符号'破解包'?

时间:2009-10-28 09:51:50

标签: c++ linux debugging gcc gentoo

当我在Gentoo上构建软件包时。我得到这个警告'-ggdb3'标志可以'打破包。

我还没有找到何时成立的实例。虽然我曾经发现一些代码在不同的优化设置下出现故障,但这与包含调试符号不同。

有些人可以提供一个代码示例,这些代码可以在没有调试符号的情况下编译而不用它们编译(或者在运行时以其他方式出错)吗?

3 个答案:

答案 0 :(得分:1)

由于包含调试符号,我从未遇到过单个测试失败(或更少,包断开)。在处理PPC时,我只被优化错误所困扰。

但是,你必须考虑你正在建设什么。如果要将可执行文件复制到类似initrd的内容中,通常需要将其删除(或者在没有调试符号的情况下编译),尤其是在静态链接时。

答案 1 :(得分:1)

在“旧时代”,我从Scratch系统构建了一个完整的Linux,为每个二进制文件打开了调试。当然,安装量要大得多,内存使用率还不够理想,但我在编译或后续执行时都没有遇到任何问题。

很难证明是消极的,人们不能通过轶事,但是作为第二个台式机/玩具服务器运行一年会让我得出结论,这确实不是问题。

我认为你得到的标志是一个标准的警告:如果你设置了未经测试的USE标志,或者它实际上并不是真的要安装的,那么包将在Gentoo中给出。只要你知道旗帜是什么---在这种情况下,你似乎---并且你没有将它置于任何“关键任务”设置中(即如果出现问题你会受到指责)似乎是安全的忽略这些警告。

答案 2 :(得分:-2)

有时当你打开调试符号时,它实际上会改变编译器生成的代码,在这种情况下总是有可能从“正确的代码”变为“错误的代码”。

我不知道“-ggdb3”启用了哪些具体更改,但也许这就是您被警告的内容。

相关问题