Redis 프로세스 디버깅

Redis 프로세스 디버깅 (Debugging Redis)

Redis는 안정성을 중시하며 크래시 시 상세한 보고서를 생성합니다. 그러나 크래시 리포트만으로 원인을 재현하기 어려울 때가 있고, 이때는 문제를 재현할 수 있는 사용자의 도움이 필요합니다. 이 가이드는 Redis 개발자가 버그를 추적하기 쉽도록 GDB로 필요한 정보를 확보하는 방법을 안내합니다.

출처: 공식문서

GDB란?

GDB는 GNU Debugger로, 다른 프로그램의 내부 상태를 검사할 수 있는 도구입니다. 두 가지 방식으로 사용됩니다.

  • 실행 중인 프로그램에 attach해서 런타임 상태를 조사.
  • 종료된 프로그램의 core file(프로그램 실행 당시 메모리 이미지)을 조사.

Redis 버그 조사에서는 두 방식을 모두 사용합니다. 버그를 재현하는 사용자가 실행 중인 Redis에 GDB를 attach하고, 크래시가 발생하면 core file을 만들어 개발자에게 전달합니다. 개발자는 사용자의 도움 없이 자사 컴퓨터에서 크래시 시점의 Redis 내부를 검사하고, 사용자는 프로덕션에서 Redis를 즉시 재시작할 수 있습니다.

디버깅 가능하게 컴파일하기

디버깅 정보를 포함하려면 최적화 없이 컴파일하는 것이 도움이 될 수 있습니다. 크래시 로그·심볼과 --enable-debug 류 빌드 옵션 등 세부 절차는 공식 문서의 해당 섹션을 참고하세요.

더 알아보기 (Learn more)