10

使用 Delphi 7,我怎样才能得到一个代表堆栈跟踪的字符串Exception

try
  SomethingDodgy();
except
  on E:Exception do begin
    // print stack trace
    Log.Write(/* ??? */);
  end;
end;

我听说最新的 delphi 中有一个 GetStackTrace 函数,但我找不到任何适用于 delphi 7 的东西。不,升级不是一个选项:)

4

4 回答 4

15

你可以尝试使用madExcept,一个很棒的异常处理框架。

madshi 里面有大量的示例代码;我确定我以前在那里使用过堆栈跟踪的东西。

正如 Dmitriy 所指出的,JCL也有堆栈跟踪代码。一个旧样品在这里

于 2009-11-16T06:10:44.810 回答
5

我把EurekaLog 扔进了游戏。这是一个很棒的工具,而且一点也不贵。

于 2009-11-16T12:23:46.440 回答
1

MemChk非常易于使用(尤其是搜索/查找内存泄漏),并且知道如何从代码地址呈现堆栈跟踪。

于 2009-11-16T07:38:20.413 回答
-1

Win32 中的堆栈跟踪不如 .NET 或 Java 的(并且 Delphi 的最新版本使用 .NET 堆栈跟踪)。无论如何,我在这里
找到了一个提供更多信息的链接(它位于 ExeEx,以便查看该解决方案,单击搜索中的第一个链接)。

请参阅页面底部。

于 2009-11-16T05:53:46.453 回答