Repolode
rr-debugger

rr-debugger/rr

Лёгкий инструмент для Linux, который записывает выполнение программы и детерминированно воспроизводит его, добавляя обратное выполнение в gdb.

Звёзды
10,734
Форки
666
Открытые issues
477
Последний коммит
5 дней назад

Что это?

rr записывает выполнение приложений, в том числе деревьев процессов и потоков, а затем позволяет многократно воспроизводить запись в gdb. Поскольку при воспроизведении повторяется то же выполнение, можно двигаться назад, ставить точки останова на более ранних событиях и проверять состояние в любой момент прошедшего запуска. Это позволяет на практике находить недетерминированные ошибки, которые сложно воспроизвести.

rr дополняет gdb, а не заменяет его. Во время воспроизведения остаются доступны стандартные возможности gdb, например аппаратные точки наблюдения за данными, а поверх них добавляются команды обратного выполнения. Проект написан на C++ и предназначен для Linux.

rr требует поддержки определённого оборудования и ядра. Нужна версия ядра Linux 4.7 или новее и процессор Intel, AMD Zen или AArch64 определённых моделей. Также rr может работать в гостевых VM, где виртуализированы аппаратные счётчики производительности.

Ключевые возможности

  • 01Записывает выполнение многопроцессных и многопоточных приложений для последующего воспроизведения.
  • 02Поддерживает команды обратного выполнения в gdb.
  • 03Позволяет использовать аппаратные точки наблюдения за данными gdb во время воспроизведения.
  • 04Детерминированно воспроизводит записи, поэтому сбойный запуск можно исследовать многократно.
  • 05Работает в Linux на поддерживаемых процессорах Intel, AMD Zen и AArch64.

Сценарии использования

  • Поиск причин периодически возникающих сбоев или состояний гонки, которые не удаётся воспроизвести по требованию.
  • Движение назад от сбоя, чтобы найти инструкцию, из-за которой появилось неверное значение.
  • Исследование ошибок в крупных многопроцессных или многопоточных программах для Linux.

Быстрый старт

  1. 1

    Ознакомьтесь с инструкциями по установке и сборке в wiki проекта

  2. 2

    Убедитесь, что ваша система соответствует требованиям (Linux kernel 4.7 или новее, поддерживаемый процессор Intel, AMD Zen или AArch64)

Что важно знать

  • Поддерживается только Linux; требуется совместимый процессор или VM, предоставляющая доступ к аппаратным счётчикам производительности.
  • В качестве лицензии указано NOASSERTION, поэтому перед использованием ознакомьтесь с условиями лицензии в репозитории.

Темы

#debugger#gdb#linux#reverse-execution#record-replay#c-plus-plus

Частые вопросы

Что такое rr?
Лёгкий инструмент для Linux, который записывает выполнение программы и детерминированно воспроизводит его, добавляя обратное выполнение в gdb. rr записывает выполнение приложений, в том числе деревьев процессов и потоков, а затем позволяет многократно воспроизводить запись в gdb. Поскольку при воспроизведении повторяется то же выполнение, можно двигаться назад, ставить точки останова на более ранних событиях и проверять состояние в любой момент прошедшего запуска. Это позволяет на практике находить недетерминированные ошибки, которые сложно воспроизвести.
rr можно использовать бесплатно? Какая у него лицензия?
rr распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
rr всё ещё поддерживается?
Активно поддерживается. Последний коммит в rr — 2 нояб. 2026 г..
Для чего можно использовать rr?
Поиск причин периодически возникающих сбоев или состояний гонки, которые не удаётся воспроизвести по требованию. Движение назад от сбоя, чтобы найти инструкцию, из-за которой появилось неверное значение. Исследование ошибок в крупных многопроцессных или многопоточных программах для Linux.
Как установить rr?
Ознакомьтесь с инструкциями по установке и сборке в wiki проекта Убедитесь, что ваша система соответствует требованиям (Linux kernel 4.7 или новее, поддерживаемый процессор Intel, AMD Zen или AArch64)
Где скачать rr?
Исходный код и инструкции по установке — на GitHub: https://github.com/rr-debugger/rr

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Нативный графический отладчик пользовательского режима для локальной отладки нескольких процессов на x64 в Windows и Linux; проект пока в альфа-версии.

Инструменты разработчика#debugger#native-debugging#linker
8,8 тыс.+36 за неделю451CMITАктивно поддерживаетсяОбновлён позавчера

Бесплатная утилита для Windows: мониторинг ресурсов, анализ процессов, отладка ПО и поиск вредоносных программ; преемник Process Hacker.

16,4 тыс.+50 за неделю1,8 тыс.CMITАктивно поддерживаетсяОбновлён вчера