我们遇到了非确定性的System.AccessViolationException异常,这个异常是从本地代码中抛出的。很难重现它,但有时会发生。我不确定是否可以“仅调试它”,因为访问冲突所需的时间约为2小时,并且不能保证访问冲突一定会发生。
本地库由托管包装器使用。它通过JNI从Java中使用,并通过IKVM'ed JNI从.NET中使用。问题只在IKVM'ed代码中复现,但数据集不同,无法使用IKVM'ed应用程序使用的数据测试Java应用程序。
我拥有所有源代码,但(如果可能的话)我希望避免进行大量更改。
我相信本地调用堆栈将提供关于此访问冲突原因的足够信息。
有没有有效的方法来确定此访问冲突的原因?
我认为对我来说理想的解决方案是对代码或进程环境进行一些更改,以便在出现此访问冲突的情况下崩溃并生成内存转储,这样我就可以进行那些更改并等待结果。
本地库由托管包装器使用。它通过JNI从Java中使用,并通过IKVM'ed JNI从.NET中使用。问题只在IKVM'ed代码中复现,但数据集不同,无法使用IKVM'ed应用程序使用的数据测试Java应用程序。
我拥有所有源代码,但(如果可能的话)我希望避免进行大量更改。
我相信本地调用堆栈将提供关于此访问冲突原因的足够信息。
有没有有效的方法来确定此访问冲突的原因?
我认为对我来说理想的解决方案是对代码或进程环境进行一些更改,以便在出现此访问冲突的情况下崩溃并生成内存转储,这样我就可以进行那些更改并等待结果。