Mfc 如何找到“故障”的原因;“内部应用程序错误”;

Mfc 如何找到“故障”的原因;“内部应用程序错误”;,mfc,Mfc,在客户的站点上,我们的应用程序有时会显示“内部应用程序错误” 我能够得到一份关于这种情况的文件;不幸的是,这个文件不是很有用:它实际上只包含发生异常的事件处理程序的信息。由于此事件处理程序调用许多其他函数,因此我无法跟踪异常的根本原因 当我可以在我的电脑上重现这样的错误时,我只需要在调试器中捕捉第一次出现的异常,问题就很容易被发现。 我在查找硬崩溃的原因(例如访问冲突)方面也没有问题,因为生成的调用堆栈直接指向崩溃的原因 如何找到此错误的原因(可以选择在客户现场安装小型工具)?1)使用客户机上安

在客户的站点上,我们的应用程序有时会显示“内部应用程序错误”

我能够得到一份关于这种情况的文件;不幸的是,这个文件不是很有用:它实际上只包含发生异常的事件处理程序的信息。由于此事件处理程序调用许多其他函数,因此我无法跟踪异常的根本原因

当我可以在我的电脑上重现这样的错误时,我只需要在调试器中捕捉第一次出现的异常,问题就很容易被发现。 我在查找硬崩溃的原因(例如访问冲突)方面也没有问题,因为生成的调用堆栈直接指向崩溃的原因

如何找到此错误的原因(可以选择在客户现场安装小型工具)?

1)使用客户机上安装的Windebugger。 2) 然后在客户端获取属于该版本的Pdb文件。 3) 打开Windebugger,在“文件”菜单下,从显示的窗口中选择“符号路径”菜单项-将路径放置到符号文件。 4) 打开你的转储文件 5) 在底部发出命令“!Analyze-v”


调试器将向您提供堆栈跟踪、当前指令指针位置、上次抛出(未处理?)的异常或其他错误原因

这没有直接起作用,但是一个正确方向的提示(异常不再出现在转储文件中,因为它已被MFC吞没)。它与WEBBG-附加到进程-GO处理异常,事件过滤器:启用C++ EH异常。非常感谢。