madExcept需要编译器指令

时间:2015-04-08 22:18:46

标签: delphi delphi-xe7 compiler-directives madexcept

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

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

我目前正在使用:

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

但是想要删除那么多"胖"尽可能保留行号。

2 个答案:

答案 0 :(得分:3)

这些是关键设置:

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

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

答案 1 :(得分:0)

根据疯狂的除了帮助文件,您应该将-gd开关传递给命令行编译器以获取详细的映射文件。不要忘记在编译后运行madExceptPatch.exe工具。

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

{$DEBUGINFO 1}
{$LOCALSYMBOLS ON}