Я хотел бы заранее извиниться, потому что это не очень хороший вопрос.
У меня есть серверное приложение, которое работает как служба на выделенном компьютере под управлением Windows. сервер. Это приложение выходит из строя совершенно случайным образом и не оставляет никаких намеков на причину сбоя.
При сбое в журналах событий появляется запись о том, что приложение не удалось, но выдается понятия не имею, почему. Он также дает некоторую информацию о неисправном модуле, но она не кажется очень достоверной, поскольку при каждом сбое неисправный модуль обычно меняется. Например, последний сказал, что это ntdll, предыдущий сказал, что это libmysql, предыдущий сказал, что это netsomething, и так далее.
Каждый поток в приложении обертывается в try/catch (...) (все, что выдается обработчиком исключений/не перехвачено специально), __try/__Exception (структурированные исключения) и try/catch (особые исключения C++). Приложение скомпилировано с использованием /EHa, поэтому функция catch all также будет перехватывать структурированные исключения.
Все эти обработчики исключений делают одно и то же. Сначала создается аварийный дамп. Во-вторых, запись записывается в новый файл на диске. В-третьих, в журналах приложений регистрируется запись. В случае этих сбоев ничего из этого не происходит. Самый нижний обработчик исключений (try/catch (...)) ничего не делает, он просто завершает поток. Основной поток приложения находится в режиме ожидания и не имеет возможности генерировать исключение.
Файлы журнала приложения просто перестают вести журнал. Вскоре после этого процесс, отслеживающий сервер, замечает, что он больше не отвечает, отправляет предупреждение и запускает его снова. Если монитор сервера замечает, что сервер все еще работает, но просто не отвечает, он делает дамп процесса и сообщает об этом, но этого не происходит.
Единственная другая причина такого поведения, которую я могу придумать, помимо неперехваченных исключений, — это вызов выхода или что-то подобное. Поиск по коду не вызывает вызовов каких-либо функций, которые могли бы завершить процесс. Я также убедился, что программа не завершается нормально (т. е. запрос на остановку от диспетчера служб).
Мы пробовали запустить ее с подключенным Windbg (нет шанс использовать Visual Studio, накладные расходы слишком высоки), но он ничего не сообщил, когда произошел сбой.
Что может привести к такому сбою приложения? У нас уже заканчиваются варианты, и мы полагаем, что это может быть аппаратный сбой, но мне это кажется маловероятным.
Подробнее здесь: https://stackoverflow.com/questions/522 ... xplanation
Сбой приложения без объяснения причин ⇐ C++
Программы на C++. Форум разработчиков
1714254817
Anonymous
Я хотел бы заранее извиниться, потому что это не очень хороший вопрос.
У меня есть серверное приложение, которое работает как служба на выделенном компьютере под управлением Windows. сервер. Это приложение выходит из строя совершенно случайным образом и не оставляет никаких намеков на причину сбоя.
При сбое в журналах событий появляется запись о том, что приложение не удалось, но выдается понятия не имею, почему. Он также дает некоторую информацию о неисправном модуле, но она не кажется очень достоверной, поскольку при каждом сбое неисправный модуль обычно меняется. Например, последний сказал, что это ntdll, предыдущий сказал, что это libmysql, предыдущий сказал, что это netsomething, и так далее.
Каждый поток в приложении обертывается в try/catch (...) (все, что выдается обработчиком исключений/не перехвачено специально), __try/__Exception (структурированные исключения) и try/catch (особые исключения C++). Приложение скомпилировано с использованием /EHa, поэтому функция catch all также будет перехватывать структурированные исключения.
Все эти обработчики исключений делают одно и то же. Сначала создается аварийный дамп. Во-вторых, запись записывается в новый файл на диске. В-третьих, в журналах приложений регистрируется запись. В случае этих сбоев [b]ничего из этого не происходит[/b]. Самый нижний обработчик исключений (try/catch (...)) ничего не делает, он просто завершает поток. Основной поток приложения находится в режиме ожидания и не имеет возможности генерировать исключение.
Файлы журнала приложения просто перестают вести журнал. Вскоре после этого процесс, отслеживающий сервер, замечает, что он больше не отвечает, отправляет предупреждение и запускает его снова. Если монитор сервера замечает, что сервер все еще работает, но просто не отвечает, он делает дамп процесса и сообщает об этом, но этого не происходит.
Единственная другая причина такого поведения, которую я могу придумать, помимо неперехваченных исключений, — это вызов выхода или что-то подобное. Поиск по коду не вызывает вызовов каких-либо функций, которые могли бы завершить процесс. Я также убедился, что программа не завершается нормально (т. е. запрос на остановку от диспетчера служб).
Мы пробовали запустить ее с подключенным Windbg (нет шанс использовать Visual Studio, накладные расходы слишком высоки), но он ничего не сообщил, когда произошел сбой.
Что может привести к такому сбою приложения? У нас уже заканчиваются варианты, и мы полагаем, что это может быть аппаратный сбой, но мне это кажется маловероятным.
Подробнее здесь: [url]https://stackoverflow.com/questions/5224154/application-crash-with-no-explanation[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия