Я пишу addin DLL в C# для хост-приложения, написанного на C++ (у меня нет источника для хост-приложения). Когда я запускаю приложение-хост, он загружает мою DLL для использования в течение этого сеанса. В последнее время я видел следующее сообщение об ошибке при выходе из хост-приложения:Как отлаживать C++ Runtime Ошибка, вызванная моей DLL?
Microsoft Visual C++ Runtime Library
Runtime Error!
Program: MyHostApp.exe
This application has requested the Runtime to terminate it in an unusual way...
Этот диалог содержит только кнопку «OK» (кнопка отладки). После нажатия кнопки «ОК» хост-приложение выходит без указания каких-либо ошибок.
Я нашел это StackOverflow нити с подобной проблемой ...
How to debug a Visual C++ Runtime Error
Но всякий раз, когда я пытаюсь прикрепить VS2008 к упавшему приложению, а затем сделать «перерыв все», как указано, я только получить следующее сообщение от VS:
«. Невозможно разорвать выполнение Этот процесс не исполняемую в данный момент тип кода, который вы выбрали для отладки»
Как мне подойти к отладке?
Если вы имеете в виду «Инструменты | Параметры | Отладка | Just-In-Time | Native», да, это проверено. –
А, я думаю, я понимаю, что вы имеете в виду ... В диалоговом окне «Прикрепить к процессу» я могу выбрать «Исходный код». Выполнение этого заставляет меня пройти начальное сообщение, упомянутое в OP. Однако теперь, когда я делаю «break all», я получаю «Никакие символы не загружаются для любого стека стека вызовов. Исходный код не может быть отображен». Я предполагаю, что это имеет смысл, поскольку у меня нет источника или символов для сбойного приложения-хоста. Я уверен, что что-то в моей DLL заставляет хозяина сбой, я просто не знаю, как его найти ... –