Estamos obteniendo System.AccessViolationException no determinista arrojado desde el código nativo. Es difícil reproducirlo, pero a veces sucede. No estoy seguro de poder "depurarlo", ya que el tiempo necesario para la infracción de acceso es de aproximadamente 2 horas y no hay garantías de que se produzca una infracción de acceso.Determine el motivo de System.AccessViolationException
La biblioteca nativa es utilizada por los contenedores administrados. Se usa desde Java hasta JNI y se usa desde .NET a través de IKVM'ed JNI. El problema solo se reprodujo durante el código IKVM, pero los conjuntos de datos son diferentes y no hay forma de probar la aplicación Java con los datos utilizados por la aplicación IKVM.
Tengo fuentes para todo, pero (si es posible) quiero evitar hacer una gran cantidad de cambios.
Creo que la pila de llamadas nativa proporcionará suficiente información sobre el motivo de esta infracción de acceso.
¿Hay alguna forma efectiva de determinar el motivo de esta infracción de acceso?
Creo que la solución ideal para mí son algunos cambios en el código o entorno de proceso, por lo que se bloqueará con el volcado de memoria en caso de esta violación de acceso, por lo que puedo hacer esos cambios y esperar.
Hm. Cambié mi código nativo por lo que seguramente tiene una infracción de acceso y lo recompila con símbolos de depuración. Cuando comencé el proceso normalmente y adjunté el depurador de Visual Studio. Agregué un punto de interrupción para arrojar AccessViolationException, pero no fue atrapado. ¿Alguna sugerencia? – okutane
OK, me parece que el punto de interrupción debería ser una violación de acceso Win32. – okutane