我们从本机代码中抛出了不确定的 System.AccessViolationException。很难重现它,但有时它会发生。我不确定我是否可以“调试它”,因为访问冲突所需的时间约为 2 小时,并且无法保证会发生访问冲突。
本机库由托管包装器使用。它通过 JNI 从 java 使用,并通过 IKVM 的 JNI 从 .NET 使用。该问题仅在从 IKVM 的代码中重现,但数据集不同,无法使用 IKVM 应用程序使用的数据测试 java 应用程序。
我有所有东西的来源,但是(如果可能的话)我想避免进行大量更改。
我相信本机调用堆栈将提供有关此访问冲突原因的足够信息。
是否有任何有效的方法来确定这种访问违规的原因?
我认为对我来说理想的解决方案是对代码或流程环境进行一些更改,因此如果发生这种访问冲突,它会因内存转储而崩溃,因此我可以进行更改并等待。