InfoGrab DocsInfoGrab Docs

Pry 디버깅

Ruby 개발 환경에서 Pry 디버거를 사용하여 GitLab 코드를 디버깅하는 방법을 설명합니다.

디버거 호출 # 디버거를 호출하려면, 코드 어딘가에 binding.pry 를 배치합니다. Ruby 인터프리터가 해당 코드에 도달하면 실행이 중단되고, 명령어를 입력하여 프로그램 상태를 디버깅할 수 있습니다. Puma나 Sidekiq과 같은 다른 프로세스에서 코드를 디버깅할 때는 binding.pry_shell 을 사용할 수 있습니다. 그런 다음 pry-shell 실행 파일을 사용하여 이 세션에 연결할 수 있습니다. pry-shell 사용 방법에 대한 자세한 내용은 이 동영상 을 참고하세요. binding.pry 는 때때로 자동 로딩 문제가 발생하여 이름 확인 중에 실패할 수 있습니다. 필요한 경우, 더 제한된 기능 세트를 가진 binding.irb 를 대신 사용할 수 있습니다. byebug vs binding.irb vs binding.pry # byebug 는 gdb 와 매우 유사한 인터페이스를 가지고 있지만, byebug 는 강력한 Pry REPL을 사용하지 않습니다. binding.pry 는 Pry를 사용하지만, byebug 의 일부 기능이 부족합니다. GitLab은 pry-byebug gem을 사용합니다. 이 gem은 byebug 의 일부 기능을 binding.pry 에 추가하므로, 이를 사용하면 가장 강력한 디버깅 기능을 활용할 수 있습니다. byebug # 전체 명령어 목록은 문서 를 참고하세요. pry 명령어로 Pry REPL을 시작할 수 있습니다. binding.irb # Ruby 2.7부터 IRB에 간단한 대화형 디버거가 내장되어 있습니다. 자세한 내용은 문서 를 참고하세요. pry # pry 에는 매우 많은 기능이 있어 이 문서에서 모두 다루기 어려우므로, 전체 문서는 Pry wiki 를 참고하세요. 아래는 꼭 확인해볼 만한 몇 가지 기능이며, pry 세션에서 help 를 실행하여 그 외에 할 수 있는 것들도 확인하세요. 상태 탐색 # 상태 탐색 을 사용하면 코드를 탐색하며 메서드 등을 발견할 수 있습니다: # 컨텍스트 변경 [1] pry(main)> cd Pry [2] pry(Pry):1> # 메서드 출력 [2] pry(Pry):1> ls -m # 메서드 찾기 [3] pry(Pry):1> find-method to_yaml 소스 코드 탐색 # pry 세션에서 소스 코드를 볼 수 있습니다 : [1] pry(main)> $ Array#first # 위는 아래와 동일합니다 [2] pry(main)> cd Array [3] pry(Array):1> show-source first $ 는 show-source 의 별칭입니다. 문서 탐색 # 소스 코드 탐색과 유사하게, 문서 탐색 도 있습니다. [1] pry(main)> show-doc Array#first ? 는 show-doc 의 별칭입니다. 명령어 히스토리 # Control + R을 사용하여 명령어 히스토리 를 검색할 수 있습니다. 스텝 실행 # 코드를 단계별로 실행하려면 다음 명령어를 사용할 수 있습니다: break : 브레이크포인트를 관리합니다. step : 다음 줄 또