- Pry 디버깅 호출
 byebugvsbinding.pryvsbinding.irbbyebugpry- 
binding.irb - 단계별 실행
 - 호출 스택 탐색
 - 짧은 명령어
 - 최근 명령어 반복
 
Pry 디버깅
Pry 디버깅 호출
디버거를 호출하려면 코드 어딘가에 binding.pry를 넣으십시오. Ruby 해석기가 해당 코드에 도달하면 실행이 중지되고 프로그램 상태를 디버그하기 위해 명령을 입력할 수 있습니다.
Puma나 Sidekiq과 같은 다른 프로세스에서 코드를 디버깅할 때는 binding.pry_shell을 사용할 수 있습니다. 그런 다음 pry-shell 실행 파일을 사용하여 이 세션에 연결할 수 있습니다. pry-shell 사용 방법에 대한 자세한 내용은 이 비디오를 참조하세요.
binding.pry는 때때로 autoload 문제를 겪고 이름 해석 중에 실패할 수 있습니다. 필요한 경우 더 제한적인 기능 세트와 함께 binding.irb를 대신 사용할 수 있습니다.
byebug vs binding.pry vs binding.irb
byebug는 gdb와 매우 유사한 인터페이스를 가지고 있지만, 강력한 Pry REPL을 사용하지 않습니다.
binding.pry는 Pry를 사용하지만 byebug의 일부 기능이 없습니다. GitLab은 pry-byebug 젬을 사용합니다. 이 젬은 binding.pry에 byebug의 일부 기능을 제공하여 가장 강력한 디버깅 기능을 제공합니다.
byebug
전체 명령어 디렉터리은 문서를 확인하세요.
pry 명령을 사용하여 Pry REPL을 시작할 수 있습니다.
pry
이 문서에서 다루기에는 너무 많은 기능이 a lot 있습니다. 전체 설명서는 Pry 위키를 참조하세요.
아래는 확실히 확인해볼 가치가 있는 몇 가지 기능입니다. 또한 pry 세션에서 help를 실행하여 무엇을 더 할 수 있는지 확인할 수 있습니다.
binding.irb
Ruby 2.7부터 IRB에 간단한 대화형 디버거가 함께 제공됩니다.
자세한 내용은 문서를 참조하세요.
상태 탐색
상태 탐색을 사용하여 코드 내에서 이동하여 메서드 등을 찾을 수 있습니다:
# 컨텍스트 변경
[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: 다음 행이나 메서드로 실행 단계 진행. 여러 번 실행하려면 선택적 숫자 인수 사용 - 
next: 같은 프레임 내의 다음 행으로 건너뛰기. 여러 행으로 건너뛰려면 선택적 숫자 인수 사용 - 
finish: 현재 스택 프레임이 반환될 때까지 실행 - 
continue: 프로그램 실행 계속 및 Pry 세션 종료 
호출 스택 탐색
다음 명령을 사용하여 호출 스택을 이동할 수 있습니다:
- 
backtrace: 현재 스택 표시. 왼쪽에 있는 번호를 사용하여 frame 명령으로 스택 이동 가능 - 
up: 스택 프레임 이동. 여러 프레임을 이동하려면 선택적 숫자 인수 사용 - 
down: 스택 프레임 다운 이동. 여러 프레임을 이동하려면 선택적 숫자 인수 사용 - 
frame <n>: 특정 프레임으로 이동. 인수 없이 호출하면 현재 프레임이 표시됩니다. 
짧은 명령어
byebug 대신 binding.pry를 사용할 때 s, n, f, c와 같은 짧은 명령어는 작동하지 않습니다. 이를 재설치하려면 ~/.pryrc에 다음을 추가하세요:
if defined?(PryByebug)
  Pry.commands.alias_command 's', 'step'
  Pry.commands.alias_command 'n', 'next'
  Pry.commands.alias_command 'f', 'finish'
  Pry.commands.alias_command 'c', 'continue'
end
최근 명령어 반복
최근 명령어를 반복하려면 ~/.pryrc에 다음 스니펫을 넣으면 마지막 명령어를 반복할 수 있습니다.
Pry::Commands.command /^$/, "repeat last command" do
  _pry_.run_command Pry.history.to_a.last
end
byebug는 기본적으로 이를 지원합니다.
도움말