Question

Je construis une application et en utilisant la bibliothèque x264 comme un codeur. J'ai construit la bibliothèque pour mon système Windows en utilisant MSys / MinGW. Les travaux belle bibliothèque en version de débogage (note à la fois le débogage et la libération sont construit en utilisant les paramètres par défaut VS2010). Cependant, en liberté une erreur de violation d'accès est lancé au premier appel à la bibliothèque x264, en particulier:

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

L'erreur est lancée sur cette ligne:

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

Alors que je déterminer comment compiler la bibliothèque, je suis tombé sur beaucoup de discussions sur l'alignement de la mémoire dans Windows / Visual Studios et comment il n'a pas été particulièrement compatible avec l'alignement attendu par x264. Par exemple lors de la compilation dans MSys je devais permettre --enable-memalign-hack. Je me demande si la source de cette erreur pourrait provenir d'un problème d'alignement de mémoire qui ne se manifeste que par quelques réglages dans ma version build. Malheureusement, je sais presque rien sur les détails et ont donc venir ici.

Quelqu'un peut-il me donner plus d'informations sur les problèmes d'alignement de la mémoire et les paramètres Visual Studio qui pourrait être la cause? Tous les autres conseils / pointeurs pour résoudre ce problème sont les bienvenus.

Merci.

Modifier

De réponse ci-dessous:

  1. De la question liée si je reçois l'impression qu'il a ajouté: « construire avec des informations de débogage » à la construction de OpenCV? Depuis que je suis la construction de la bibliothèque x264 par MSys avec G ++ Je ne suis pas sûr que je peux le faire. J'ai vérifié les paramètres de construction pour mon projet, et sous la fois la libération et le déboguer a l'information de débogage. Je ne sais pas si je manqué quelque chose dans ce poste, s'il vous plaît laissez-moi savoir.
  2. J'ai essayé le vérificateur application. Il semble que x264 tente d'exécuter du code de la mémoire non-exécutable par l'App sortie verifier:

    VERIFIER STOP 0000000000000650: pid 0x1B18: 
    

    Tentative d'exécuter du code dans la mémoire non-exécutable (première chance).

    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.
    

Tout à recueillir de cette sortie?

Merci encore.

Était-ce utile?

La solution

Reportez-vous à un problème similaire ici , voir si cela vous aide aussi.

EDIT

Post que vous voulez aussi exécuter votre application par AppVerifier

EDIT

Dans ma version d'opinion « Construire avec des informations de débogage » revient à allumer -g avec des commutateurs d'optimisation et d'éteindre toute macro DEBUG. Aussi, si vous débogueur attaché (utilisez Gflags ) pour démarrer votre processus avec le débogueur (récupérer une copie de windbg et l'utiliser pour le débogage).

Lorsque la Appverifer arrête votre utilisation de processus .cxr commande pour obtenir des informations de contexte. Cela devrait aider à souligner la question.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top