Я пытаюсь написать программу для проверки студенческого кода на предмет хорошей реализации. У меня есть консольное приложение C ++, которое будет запускать один тест за раз, определяемый аргументами командной строки, и приложение форм C # .net, которое вызывает приложение c ++ один раз для каждого теста. Цель состоит в том, чтобы иметь возможность обнаруживать не только прохождение / неудачу для каждого теста, но также «бесконечный» (> 5 сек) цикл и исключения (их код умирает по любой причине).
Проблема в том, что не все ошибки убивают приложение C ++. Если они испортили кучу, система вызывает __debugbreak, и появляется окно с сообщением об ошибке отладки! Обнаружена ошибка кучи ... Мое приложение на C # использует Process.WaitForExit (5000) для ожидания, но эта ошибка не считается выходом, поэтому я вижу тайм-аут.
Итак, мой вопрос: как мне заставить приложение C # обнаружить, что это ошибка, ИЛИ как заставить приложение C ++ умереть при возникновении этой ошибки, вместо того, чтобы давать диалоговое окно и спрашивать, хочу ли я отладить
Edit:
Вот всплывающая ошибка: Ошибка отладки
Вот обычное диалоговое окно сбоя приложения, которое появляется, если я нажимаю «Повторить» в предыдущем диалоговом окне: Ошибка Windows . Опция отладки пропадает, если вы выключаете отладчик JIT.