如果我们想使用gdb来调试版本可执行文件,我们确保使用-g进行编译,然后使用objcopy修剪调试信息。通过源文件时,此调试信息可用于查找源文件行。
但是当/为什么我们还需要生成Map文件时,gdb的任何要求或能力都依赖于Map文件?
感谢。
答案 0 :(得分:1)
但是当/为什么我们还需要生成Map文件时,gdb的任何要求或能力都依赖于Map文件?
假设您正在讨论链接器-M
(--print-map
的同义词)和-Map
选项,这些是纯粹的调试工具,旨在告诉您什么代码/ data被拉入你的二进制文件(以及为什么)。
GDB不需要或使用此输出(并且输出不易解析,即仅供人类使用)。
<强>更新强>
我们何时以及如何使用此地图文件?
正如我之前所说,该文件回答了以下问题:
.text
或.data
部分消耗了多少空间?如果您有上述问题之一,请使用地图文件。如果您没有这样的问题,那么您就不需要地图文件了。
至于&#34;如何&#34; - 只需用您喜欢的编辑器或寻呼机阅读它。如果您有关于如何解释特定行的特定问题,则执行询问单独的特定问题。