我想在每个调试信息部分周围添加一个开始和结束符号,以便我可以从我的程序中访问它们。我尝试了以下方案:
.debug.info ALIGN(4K) : {
DEBUG_INFO_START = .;
*(.debug.info)
DEBUG_INFO_END = .;
}
.debug.abbrev ALIGN(4K) : {
DEBUG_ABBREV_START = .;
*(.debug.abbrev)
DEBUG_ABBREV_END = .;
}
/* etc. */
但这会导致每个部分(包括 .text、.rodata 等)和生成的二进制文件的大小增加三倍。这可能是什么原因造成的?正如您从下面的转储中看到的,调试信息包含在这两种情况下,因此这不是导致大小增加的原因。
我正在使用 Zig 和 LLVM 工具链。