Тихий катастрофический отказ в приложении C++ Visual Studio 2008 года

У нас есть неуправляемый C++ серверное приложение TCP, работающее как служба Windows, которая тихо отказывает после нескольких дней работавших сервер Win2003. Нет никакого сгенерированного файла журнала доктора Watson (без проблем с журналом доктора Watson, поскольку он ловит другие катастрофические отказы в том же приложении). Из-за отсутствия файла журнала доктора Watson, мы не можем прогрессировать о том, как отладить это далее..

Серверное приложение TCP является видом процессора HTTP. Это соединяется с широким спектром веб-сервера и обрабатывает данные.

Может кто-то вести меня, что может быть сделано для отладки тихих катастрофических отказов.. Существуют 1000 + пользователи, подключенные к этому серверу в любой момент и таким образом не возможный выполнять то же в режиме отладки. Катастрофический отказ не восстанавливаем и происходит однажды за 5-10 дней на одном из этих 6 серверов..

Любой инструмент, который может помочь отладить эти тихие катастрофические отказы. Приложение является чистым приложением C++ без любого MFC или STL..

Заранее спасибо.

Krishna

1
задан Billy ONeal 8 July 2010 в 17:18
поделиться

1 ответ

Последний раз, когда у меня возникала такая проблема с тихим падением, это было из-за проверки параметров времени выполнения C., который по умолчанию просто вызывает TerminateProcess без каких-либо дополнительных возможностей (в зависимости от того, на какую версию msvcrt * .dll вы ссылаетесь). Если это причина вашей проблемы, вы можете избежать ее, вызвав _set_invalid_parameter_handler и указав обработчик, который либо вызывает DebugBreak (принудительное завершение работы), либо ничего не делает, разрешая код ошибки для вернуться к вызывающему. Подробности по ссылке выше.

2
ответ дан 2 September 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: