fk0, легенда (10.08.2019 12:43, просмотров: 826) ответил Make_Pic на Вид зависания невозможно определить. Очень редкий, вот и хотелось добавить какой то свой обработчик в код, чтобы определить вид и причину.
Помимо прочего при нормальном программировании всегда делается какой-то "логгер" ведущий протокол работы программы. Потому, что когда она грохнется не всегда уже можно понять почему. И этот протокол должен выводиться или в какой-либо интерфейс связи (компорт), или накапливаться в памяти (постоянной, или оперативной, но сохраняемой после перезапуска из-за аварийного завершения). Кроме того, нормальные программисты расставляют ассерты и НЕ ВЫКЛЮЧАЮТ их все в продуктовой прошивке (выключаются только наиболее тяжелые). Потому, что гораздо лучше дело иметь со сработавшим ассертом, что с тихими непонятными глюками. А решать баги в уже выпущенной продуктовой прошивке придётся в любом случае -- программ без ошибок не бывает. Кроме того, какой-либо анализатор кода (начиная с PVS-studio и заканчивая address sanitizer или valgrind) может найти ошибку за программиста и гораздо быстрей. Только для использования динамических анализаторов нужно либо иметь на целевой платформе линукс и дофига свободной памяти, либо уметь собирать из исходников "синтетический порт" на ПК, который и будете анализироваться.
[ZX]