Как подключить к процессу, который загружает мою DLL и отладить его
В основном, я разрабатываю DLL (открытый интерфейс), который будет использоваться сторонним программным обеспечением. Я хочу отладить свою DLL после ее загрузки этой сторонней DLL, потому что я обнаружил конкретную ошибку, которая возникает только тогда, когда моя DLL загружается этим сторонним программным обеспечением (моя DLL работает нормально для всех других программ, которые принимают этот открытый интерфейс)
Я установил __debugbreak() в моей кодовой DLL и запустил стороннее программное обеспечение. В диалоговом окне Visual Studio появилось сообщение о том, хочу ли я выполнить отладку... но после того, как я нажму OK, вместо того, чтобы попасть в окно Visual Studio, которое показывает строку кода, в которой я установил точку останова, Visual Studio просто падает.
Я обнаружил, что сторонний софтвард загружает мою DLL и запускает ее в другом потоке. И я подозреваю, что это причина сбоя стороннего программного обеспечения, потому что __debugbreak() эффективно вызывает необработанное исключение в потоке, запущенном основным потоком.
В этом случае, как я могу отладить мою DLL?
1 ответ
К сожалению, VS падает, но вы можете найти способ обойти это.
Лучше всего начать сеанс отладки прямо сейчас. Или используйте "присоединить к процессу", когда процесс заблокирован в окне сообщений или другом входе. Также лучше использовать точки останова.
С помощью __debugbreak() или принудительного нарушения доступа попробуйте задать новый экземпляр VS, а не существующий.