GCC:如何只生成行号调试信息
GCC: How to generate line number debug information only?
我想提高大型项目的构建速度。opt构建是用-O2-g编译的。我注意到,如果没有-g,编译会更快,大约10-20%。除了行号之外,生成的二进制文件具有足够的信息来分析崩溃。有没有办法只包括行号信息而不包括其他信息?
根据http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html,行号仅在级别2(即-g2或-g的默认值)或更高级别生成。但是根据这个http://gcc.gnu.org/wiki/DebugFission,行号只是调试信息的一小部分(1%)。所以对我来说,最好是-g0或-g1,但要有行号。这可能吗?
谨致问候,Martin
在谷歌上搜索Matthieu提到的Clang选项,我发现了一个gcc补丁,它可以满足我的需求。它已提交主干网,但两年后一直悬而未决。这意味着股票GCC无法做到这一点,但有了这个补丁,它可以使用选项"-gmlt"来做到
http://old.nabble.com/-patch--Add-new--gmlt-option-for-min.-debug-info-with-line-tables-%28issue4440072%29-td31482851.html
你会错吗?我知道Clang支持-gline-tables-only
,但据我所知,gcc不支持;它确实支持-g1
,但没有线路信息。
时间已经过去。
GCC know包含带有-g1
的行号。
您还可以添加另外两个选项来节省更多空间:-g1 -gz -gsplit-dwarf
相关文章:
- 创建进行生产构建并创建调试信息的C++生成文件的最佳方法?
- 在源文件中包含额外的调试信息,以便在代码::块中使用gdb进行调试
- Boost tread 代码在 VC++ 下编译,但不在 GCC 下编译:如何获得更好的调试信息
- 错误 VSP1011:无法获取调试信息.与 /配置文件链接器开关链接
- 在没有 -g 选项的情况下编译,但我想获得更详细的调试信息
- cmake/cpack 组件调试信息 rpm 包未出现
- LLDB - Qt 缺少调试信息
- C++ ATIOGLXX.pdb 包含查找模块 ATIOGLXX.dll 源代码所需的调试信息
- 如何将调试信息附加到LLVM通行证中的指令中
- 从LLVM IR获取精确的行/列调试信息
- 二进制不是使用 Visual Studio 2008 中的调试信息构建的
- 如何使dumpObjectInfo打印调试信息
- 找不到"mpiexec"的调试信息或不匹配。找不到或打开 PDB 文件
- g++未在调试信息中进行编译
- visualstudio可以使用gcc生成的调试信息吗
- 使用Visual C++在单独的文件中提取调试信息
- 警告LNK4206:找不到预编译类型信息; 未链接或覆盖;链接对象,就好像没有调试信息一样
- 调试 c++ dll 时找不到调试信息
- Visual Studio 测试主机不加载调试信息
- 无效迭代器:如何在第一次使用时获取一些调试信息