如何在delphi中获得stacktrace或至少错误的行?

Chr*_*ohr 1 delphi debugging delphi-2009

我患有Delphi 2009 :)

我必须在一个用Delphi编写的非常古老的软件中找到一些错误.当我在调试器中启动应用程序时,我只得到一个错误消息:"地址xy处的访问冲突".但是我没有得到任何导致错误的coide线的暗示.我真的无法相信Delphi无法像Java那样显示这些信息.我相信我在这里做错了什么.

我在链接器页面(在Projekt选项中)激活了调试信息,但没有成功.

请给我一些提示如何正确设置Delphi以向我显示折线.如果从Java中可以看到调用堆栈跟踪,那就更好了.

谢谢.

Dav*_*nan 5

您应该向应用程序添加异常日志记录.例如EurekaLog或madExcept.我个人使用后者并不能足够推荐它.

一旦将异常日志记录工具添加到项目中,任何未处理的异常都将导致包含线程堆栈跟踪的综合错误报告.

  • 除非你自己写.您可以调用`RtlCaptureStackBackTrace`然后使用.map文件将其与代码相关联.但与我提到的两个神话般的工具相比,这真的相当可悲.我的职业生涯涉及开发一个包含madExcept的程序.由于madExcept,这个程序的质量要高得多.它为我们带来了巨大的变化. (2认同)
  • @DavidHeffernan,我刚才说的,你刚刚告诉OP,除非他使用第三方工具或自己编写,否则他无法获得堆栈跟踪.这不是真的,你可以在调试器中获得堆栈跟踪.OP说他在调试器中看到了错误. (2认同)