web-dev-qa-db-fra.com

Pourquoi ntdll.dll plante-il mon exécutable c ++?

J'ai du mal à faire fonctionner un exécutable Visual C++, l'application se bloque, voici ce que j'ai vu dans l'Observateur d'événements.

Faulting application name: submit.exe, version: 0.0.0.0, time stamp: 0x50a3cce7
Faulting module name: ntdll.dll, version: 6.1.7601.17514, time stamp: 0x4ce7ba58
Exception code: 0xc0000374
Fault offset: 0x000ce653
Faulting process id: 0x8fc
Faulting application start time: 0x01cdc2a3da4f2997
Faulting application path: c:\submit.exe
Faulting module path: C:\Windows\SysWOW64\ntdll.dll
Report Id: 1813823a-2e97-11e2-8675-000c29229191

L'exécutable compilé dans les anciennes versions de Visual Studio fonctionne mais j'obtiens l'erreur avec l'exécutable compilé avec des VS plus récents comme 2008 ou 2010. veuillez conseiller

15
user1789769

Dépannage de ce type de problème peut être un véritable défi ... en particulier lorsque vous n'êtes pas familier avec la base de code.

Pensez à utiliser le Application Verifier conjointement avec le débogueur Visual Studio.

  1. Démarrez Visual Studio et compilez votre application
  2. Démarrez l'utilitaire Verifier d'application.
  3. File => Add Application
  4. Sélectionnez le Tests approprié (par exemple tas, exceptions, ...)
  5. Utilisez Visual Studio Debug pour démarrer votre application.

Quand quelque chose mauvais se produit ... votre débogueur s'arrête. Cela devrait vous donner une assez bonne idée de la source du problème.

De plus, cela pourrait aider à charger les symboles manquants avant de commencer votre test. Dans Visual Studio 2012, vous pouvez le faire en: Debug => Options and Settings => Debugging => Symbols => Load all symbols.

Bonne chance!

LES RÉFÉRENCES

MISE À JOUR: juillet 2015

Lorsque vous avez terminé, assurez-vous de désactiver les contrôles AppVerfier que vous avez activés ... sinon vous risquez de subir des effets secondaires inattendus 6 mois plus tard. lorsque vous avez oublié AppVerifier .

11
Pressacco