rr-debugger/rr
프로그램 실행을 기록하고 결정적으로 재생해 gdb에 역방향 실행 기능을 더하는 경량 Linux 도구입니다.
- 스타
- 10,737
- 포크
- 666
- 열린 이슈
- 477
- 마지막 커밋
- 6일 전
어떤 프로젝트인가요?
rr은 여러 프로세스와 스레드로 이루어진 애플리케이션의 실행을 기록하고, gdb에서 해당 기록을 반복해서 재생할 수 있게 합니다. 재생할 때마다 같은 실행이 재현되므로 과거로 거슬러 가며 단계별로 실행하고, 이전 이벤트에 중단점을 설정하고, 과거 실행의 어느 시점에서든 상태를 살펴볼 수 있습니다. 덕분에 재현하기 어려운 비결정적 버그도 실질적으로 추적할 수 있습니다.
gdb를 대체하는 대신 디버깅 경험을 확장합니다. 하드웨어 데이터 감시점 같은 gdb의 표준 기능은 재생 중에도 사용할 수 있으며, 여기에 역방향 실행 명령이 추가됩니다. 프로젝트는 C++로 작성되었으며 Linux를 대상으로 합니다.
rr을 사용하려면 특정 하드웨어 및 커널 지원이 필요합니다. Linux 커널 4.7 이상과 특정 Intel, AMD Zen 또는 AArch64 CPU가 필요하며, 하드웨어 성능 카운터를 가상화하는 VM 게스트에서도 실행할 수 있습니다.
핵심 기능
- 01나중에 재생할 수 있도록 멀티프로세스·멀티스레드 애플리케이션의 실행을 기록합니다.
- 02gdb에서 역방향 실행 명령을 지원합니다.
- 03재생 중에도 gdb의 하드웨어 데이터 감시점을 사용할 수 있습니다.
- 04기록을 결정적으로 재생하므로 실패한 실행을 반복해서 살펴볼 수 있습니다.
- 05지원되는 Intel, AMD Zen 및 AArch64 CPU에서 Linux로 실행됩니다.
활용 사례
- 요청할 때마다 재현되지 않는 간헐적 충돌이나 경쟁 상태를 디버깅합니다.
- 실패 지점에서 거슬러 올라가 잘못된 값을 만든 명령을 찾습니다.
- 규모가 큰 멀티프로세스 또는 멀티스레드 Linux 프로그램의 버그를 조사합니다.
빠른 시작
- 1
프로젝트 wiki에서 설치 및 빌드 안내를 확인하세요
- 2
시스템이 요구 사항을 충족하는지 확인하세요(Linux kernel 4.7 이상, 지원되는 Intel, AMD Zen 또는 AArch64 CPU)
사용 전 알아둘 점
- Linux만 지원하며, 지원되는 CPU 또는 하드웨어 성능 카운터를 노출하는 VM이 필요합니다.
- 라이선스가 NOASSERTION으로 표시되어 있으므로 사용 전에 저장소의 라이선스 조건을 확인하세요.
토픽
자주 묻는 질문
- rr은(는) 무엇인가요?
- 프로그램 실행을 기록하고 결정적으로 재생해 gdb에 역방향 실행 기능을 더하는 경량 Linux 도구입니다. rr은 여러 프로세스와 스레드로 이루어진 애플리케이션의 실행을 기록하고, gdb에서 해당 기록을 반복해서 재생할 수 있게 합니다. 재생할 때마다 같은 실행이 재현되므로 과거로 거슬러 가며 단계별로 실행하고, 이전 이벤트에 중단점을 설정하고, 과거 실행의 어느 시점에서든 상태를 살펴볼 수 있습니다. 덕분에 재현하기 어려운 비결정적 버그도 실질적으로 추적할 수 있습니다.
- rr은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- rr은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- rr은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. rr의 마지막 커밋은 2026년 11월 2일입니다.
- rr은(는) 어디에 사용할 수 있나요?
- 요청할 때마다 재현되지 않는 간헐적 충돌이나 경쟁 상태를 디버깅합니다. 실패 지점에서 거슬러 올라가 잘못된 값을 만든 명령을 찾습니다. 규모가 큰 멀티프로세스 또는 멀티스레드 Linux 프로그램의 버그를 조사합니다.
- rr는 어떻게 설치하나요?
- 프로젝트 wiki에서 설치 및 빌드 안내를 확인하세요 시스템이 요구 사항을 충족하는지 확인하세요(Linux kernel 4.7 이상, 지원되는 Intel, AMD Zen 또는 AArch64 CPU)
- rr은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/rr-debugger/rr
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
x86, ARM, MIPS, PowerPC, SPARC용으로 익스플로잇 개발에 특화된 인터페이스를 GDB에 추가하는 Python 확장입니다.
현재 알파 단계인 Windows 및 Linux 로컬 x64 디버깅용 네이티브 사용자 모드 멀티 프로세스 그래픽 디버거입니다.
Go 프로그래밍 언어용 디버거로, 방해가 되지 않으면서 간편하게 실행하고 사용할 수 있도록 설계되었습니다.
시스템 리소스 모니터링, 프로세스 검사, 소프트웨어 디버깅, 악성코드 탐지를 위한 무료 Windows 도구로, Process Hacker의 후속 프로젝트입니다.
소스 코드 없이 .NET 및 Unity 어셈블리를 디버깅하고 편집할 수 있는 dnSpy의 비공식 후속 프로젝트입니다.