У нас есть неуправляемый C++ серверное приложение TCP, работающее как служба Windows, которая тихо отказывает после нескольких дней работавших сервер Win2003. Нет никакого сгенерированного файла журнала доктора Watson (без проблем с журналом доктора Watson, поскольку он ловит другие катастрофические отказы в том же приложении). Из-за отсутствия файла журнала доктора Watson, мы не можем прогрессировать о том, как отладить это далее..
Серверное приложение TCP является видом процессора HTTP. Это соединяется с широким спектром веб-сервера и обрабатывает данные.
Может кто-то вести меня, что может быть сделано для отладки тихих катастрофических отказов.. Существуют 1000 + пользователи, подключенные к этому серверу в любой момент и таким образом не возможный выполнять то же в режиме отладки. Катастрофический отказ не восстанавливаем и происходит однажды за 5-10 дней на одном из этих 6 серверов..
Любой инструмент, который может помочь отладить эти тихие катастрофические отказы. Приложение является чистым приложением C++ без любого MFC или STL..
Заранее спасибо.
Krishna
Последний раз, когда у меня возникала такая проблема с тихим падением, это было из-за проверки параметров времени выполнения C., который по умолчанию просто вызывает TerminateProcess
без каких-либо дополнительных возможностей (в зависимости от того, на какую версию msvcrt * .dll
вы ссылаетесь). Если это причина вашей проблемы, вы можете избежать ее, вызвав _set_invalid_parameter_handler
и указав обработчик, который либо вызывает DebugBreak
(принудительное завершение работы), либо ничего не делает, разрешая код ошибки для вернуться к вызывающему. Подробности по ссылке выше.