2009-07-27 8 views
0

J'ai une grande application C++ fonctionnant sous Win32 et une version x64 (en utilisant Windows XP x64). Lors du débogage de la version 64 bits, après chaque changement de code la première session de débogage je commence à arrêts avecPourquoi ma session Débogage VC 2005 x64 échoue-t-elle toujours lors du premier essai (mais pas lors du second essai)?

exception non gérée à 0x77ee5f3c dans myapp.exe: 0xC0000005: violation d'accès emplacement d'écriture 0x0000000000030c90.

Le callstack montre appels récursifs sans fin à ntdll:

ntdll.dll!0000000077ee5f46()  
ntdll.dll!0000000077ef31ed()  
ntdll.dll!0000000077efbc0b()  
ntdll.dll!0000000077f2539e()  
ntdll.dll!0000000077ee5f46()  
ntdll.dll!0000000077ef31ed() 
etc. 

Quand, après cela, je choisis « Arrêter le débogage », puis « Start Debugging », généralement tout va bien et que le problème ne se reproduise plus jusqu'à ce que je compile du code et un lien ou si je redémarre Visual Studio.

Répondre

1

Les adresses que vous avez indiquées sont des adresses de 32 bits. Cela suggère que VS essaye d'utiliser son débogueur 64 bits sur un processus 32 bits.

Vous avez peut-être un mélange de plates-formes de construction 'Win32', 'x64' et 'Any CPU' dans votre solution. Assurez-vous que votre «plate-forme de construction active» est définie de manière cohérente. La substance .net prétend 'n'importe quel processeur' sur la surface, en dessous il a quelques affinités pour l'opération de 32 bits. Désactiver 'Editer et continuer' le débogage semble aider aussi ce genre de chose.

+0

Désactiver "Modifier et continuer" semble réduire la fréquence du problème, mais il n'est pas parti.J'utilise pas .NET mais Win32.La machine cible sélectionnée est/MACHINE: X64. –

Questions connexes