当前位置 : 主页 > 编程语言 > delphi >

delphi – 解决来自csrss.exe的应用程序错误

来源:互联网 收集:自由互联 发布时间:2021-06-23
我是传统Delphi应用程序的维护者.在运行此程序的计算机上,有时会出现应用程序错误,标题引用此Delphi应用程序,并显示如下消息: The instruction at “…” referenced memory at “…”. The memor
我是传统Delphi应用程序的维护者.在运行此程序的计算机上,有时会出现应用程序错误,标题引用此Delphi应用程序,并显示如下消息:

The instruction at “…” referenced memory at “…”. The memory could not be “read”.

Click on OK to terminate the program.

任务管理器说属于此消息框的进程是csrss.exe.找到此错误的根本原因的系统方法是什么?

问题是,这个Delphi程序相当复杂,并且错误消息相对较少出现,所以我不能简单地单步执行代码并找到导致错误的部分.此外,应用程序会自动运行,无需用户中断,因此我无法询问用户当消息出现时她做了什么.应用程序和系统日志不表示任何问题.当消息框存在时,应用程序不会停止工作.

我希望有人之前遇到过这样的错误信息,并且能够解决问题.提前谢谢你的帮助.

csrss支持Windows控制台.我希望您的应用程序以控制台子系统为目标.

如果您无法在调试器下使应用程序失败,则需要为其添加一些诊断程序.我建议使用像madExcept或EurekaLog这样的工具来做到这一点.我个人使用madExcept并且不能足够推荐它.据我所知,EurekaLog也是一款优质产品.

将这些工具中的一个与您的应用程序集成,下次出现故障时,将生成详细的诊断报告.最重要的是,您将获得流程中每个线程的堆栈跟踪.错误线程的堆栈跟踪应该会引导您找到程序错误的根本原因.

我怀疑的是,如果故障发生在csrss中,那么在你的过程中包括诊断可能不会产生结果.您的应用程序已经出现故障,这可能导致csrss中的错误消息,这似乎是合理的.在这种情况下,应用程序中的诊断将有所帮助如果没有,那么您可能需要找到一种方法来在您的过程中发生故障.

网友评论