Pry 디버깅
Ruby 개발 환경에서 Pry 디버거를 사용하여 GitLab 코드를 디버깅하는 방법을 설명합니다.
pry 디버깅 호출 # 디버거를 호출하려면 코드의 원하는 위치에 binding.pry 를 넣습니다. Ruby 인터프리터가 해당 코드에 도달하면 실행이 멈추고, 명령을 입력해 프로그램 상태를 디버깅할 수 있습니다. Puma 나 Sidekiq처럼 다른 프로세스에서 실행되는 코드를 디버깅할 때는 binding.pry_shell 을 사용할 수 있습니다. 그런 다음 pry-shell 실행 파일로 이 세션에 연결합니다. pry-shell 사용 방법에 관한 자세한 내용은 이 영상 에서 확인할 수 있습니다. Warning binding.pry 는 간혹 오토로딩 문제로 이름 확인에 실패하기도 합니다. 필요하다면 기능 범위가 더 제한적인 binding.irb 를 대신 사용할 수 있습니다. byebug 와 binding.irb , binding.pry 의 차이 # byebug 는 gdb 와 매우 비슷한 인터페이스를 제공하지만, 강력한 기능을 갖춘 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 를 실행하면 그 밖에 어떤 작업을 할 수 있는지 확인할 수 있습니다. 상태 탐색 # 상태 탐색 기능으로 코드를 이동하면서 메서드 등을 확인할 수 있습니다. # Change context [ 1 ] pry(main)> cd Pry [ 2 ] pry( Pry ) : 1 > # Print methods [ 2 ] pry( Pry ) : 1 > ls -m # Find a method [ 3 ] pry( Pry ) : 1 > find-method to_yaml 소스 코드 탐색 # pry 세션에서 소스 코드를 확인 할 수 있습니다. [ 1 ] pry(main)> $ Array #first # The above is equivalent to [ 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 로 명령 히스토리 를 검색할 수 있습니다. 스텝 실