kshshe
@kshshe
Frontend developer

С какими сложными случаями отладки вы сталкивались?

Если этот вопрос нарушает правила Тостера, скажите, пожалуйста. В правилах такого не нашел, но мало ли.

Что в вашем опыте было сложно отладить? Интересны ситуации, когда поиск бага/ошибки был затруднительным/невозможным.
Языки и технологии подойдут любые, но интереснее всего JavaScript.
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ответы на вопрос 2
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
Пока не удалили отвечу:
1) Любые "плавающие" баги, т.е. те, которые могут воспроизводиться или нет псевдослучайным образом, да ещё иногда и только на одной платформе. Бывает очень сложно или даже порой почти невозможно выявить закономерность и понять причину, в особенности, если это не регрессия.
2) Баги, которые стабильно воспроизводятся у клиентов, и зависят от внешних факторов, например, окружения или подключенные устройства. На правку этого можно потерять очень много времени.
3) Отладка любой достаточно сложной и долгоживущей многопоточной системы.

Больше к C++
1) Memory corruption
2) UB на определённых компиляторах и архитектурах

Остальное обычно не так интересно отлаживать.
Ответ написан
Комментировать
@res2001
Developer, ex-admin
Был опыт реализации на Си мат.модели, написанной на Матлабе физиками.
Модель считала все в double. На Си для скорости использовали float. На прямую результат проверить было не возможно как минимум из-за ошибок округления, а если еще появлялись ошибки в Си реализации (а они были), то вообще труба, т.к. не ясно было даже в какой части кода ошибка.
Пришлось полностью реализовать модель на Python с возможностью переключения режима расчета выставлением одной опции с double на float. Эту промежуточную модель отладили с первоначальной моделью в режиме double. Затем переключили на float и отлаживали реализацию на Си с промежуточной моделью.
Работы много, но другого способа подтверждать правильность реализации мы не придумали.
В итоге схема получилась вполне рабочая.

Теоретически можно было доработать Матлаб модель, чтоб она работала с floatами, но в Матлабе оказалось достаточно проблематично контролировать каждую операцию. На пинтоне это сделать можно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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