Pregunta

Estoy construyendo una aplicación y el uso de la biblioteca como un codificador x264. He construido la biblioteca para mi sistema de ventanas utilizando MSys / MingW. El bien funciona la biblioteca bajo versión de depuración (debug en cuenta tanto las versiones de lanzamiento y se utiliza el valor por defecto VS2010 configuración). Sin embargo, en virtud de la liberación se produce una violación de error de acceso a la primera llamada a la biblioteca x264, en concreto:

  Unhandled exception at 0x00905a4d in StreamTest.exe:
  0xC0000005: Access violation.

El error se lanza a esta línea:

x264_param_default_preset((params), "veryfast", "zerolatency");

Mientras yo era averiguar cómo compilar la biblioteca me encontré con un montón de hablar de alineación de memoria en Windows / Visuales Estudios y cómo no era particularmente compatibles con la alineación esperada por x264. Por ejemplo cuando se compila en MSys tuve que permitirá enable-memalign-Hack. Me pregunto si el origen de este error podría deberse a un problema de alineación de memoria que sólo se manifiesta a través de un cierto ajuste en mi liberación de construcción. Por desgracia no sé casi nada sobre los detalles y también lo han venido aquí.

Puede alguien dame un poco más información con respecto a los problemas de alineación de memoria y cualquier configuración de Visual Studio que podría causar esto? ¿Alguna otra sugerencia / punteros para solucionar este problema son muy bienvenidos.

Gracias.

Editar

A partir de la respuesta a continuación:

  1. Desde el ligado Así que la pregunta me da la impresión, agregó "la estructura con información de depuración" a la acumulación OpenCV? Desde que estoy construyendo la biblioteca x264 través MSys con G ++ No estoy seguro de que puedo hacer esto. He comprobado los valores de creación para mi proyecto, y en tanto la liberación y depurarlo tiene información depurador. No estoy seguro si me he perdido algo en ese puesto, por favor hágamelo saber.
  2. Me trató la aplicación verificador. Parece que x264 intento de ejecución de código de la memoria no ejecutable según la App verificador de salida:

    VERIFIER STOP 0000000000000650: pid 0x1B18: 
    

    Intento de ejecutar código en la memoria no ejecutable (primera oportunidad).

    0000000000905A4D : Address being accessed.
    0000000000905A4D : Code performing invalid access.
    000000000021EA90 : Exception record. Use .exr to display it.
    000000000021E5A0 : Context record. Use .cxr to display it.
    

Todo lo que se desprende de esta salida?

Gracias de nuevo.

¿Fue útil?

Solución

Refer to a similar issue here, see if that helps you too.

EDIT

Post that you also want to run your application through AppVerifier

EDIT

In my opinion release "Build with debugger info" amounts to turning on -g switch together with optimization switches and turning off any DEBUG macro. Also if you debugger attached (use Gflags ) to start your process with debugger (grab a copy of windbg and use that to debug).

When the Appverifer stops your process use .cxr command to get context information. That should help pointing out the issue.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top