Domanda

Stiamo avendo non deterministico Sistema.Tipo accessviolationexception generata dal codice nativo.Difficile da riprodurre, ma a volte succede.Non so se posso "solo debug" poiché il tempo necessario per violazione di accesso è di circa 2 ore e non c'è nessuna garanzia che la violazione di accesso accadrà.

La libreria nativa è utilizzato da wrapper gestiti.E ' utilizzato da java tramite JNI ed è utilizzato dal .NET attraverso IKVM sotto JNI.Il problema era solo riprodotto durante IKVM sotto il codice, ma il set di dati è diversa e non c'è modo di test di applicazioni java con i dati utilizzati da IKVM autenticata applicazione.

Ho fonti per tutto, ma se possibile vorrei evitare di fare gran numero di modifiche.

Credo nativa chiamata stack di fornire informazioni sufficienti circa la ragione di questa violazione di accesso.

C'è qualche efficace modi per determinare il motivo di questa violazione di accesso?

Penso che la soluzione ideale per me è alcune modifiche nel codice o ambiente di processo, in modo che si blocca con l'immagine della memoria in caso di violazione di accesso, in modo da poter fare delle modifiche e solo di attendere.

È stato utile?

Soluzione

Se si può permettersi di attesa per l'eccezione si verifica, collegare il nativo e gestito debugger (misto sessione di debug), e impostare il debugger gestito la rottura quando un AccessViolationException viene generata.Il debugger gestito interromperà il processo quando rileva l'eccezione non gestita, e si dovrebbe quindi essere in grado di vedere il nativo stack di chiamate.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top