madExcept 需要编译器指令

madExcept required compiler directives

我使用 madExcept(不是来自 IDE),而是在自动批处理过程中。

为了获得堆栈跟踪和行号,我应该打开哪些编译器指令。我不关心加载的模块、进程或 CPU 寄存器。

我目前 运行 有:

{$DEBUGINFO ON}
{$LOCALSYMBOLS ON}
{$REFERENCEINFO OFF}

但希望尽可能删除 "fat" 但保留行号。

这些是关键设置:

  • Debug information (compiler options) 启用。这确保生成行号信息。如果未启用此选项,您将没有行号,只有每个函数的字节偏移量。
  • Debug information (linker options) 禁用。这确保可执行文件不包含调试信息。
  • 链接器 map file 选项设置为详细。这确保了行号信息在 .map 文件中发出,这是 madExcept 用来将地址转换为单元名称、方法名称、行号等的信息。

本地符号和参考信息选项不会影响 madExcept 错误报告。 None 您提到的设置会影响可执行文件的大小。

根据mad except 帮助文件,你应该将-gd 开关传递给命令行编译器以获得详细的映射文件。编译后别忘了运行 madExceptPatch.exe 工具。

当您在项目选项中启用 madexcept 时,它会设置以下两个编译器选项:

{$DEBUGINFO 1}
{$LOCALSYMBOLS ON}