Баг воспроизводится раз в сотню запусков, а под отладчиком не… — Инструменты программиста — TG.ME

Баг воспроизводится раз в сотню запусков, а под отладчиком не воспроизводится вообще.

rr записывает выполнение программы под Linux целиком, а потом проигрывает эту запись сколько угодно раз — с точностью до инструкции. Тот самый неудачный запуск можно пересматривать, ставить точки останова задним числом и двигаться по времени назад.

🔘 rr record ./program записывает выполнение вместе со всем, что программа получила извне;
🔘 rr replay открывает запись в GDB, где работают привычные команды;
🔘 reverse-cont продолжает выполнение назад — от места падения к причине;
🔘 watch -l ставит аппаратную точку наблюдения за адресом, после чего можно откатиться к предыдущей записи в него;
🔘 повторный run проигрывает тот же след заново, сохраняя расставленные точки останова;
🔘 rr pack делает след самодостаточным, чтобы передать его коллеге;
🔘 записываются деревья процессов и потоки, а режим хаоса помогает выловить редкие варианты планирования.

Ограничения честные: только Linux и только на процессорах с подходящими счётчиками производительности. Обычные GDB и LLDB переносимее, но обратной отладки не дают.

10,6 тысячи звёзд. Язык: C++. Лицензия: MIT.

@prog_tools
👍1🙊1
August 23, 2026 1.2K 14