在 delphi 2007 应用程序中,我们使用 madExcept 来处理异常。我们使用标准对话框,让用户根据需要通过邮件向我们发送报告。
我们想为此功能添加一些内容。如果用户选择不发送完整报告,我们仍然希望将异常记录到文件中,但不是完整报告。我们需要异常类和消息,以及源文件和行号。
前两个很简单,但我找不到找到后者的直接方法。
我有 IMEException
接口(interface)形式的完整异常报告。据我所知,调用堆栈只能通过 BugReportSections
属性获得,该属性以纯文本形式提供堆栈。
在 madStackTrace.pas 中,有一个 StackTrace( )
函数应该可以给我我想要的东西。它需要很多参数,并且文档的信息有点缺乏..
问题:
有谁知道输入 StackTrace( )
的正确参数,以便它只从引发异常的线程返回堆栈的顶部项目?
最佳答案
madStackTrace.pas 还有另一个函数 StackAddrToStr
,它只接受一个地址并返回它的格式化文本。如果您位于崩溃线程的 except
block 中,则可以将全局 ExceptAddr
变量传递给它。如果您处于 madExcept 回调之一,请改用“IMEException.ExceptAddr”。
关于delphi - madExcept,获取当前堆栈的顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4625364/