Есть один проектик на C# (не мой, исходники на
гитхабе), это out-of-process COM server, вызываемый из плагина Visual Studio. Проблема с ним — частенько вылетает со stack overflow. При этом выскакивает окошко Just in Time Debugging — как обычно, предлагает закрыть или отладить. И это окошко шибко мешается. Если б процесс тихо завершался при ошибке, было бы все хорошо — плагин студии это отлично воспринимает и тихо перезапускает процесс.
Отсюда вопрос: как бы так сделать, чтобы для данного конкретного процесса при возникновении stack overflow происходило тихое завершение без всплывающих окошек?
Видел, что JitDebugging можно отключить совсем. Но тогда это затронет и все другие программы, что нежелательно, и окошко о крэше все равно будет возникать, просто другое.
Видел про событие AppDomain.CurrentDomain.UnhandledException, но задействовать его у меня не вышло — обработчик не вызывается. Вполне возможно, что что-то я там не учел.
Собирается все в .NET Framework 4.0, x86, Release.
Здравствуйте, D. Mon, Вы писали:
Вот здесь несколько вариантов:
http://stackoverflow.com/a/25213843
Здравствуйте, zou, Вы писали:
zou>Вот здесь несколько вариантов: http://stackoverflow.com/a/25213843
Вот спасибо!
Добавление SetErrorMode(3); в Program.Main() сделало ровно то, что требовалось.
Здравствуйте, D. Mon, Вы писали:
zou>>Вот здесь несколько вариантов: http://stackoverflow.com/a/25213843
DM>Вот спасибо!
DM>Добавление SetErrorMode(3); в Program.Main() сделало ровно то, что требовалось.
Только это будет не "тихонько завершиться", а "закопать без почестей"
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.