madExcept,获得当前堆栈的顶部

时间:2011-01-07 12:18:09

标签: delphi stack-trace madexcept

在delphi 2007应用程序中,我们使用madExcept为我们处理exeptions。我们使用标准对话框,让用户根据需要向我们发送包含邮件的报告。

我们想为此功能添加一些内容。如果用户选择不发送完整报告,我们仍希望将异常记录到文件中,而不是完整报告。我们想要异常类和消息,以及源文件和行号。

前两个很容易,但我找不到找到后者的直接方式。

我以IMEException界面的形式获得了完整的异常报告。据我所知,调用堆栈只能通过BugReportSections属性使用,它以纯文本形式提供堆栈。

在madStackTrace.pas中,有一个StackTrace( ) - 函数可以给我我想要的东西。它需要很多参数,而且文档信息有点短......

问题: 有没有人知道要输入StackTrace( )的正确参数,以便它只从抛出异常的线程返回堆栈的顶层项目?

1 个答案:

答案 0 :(得分:5)

madStackTrace.pas有另一个函数StackAddrToStr,只需要一个地址并返回它的格式化文本。如果您在崩溃线程的except块中,则可以将全局ExceptAddr变量传递给它。如果你在其中一个madExcept回调函数中使用`IMEException.ExceptAddr'。

相关问题