我捕获了在64位Windows操作系统上运行的32位.NET应用程序的故障转储.在分析过程中,有人发现我有一个64位转储并告诉我由于错误的位数而无法分析这个转储.
使用Windows任务管理器创建转储时,我不知道我做错了什么.这始终适用于32位操作系统.
我怎样才能为.NET提供良好的转储,尤其是正确的位数?
在XP中检测应用程序崩溃的最佳方法是什么(每次生成相同的"错误"窗口对 - 每个窗口都有相同的窗口标题)然后重新启动它?
我特别感兴趣的是听到使用最少系统资源的解决方案,因为有问题的系统很老.
我曾想过使用像AutoIt这样的脚本语言(http://www.autoitscript.com/autoit3/),并且可能每隔几分钟触发一次'探测器'脚本?
在Python,Perl,PowerShell或其他方面完全可以做得更好吗?
任何想法,提示或想法非常感谢.
编辑:它实际上并没有崩溃(即退出/终止 - 感谢@tialaramex).它显示一个等待用户输入的对话框,然后是另一个等待进一步用户输入的对话框,然后它实际退出.这是我想要检测和处理的对话框.
我正在使用一个有点不可靠的(Qt/windows)应用程序,部分是由第三方为我们编写的(只是试图将责任转移到那里).他们的最新版本更稳定.有点.我们收到的崩溃报告越来越少,但是我们收到很多关于崩溃的报告并且永远不会回来.情况多种多样,由于我们可以收集的信息很少,我们无法重现这些问题.
理想情况下,我想创建某种看门狗,注意到应用程序已锁定,并提供向我们发送崩溃报告.好主意,但有问题:
看门狗如何知道该过程已挂起?据推测,我们会对应用程序进行检测,以便定期对看门狗说"一切正常",但是我们在哪里放置它以保证频繁发生,但不太可能出现在应用程序结束时的代码路径上锁定.
发生崩溃时看门狗应该报告什么信息?Windows有一个不错的调试api,所以我相信所有有趣的数据都是可访问的,但我不确定什么对于追踪问题有用.