使用Delphi 7,如何从Exception
获取表示堆栈跟踪的字符串?
try
SomethingDodgy();
except
on E:Exception do begin
// print stack trace
Log.Write(/* ??? */);
end;
end;
我听说最新的delphi中有一个GetStackTrace函数,但我找不到delphi 7的任何东西。不,升级不是一个选项:)
答案 0 :(得分:15)
您可以尝试使用madExcept,这是一个很棒的异常处理框架。
madshi里面有很多示例代码;我确定我以前在那里使用过堆栈跟踪的东西。
答案 1 :(得分:5)
我在游戏中抛出EurekaLog。这是一个很棒的工具,而且价格也不贵。
答案 2 :(得分:1)
MemChk非常易于使用(特别是搜索/查找内存泄漏),并且知道如何从代码地址呈现堆栈跟踪。
答案 3 :(得分:-1)
Win32中的堆栈跟踪不如.NET或Java(并且Delphi的最新版本使用.NET堆栈跟踪)。
无论如何,我找到了一个链接,提供了有关它的更多信息here(它位于ExeEx,所以允许查看该解决方案点击搜索的第一个链接)。
请参见页面底部。