如何在Delphi Server应用程序中获取完整的调用堆栈

Maj*_*eri 7 delphi debugging callstack exception-handling datasnap

我有一个多层软件,它是两个应用程序(GUI,DataSnap Server).我的DataSnap服务器应用程序有一些错误导致EAccessViolation在某些时候发生.这样的:

Exception EAccessViolation  in module unidac160.bpl at 00010CB1.
Access Violation at 002B77832 in module unidac160.bpl. Read of  address 0000000C
Run Code Online (Sandbox Code Playgroud)

我想获得完整的调用堆栈并将其记录在文件中.我也使用eurekalog,但它仅适用于gui应用程序.

Har*_*riv 9

EurekaLog对所有应用程序都非常有效.只需对其进行配置,以便将异常记录到文件中,并且根本不显示异常对话框.

  • +1但"有效"并不完全正确,更像是"非常有效"(: (6认同)

Arn*_*hez 7

我们的开源日志记录类有一个带有完整调用堆栈的异常拦截器,包括源代码行.

调试信息是高度压缩的(优于zip或任何其他格式),可选择进入exe.

开源,适用于Delphi 5到XE2.

在其最新版本中(使用源代码存储库中的那个 - 即当前为1.16),它还能够在您的请求明确声明的情况下记录库中的异常(即在.dll或.bpl中).

还有其他功能,如客户端分析,可以帮助您的客户支持和应用程序增强,来自真实数据(不仅仅是在测试平台上).