У меня есть приложение в смешанном режиме, в котором я хочу запустить отладчик, если обнаружена ошибка во внутренних структурах данных.
Как ни странно, функции DebugBreak и __debugbreak, похоже, не работают должным образом (кажется, что .Net-среда перехватывает исключение точки останова, что приводит к всевозможным неприятным побочным эффектам).
Решение моего предыдущего вопроса (см. Поведение DebugBreak отличается между неуправляемым и смешанным (неуправляемым + управляемым) приложением? ), кажется, работает для очень простых ситуаций, но не в моем приложении (оно просто оставляет мое приложение висит).
К счастью, я обнаружил, что выполнение System::Diagnostics::Debugger::Launch
, похоже, решает проблему. Однако место, где мне нужна эта логика, используется как в неуправляемых, так и в смешанных приложениях. Кроме того, вызов управляемого кода в месте, где я хочу разместить логику, довольно сложен.
Следовательно: есть ли неуправляемая альтернатива для функции System::Diagnostics::Debugger::Launch
?