6 Stimmen

Grund der System.AccessViolationException ermitteln

Wir haben nicht-deterministische System.AccessViolationException von nativen Code ausgelöst. Es ist schwer, es zu reproduzieren, aber manchmal passiert es. Ich bin nicht sicher, ob ich "nur debuggen", da die Zeit für Zugriffsverletzung benötigt wird, ist etwa 2 Stunden und es gibt keine Garantien, dass Zugriffsverletzung passieren wird.

Die native Bibliothek wird von verwalteten Wrappern verwendet. Es ist von Java durch JNI verwendet und es ist von .NET durch IKVM'ed JNI verwendet. Das Problem wurde nur während von IKVM'ed Code reproduziert, aber die Datensätze ist anders und es gibt keine Möglichkeit, Java-Anwendung mit Daten von IKVM'ed Anwendung verwendet zu testen.

Ich habe Quellen für alles, aber (wenn möglich) möchte ich vermeiden, eine große Anzahl von Änderungen vorzunehmen.

Ich glaube, dass der systemeigene Aufrufstapel genügend Informationen über den Grund dieser Zugriffsverletzung liefern wird.

Gibt es eine wirksame Methode, um den Grund für diese Zugangsverletzung zu ermitteln?

Ich denke, die ideale Lösung für mich ist einige Änderungen im Code oder Prozessumgebung, so dass es mit Speicherabzug im Falle dieser Zugriffsverletzung abstürzen wird, so dass ich diese Änderungen vornehmen und einfach warten kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X