тихонько завершиться при переполнении стека
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 09.01.16 20:46
Оценка:
Есть один проектик на 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.
Re: тихонько завершиться при переполнении стека
От: zou  
Дата: 09.01.16 20:59
Оценка: 43 (2)
Здравствуйте, D. Mon, Вы писали:

Вот здесь несколько вариантов: http://stackoverflow.com/a/25213843
Re[2]: тихонько завершиться при переполнении стека
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 10.01.16 00:51
Оценка:
Здравствуйте, zou, Вы писали:

zou>Вот здесь несколько вариантов: http://stackoverflow.com/a/25213843


Вот спасибо!
Добавление SetErrorMode(3); в Program.Main() сделало ровно то, что требовалось.
Re[3]: тихонько завершиться при переполнении стека
От: TK Лес кывт.рф
Дата: 12.01.16 08:29
Оценка: +1 :)
Здравствуйте, D. Mon, Вы писали:

zou>>Вот здесь несколько вариантов: http://stackoverflow.com/a/25213843


DM>Вот спасибо!

DM>Добавление SetErrorMode(3); в Program.Main() сделало ровно то, что требовалось.

Только это будет не "тихонько завершиться", а "закопать без почестей"
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.