2010-02-25 11 views

Répondre

1

Non, l'appel du débogueur est créé dans le code qui exécute la pile de l'exception, de sorte que la pile n'a pas encore été déroulée. Cela est vrai pour les exceptions de synchronisation (C++) et async (OS).

Voir le Fig. 13 dans le fameux article MSJ A Crash Course on the Depths of Win32™ Structured Exception Handling.

Le filtre d'exception non géré est appelé après le premier passage de la liste de filtre d'exception, si aucun filtre admis qui est disposé à gérer l'exception. Ce premier passage est avant le déroulement, qui se produit au second passage. Si vous entrez dans le débogueur lorsque vous avez une chance, vous trouverez votre place descendre votre pile, et cela prend tout son sens: il serait peu ou pas utile de déboguer une pile qui avait déjà déroulé, vous n'auriez aucune idée Qu'est ce qui ne s'est pas bien passé.

+0

Je faisais référence à http://www.boost.org/community/error_handling.html et à la section 'Note pour les développeurs Windows' sous 'What About Programmer Errors?' section... –

0

Cela dépend de stack unwind semantics choisi lors de la compilation de votre application Compilateur peut être chargé d'attraper ou de ne pas attraper des exceptions SEH pour votre code. Le code de démarrage attrape toujours C++ & SEH exceptions et si une exception est détectée, il met fin à l'application.