Jun. 14th, 2021

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

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

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

Давно так не был доволен.

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 12:25 am
Powered by Dreamwidth Studios