beldmit: (Программизм)
Dmitry Belyavskiy ([personal profile] beldmit) wrote2021-06-14 06:49 pm

Загонная охота: завершение

Пофиксил сегодня баг, о котором писал здесь.

Ошибка оказалась не в асемблере, как я думал, а в формировании байтиков. При пересчёте длины новая длина писалась немного не туда, но в большинстве случаев это прокатывало. В норме эта ошибка дала бы классический эффект записи вне выделенного буфера и привела бы к падению программы куда раньше, и valgrind бы об этом рассказал — но тут нужный буфер из соображений упаковки структуры был размером в 16 байт, а использовали первые 13. Запись в 14-й, соответственно, никого не смущала.

Отладка сожрала примерно полтора рабочих дня и оставило ощущение собственного идиотизма, которое перешло в ощущение собственной гениальности после того, как удалось найти кусок кода, в который вкралась опечатка — до того я вылизывал соседнюю функцию, пока не убедился, что она в порядке. Ну а дальше сработало всё по Конан-Дойлю — исключение всех невозможных мест указало на истинного виновника.

Давно так не был доволен.
juan_gandhi: (Default)

[personal profile] juan_gandhi 2021-06-14 06:14 pm (UTC)(link)

Да, сурово. По мне так явно тестовое покрытие недостаточно было.

gegmopo4: (Default)

[personal profile] gegmopo4 2021-06-14 08:15 pm (UTC)(link)
Поздравляю!
alexartukov: (Default)

[personal profile] alexartukov 2021-06-16 10:25 am (UTC)(link)
Непрерывного?! :)) Еда, сон, туалет?!! :))