Debugging 外部Microsoft DLL中的崩溃?
我已经和一个发生在我的游戏引擎中的崩溃做了6个月的斗争。我最近收到了一个测试人员的一些内存转储,他得到了崩溃(我自己没有得到)。测试仪在Windows7 32位上,我在WindowsXP32位上。这些崩溃似乎与Sapi有关,更确切地说,Sapi是文本到语音的部分。我通过IDispatch接口调用它,使用在以下位置找到的包装器: 下面是从两个内存转储中提取的两个堆栈跟踪 第一个堆栈跟踪中显示的崩溃似乎是在游戏执行过程中随机发生的,由于某种原因,即使存在危险的\u hearts.pdb,也无法解决整个堆栈。在第二个痕迹中,它发现了危险的心符号。我完全不知道这个错误是由什么引起的。谁能给我一些提示吗Debugging 外部Microsoft DLL中的崩溃?,debugging,winapi,visual-c++,Debugging,Winapi,Visual C++,我已经和一个发生在我的游戏引擎中的崩溃做了6个月的斗争。我最近收到了一个测试人员的一些内存转储,他得到了崩溃(我自己没有得到)。测试仪在Windows7 32位上,我在WindowsXP32位上。这些崩溃似乎与Sapi有关,更确切地说,Sapi是文本到语音的部分。我通过IDispatch接口调用它,使用在以下位置找到的包装器: 下面是从两个内存转储中提取的两个堆栈跟踪 第一个堆栈跟踪中显示的崩溃似乎是在游戏执行过程中随机发生的,由于某种原因,即使存在危险的\u hearts.pdb,也无法
正如我前面提到的,这些崩溃不会发生在Windows XP上,而只发生在Windows 7上,两者都是32位计算机。在这两种情况下,崩溃都是由hlas.dll引起的,不管是什么。正如分析所说,第一个堆栈中存在堆损坏,第二个堆栈中存在空指针函数指针。HLA也存在于您的。不同的崩溃中,原因相同:堆损坏。崩溃位置与实际损坏堆的代码没有任何关系。使用应用程序验证程序来尝试查找错误。我曾尝试使用应用程序验证程序,但到目前为止没有结果。崩溃不会发生在我的开发机器上,我的测试人员也没有得到任何结果(至少现在还没有)。不幸的是,我不知道Hlas.dll是什么。你可以问你的测试人员Hlas.dll是什么,也许文件版本信息可以作为线索。一个小小的网络搜索表明,这是一个捷克公司GALOP的产品。dll显然是Sapi 4的捷克tts语音,所以我不知道为什么会涉及到它,但我会进一步调查,并在了解更多信息后再次回信。非常感谢。我的测试人员使用的是一个盲人屏幕阅读器,它显然将自身与外部进程挂钩,Hlas.dll不仅是一个Sapi 4语音,而且还为他的屏幕阅读器当时使用的Sapi 5引擎提供动力。这个dll显然是不稳定的,因此如果崩溃,屏幕阅读器和游戏也会随之崩溃。这就是我所能收集到的。这听起来像是一个可能的原因吗?我不认为我需要对此做出回应。你回答了你自己的问题