Я занимаюсь разработкой мультиплатформенного приложения для фаззинга на C ++.Приложение порождает дочерний процесс и проверяет, не остановился ли он неожиданно.Я уже успел сделать это в Linux, однако механизм обработки исключений в Windows затрудняет мне работу.
Мой код прямо сейчас делает следующее: - Вызывает CreateProcess для запуска процесса.- WaitForSingleObject, чтобы дождаться его завершения.- Затем вызовите GetExitCodeProcess и проверьте, соответствует ли код завершения исключению.
Все работает как надо, я протестировал его с помощью тестового приложения с нулевой разыменовкой и могу изящно перехватить исключение.Тем не менее, каждый раз, когда я проверяю это, появляется окно сообщения об ошибке Windows, сообщающее мне, отправлять или не отправлять отчет об ошибке.Поскольку предполагается, что фаззер - это приложение для автоматического тестирования, мне нужно как-то отключить это уведомление, чтобы даже в случае обнаружения исключения фаззер мог продолжить тестирование.
Я уже пытался установитьОбработчик SEH, но не повезло (очевидно, эти обработчики не наследуются дочерними процессами).Я читал кое-что об использовании векторной обработки исключений, но предположим, что это будет то же самое, я считаю, что векторные обработчики не наследуются.
Может кто-нибудь помочь мне с этой проблемой?Я не знаю, что искать, я уже много гуглил и ничего не нашел.
Спасибо!