delphi - madExcept,获取当前堆栈的顶部

标签 delphi stack-trace madexcept

在 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/

相关文章:

java - IntelliJ IDEA - 显示异常跟踪

delphi - madExcept 所需的编译器指令

delphi - delphi应用程序中的背景音乐

multithreading - Delphi/Indy 多线程服务器

node.js - 如何在 node.js 中记录堆栈跟踪

memory-leaks - JRE 崩溃 - Java 运行时环境检测到 fatal error

delphi - 将调用堆栈记录到文件中

delphi - 尝试打开另一个表单时发生访问冲突

delphi - TDBGrid:OnDrawColumnCell 数据重叠