J'écris une DLL addin en C# pour une application hôte écrite en C++ (je n'ai pas de source pour l'application hôte). Lorsque j'exécute l'application hôte, elle charge ma DLL pour l'utiliser pendant cette session. Récemment, j'ai été voir l'erreur suivante lors de la sortie de l'application hôte:Comment faire pour déboguer C++ Runtime Erreur causée par ma DLL?
Microsoft Visual C++ Runtime Library
Runtime Error!
Program: MyHostApp.exe
This application has requested the Runtime to terminate it in an unusual way...
Cette boîte de dialogue ne contient qu'un bouton « OK » (pas de bouton de mise au point). Après avoir appuyé sur OK, l'application hôte quitte sans donner d'indication sur ce qui a pu causer l'erreur.
J'ai trouvé ce fil stackoverflow avec un problème similaire ...
How to debug a Visual C++ Runtime Error
Mais, chaque fois que je tente de joindre VS2008 à l'application écrasé, puis faire un « tout casser » comme indiqué, je que le message suivant de VS:
«. Impossible de briser l'exécution Ce processus n'est pas en train d'exécuter le type de code que vous avez sélectionné pour déboguer »
Comment dois-je aborder le débogage?
Si vous voulez dire "Outils | Options | Débogage | Juste-à-temps | Natif", oui, c'est coché. –
Ah, je pense que je vois ce que vous voulez dire ... Dans la boîte de dialogue "Attach to Process", je peux sélectionner "Native code". Cela me permet de dépasser le message initial mentionné dans le PO. Cependant, maintenant, quand je fais un "break all", je reçois un "Aucun symbole n'est chargé pour n'importe quel cadre de pile d'appels Le code source ne peut pas être affiché." Je suppose que c'est logique car je n'ai pas de source ou de symboles pour l'application hôte qui plante. Je suis certain que quelque chose dans ma DLL provoque le crash de l'hôte, je ne sais pas comment le trouver ... –