gpt4 book ai didi

.net - 确定 System.AccessViolationException 的原因

转载 作者:行者123 更新时间:2023-12-04 15:49:24 25 4
gpt4 key购买 nike

我们从 native 代码中抛出了不确定的 System.AccessViolationException。很难重现它,但有时它会发生。我不确定我是否可以“调试它”,因为访问冲突所需的时间约为 2 小时,并且不能保证会发生访问冲突。

native 库由托管包装器使用。它从 Java 到 JNI 使用,从 .NET 到 IKVM 的 JNI 使用。该问题仅在来自 IKVM 的代码期间重现,但数据集不同,无法使用 IKVM 的应用程序使用的数据测试 java 应用程序。

我有所有资源,但(如果可能)我想避免进行大量更改。

我相信 native 调用堆栈将提供有关此访问冲突原因的足够信息。

是否有任何有效的方法来确定这种访问冲突的原因?

我认为对我来说理想的解决方案是对代码或进程环境进行一些更改,因此如果发生这种访问冲突,它会因内存转储而崩溃,因此我可以进行更改并等待。

最佳答案

如果您可以等待异常发生,请附加托管和 native 调试器(混合调试 session ),并将托管调试器设置为在出现 AccessViolationException 时中断。被抛出。托管调试器将在检测到未处理的异常时中断进程,然后您应该能够看到 native 调用堆栈。

关于.net - 确定 System.AccessViolationException 的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1067568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com