|
|
1
159
你需要使用 物件拷贝 到 separate the debug information :
我使用下面的bash脚本将调试信息分隔成.debug目录中扩展名为.debug的文件。通过这种方式,我可以对一个tar文件中的库和可执行文件以及另一个tar文件中的.debug目录进行tar。如果以后我想添加调试信息,我只需提取调试tar文件,voila就有了符号化的调试信息。 这是bash脚本:
|
|
2
96
使用调试信息编译:
分离调试信息:
或
从源文件中删除调试信息:
或
通过调试模式调试:
也可以单独使用exec文件和符号文件:
或
详情:
裁判:
|
|
|
3
7
签出的“--only keep debug”选项 strip 命令。 从链接:
|
|
4
7
注意:使用高优化级别(-o3,-o4)编译的程序无法为优化变量、线性函数和展开循环生成许多调试符号,无论符号是嵌入的(-g)还是提取的(objcopy)到“.debug”文件中。 替代方法是
第一个选项提供了一种方法,可以在以后通过完全调试和符号重新生成生产代码。能够在不进行优化的情况下重新构建原始的生产代码对于调试是一个巨大的帮助。(注意:这假设测试是用程序的优化版本完成的)。 您的构建系统可以创建一个.c文件,其中包含编译日期、提交和其他VCS详细信息。下面是一个“make+git”示例:
编译程序后,您可以使用以下命令找到代码的原始“commit”:
剩下的就是签出原始代码,在不进行优化的情况下重新编译,然后开始调试。 |