Частично сбой приложения? Как я могу поймать неуловимые исключения?

У меня есть программа, написанная на C #, работающая на устройстве Windows CE (на Compact Framework). Он обрабатывает минимальные действия пользователя (нажатия кнопок), использует последовательный порт и связь TCP / IP.

Проблема в том, что иногда программное обеспечение отключается само по себе. В фоновом режиме приложение (или части приложения), кажется, все еще работает (по крайней мере, в одном задокументированном случае), потому что оно использует последовательный порт, поэтому перезапуск приложения не помогает. Я не могу воспроизвести проблему, так как это происходит в большинстве случаев, когда нет взаимодействия с пользователем, нет связи через последовательный порт, а сетевая связь - это все сообщения «Я все еще жив», программное обеспечение просто сбоит, казалось бы, без причины. (Я пытаюсь сделать так, чтобы это происходило в режиме отладки, чтобы хотя бы узнать, в чем проблема в коде, если это программная ошибка, но мне пока не повезло.)

Поскольку у меня заканчиваются идеи, возникает вопрос: какая ошибка или исключение, действие ОС или аппаратная неисправность могут вызвать такое поведение?

Проблема наблюдалась на разных устройствах одного типа, поэтому это не должно быть аппаратной ошибкой. (Или все мое оборудование имеет ту же ошибку.) Исключения обрабатываются, поэтому это не должно быть исключением. Необработанные исключения также обрабатываются, поэтому это также не должно быть необработанным исключением. (Я предполагаю, что это вызваноStackoverflowException потому что я не знаю других исключений, которые не могут быть перехвачены, но в коде нет рекурсии, по крайней мере, не по своей воле, поэтому это тоже не должно быть.)

Ответы на вопрос(3)

Ваш ответ на вопрос