我已将JCL安装到Delphi 2010中。在以下代码中
try
raise Exception.Create('Error Message');
except
on E: Exception do
begin
ResultStatus := JclLastExceptStackListToStrings(sl, True, True, True, True);
end;
end;
我也在初始化部分进行了这个调用:
initialization
JclStartExceptionTracking;
ResultStatus为false且sl为空。我已设置生成map和.jdbg文件的选项。其他功能,如ProcByLevel工作正常。我还需要做些什么来使JclLastExceptStackListToStrings工作吗?
来自JclDebug.pas文件:
最后修改日期:$ Date :: 2010-09-07 19:43:19 + 0200(2010年3月7日) 修订版:$ Rev :: 3331
答案 0 :(得分:1)
尝试拨打
JclStartExceptionTracking;
在您申请的最开始。
[编辑]你已经是。然后,我目前没有建议。 [/编辑]
答案 1 :(得分:0)
我用:
JclStackTrackingOptions:= [stStack,stExceptFrame,stRawMode,stAllModules, stStaticModuleList];
答案 2 :(得分:0)
我在Delphi XE 1中解决了这个问题。
答案 3 :(得分:0)
我已经坚持这个问题几天了。 JCL堆栈跟踪正在使用我的程序,我能够查明错误位置。不知怎的,它只是停止了工作。
然后我使用JCL的演示来查看它是否正常运行。它工作得很好。我将所有项目选项设置为与demo相同,但我的程序在每次演示时都没有转储堆栈。
突然我注意到我的程序和演示之间的唯一区别是CPU架构。演示是32位,我的程序是64位。
我将JCL演示编译为64位,它也停止了工作。它只能使用32位代码。不是64位。
不幸的是,我的程序需要6到7千兆字节的内存而我不能使用32位模式。我建议使用Eurekalog,因为它适用于两种架构。