위키득계정 ↗
기술

rr 디버거

rr 디버거기술
주요 환경
Linux
핵심 방식
실행 기록과 결정적 재생
디버거 연계
GDB
조사 기능
정방향과 역방향 실행
rr은 Linux 프로그램의 실행을 기록한 뒤 같은 실행을 반복 재생하며 디버깅하는 도구다. GDB와 연결해 기록된 실행을 조사하고 역방향으로 이동해 오류를 일으킨 이전 상태를 찾을 수 있다.

실패한 실행을 다시 조사하기

프로그램에서 실패가 발생한 실행을 한 번 기록하고 그 기록을 여러 번 재생한다. 매번 새롭게 발생하는 실행을 추적하는 대신 같은 사건을 재현해 조사한다. 재생에서는 주소 공간과 레지스터 및 시스템 호출 자료 등이 같은 실행 상태로 유지된다.

중단점과 역방향 탐색

GDB의 중단점과 자료 감시점을 활용해 기록을 조사한다. 실행을 거꾸로 진행하면서 감시 조건에 도달한 이전 지점을 찾을 수 있다. 잘못된 값이 확인된 위치에서 그 값이 바뀐 과거의 동작으로 이동하는 식의 분석이 가능하다.

여러 프로세스와 기록의 활용

여러 프로세스로 이루어진 작업과 컨테이너 전체의 실행도 기록 및 재생 대상으로 다룰 수 있다. GDB의 스크립트와 개발 도구 연계를 활용하며 기록을 다른 장비로 옮겨 조사하는 기능도 제공한다. 중심은 현재 실행을 복원하는 운영 기능보다 기록된 사건의 반복적인 디버깅이다.

관련 문서

GDB / LLDB / CRIU / strace / 디버깅 / 리눅스