Le débogage de Minidump était supposé être majorly amélioré dans VS2010. Je n'ai pas encore vu beaucoup de preuves à ce sujet, le débogage en mode mixte a l'air aussi bizarre qu'avant quand j'ai fait quelques tests rapides. Ne me croyez pas sur parole. Native-only ne va cependant jamais vous montrer une pile d'appels gérés.
face à ce à la source. Ecrivez un gestionnaire d'événements pour AppDomain.CurrentDomain.UnhandledException et enregistrez-le dans votre méthode Main(). Laissez-le afficher la valeur de e.ExceptionObject.ToString() dans, disons, une boîte de message. Cela vous obtient la trace de pile gérée de l'exception. Alors que cette boîte de message est affichée, vous pouvez également aligner le minidump, devrait vous rapprocher de l'emplacement de l'accident.
L'exception particulière que vous obtenez est cependant définitivement pointant vers le code C/C++ natif. Un débordement de tampon qui corrompt la pile. Assurez-vous de disposer des fichiers .pdb pour tout code natif utilisé par votre application. Et configurez le serveur de symboles Microsoft pour obtenir une bonne trace de pile native de la minidump. Edit: le fait que vous n'obteniez pas UnhandledException élevé pointe définitivement vers la vérification de l'intégrité de la pile dans le CRT. Il a été conçu pour ne pas déclenche une exception, mais résilier immédiatement le programme. Comportement nécessaire parce que la pile est compromise, le code ne peut pas supposer qu'il peut être déroulé en toute sécurité. Compte tenu de l'emplacement de l'accident, il est probable que cette vérification soit effectuée dans le code CLR. Je sais que cela n'a pas été fait dans les versions précédentes de CLR, mais cela pourrait être différent dans la version CLR incluse avec .NET 4.0
Cela rendra très difficile l'obtention d'une trace de pile gérée. Il y a beaucoup, vous pouvez l'ingénierie inverse de la trace de la pile non géré, aussi longtemps que vous configurez le serveur de symboles afin que vous obtiendrez des noms d'identification des cadres de pile CLR. Publiez cette trace de pile dans votre question si vous voulez de l'aide pour l'interpréter. Un bug dans le code CLR n'est pas improbable btw, vous pouvez envisager d'appeler le support Microsoft. Ils auront cependant besoin d'un repro cohérent. Ils peuvent faire avec cette trace de pile importante si le repro est difficile à trouver. Configurez le serveur de symboles pour obtenir une bonne trace de pile non gérée. Facile dans VS2010: Outils + Options, Débogage, Symboles, cochez "Microsoft Symbol Servers".
Je ne peux pas coller le code dans ce commentaire parce qu'il est trop petit, donc je l'ai mis ici: http://pastebin.com/WPvB05NV J'ai essayé de suivre votre suggestion pour enregistrer un gestionnaire pour l'exception UnhandledException, mais l'exception se produit toujours sans déclencher l'événement. –
Désolé, j'ai oublié de réaliser: une erreur de dépassement de capacité de la pile met immédiatement fin au programme, elle ne génère pas d'exception. Je suis assez sûr que ces contrôles n'étaient pas présents dans CLR 2.0 mais cela pourrait être différent pour CLR 4.0. Rugueux, vous pourriez avoir besoin de l'aide de Microsoft Support. Obtenir un repro cohérent est essentiel. –