给两个使用相同引擎的游戏做了一个 dll 。
使用的 detours ,钩了 MultiByteToWideChar 。
自己写的主程序测试没有问题,两个返回值和系统的 MultiByteToWideChar 规律一致。
结果:
Debug 模式, A 游戏: RtlpAllocateHeap 异常
Release 模式, A 游戏:在开始游戏几分钟之内没有问题,各种功能可正常操作
Debug 模式, B 游戏:无法开始游戏, RltpFreeHeap 异常
Release 模式, B 游戏:场景切换时, RltpFreeHeap 异常
Release 关掉 Whole Program Optimization , B 游戏: RtlpInsertFreeBlock 异常(被 RtlpFreeHeap 调用)
另外代码也加了几个简单的线程锁,也不知对这类问题发生的概率有没有影响。
我的问题是,大家一般遇到这类异常的时候,都会检查哪些方面?
或者有没有相关的资料可供参考学习?
使用的 detours ,钩了 MultiByteToWideChar 。
自己写的主程序测试没有问题,两个返回值和系统的 MultiByteToWideChar 规律一致。
结果:
Debug 模式, A 游戏: RtlpAllocateHeap 异常
Release 模式, A 游戏:在开始游戏几分钟之内没有问题,各种功能可正常操作
Debug 模式, B 游戏:无法开始游戏, RltpFreeHeap 异常
Release 模式, B 游戏:场景切换时, RltpFreeHeap 异常
Release 关掉 Whole Program Optimization , B 游戏: RtlpInsertFreeBlock 异常(被 RtlpFreeHeap 调用)
另外代码也加了几个简单的线程锁,也不知对这类问题发生的概率有没有影响。
我的问题是,大家一般遇到这类异常的时候,都会检查哪些方面?
或者有没有相关的资料可供参考学习?
