我在兼容所有以前版本的软件上重现了崩溃,但现在在 Windows 10 预览版上它不断崩溃,至于游戏部分,它不是由软件本身引起的,因为一切都指向导致崩溃的 ATI 驱动程序组件,因此从游戏技术上讲,无法达到或调试太多内容。如果这里有人有处理此类崩溃转储的经验,或者至少了解此转储明确提供的堆栈消息,并且可以给出崩溃的可能原因,我会非常高兴。我自己不从事 D3D/图形开发,也无法从调试器输出中读取任何内容。
这是在 ATI 模块上崩溃的游戏 Multi Theft Auto,这是用于 SA 的 MP 引擎,它可以在所有东西上运行,但对于有限的用户群(就目前而言)则不行,或者仅限于我,不知道。
调试器输出:http://pastebin.com/Bd4NPvKB
如果你有一个带有更多(ati)符号的调试器,那么这里就是转储文件本身: https://mega.co.nz/#!BEESVAqL!ynbyXuyad7vOSMuaxYzsRypa9f__6_9mHbungAUIDes
这些是崩溃参数:
版本 = 1.4-release-6949.0.000 时间 = 2014 年 11 月 28 日星期五 17:44:01 模块 = C:\WINDOWS\SYSTEM32\atiumdag.dll 代码 = 0xC0000005 偏移量 = 0x00027ED5
EAX=00000000 EBX=06D7899C ECX=00000001 EDX=00000000 ESI=06D7899C EDI=0E322B44 EBP=0029F15C ESP=0029EF48 EIP=6CCF7ED5 FLG=00010246 CS=0023 DS=002B SS=002B ES=002B FS=0053 GS=002B
提前致谢
答案1
这里没什么可看的。错误指令是
6ccf7ed5 f7421800040000 test dword ptr [edx+18h],400h
但是 edx 中有一个零,所以它指的是地址 0x18,这当然是一个从未定义的地址(从 0 到 0xFFFF 的所有 va 都是如此)。
至于 edx 是如何得到零的,我们不知道。它可能是上一条指令从内存中加载的:
6ccf7ecf 8b9624040000 mov edx,dword ptr [esi+424h]
esi 包含一个看似合理的地址;该指令将从 0x06d78dc0 处的 dword 加载 edx。但我们无法在小型转储中看到该内存位置,而且无论如何也没有证据表明指令流来自前一条指令;测试指令可能已从其他地方 JMP 或 B'd 到。
在已发布的 Windows 版本下,系统是否完全稳定?如果不是,则怀疑硬件(显卡或电源)。
除此之外,您可能没有其他办法来修复它,只能从 ATI 获取更新的驱动程序。(或者尝试使用较旧的驱动程序 - 有时这会有所帮助。)
并且,请记住:这些甚至不是 Windows 10 的测试版;它们预计不稳定。