디버거
디버거 (phpdbg)
phpdbg는 PHP에 내장된 대화형 디버거(interactive debugger)예요. SAPI 모듈로 구현되어 있어서, 코드의 기능이나 성능에 영향을 주지 않으면서 실행 환경을 완전히 제어할 수 있습니다. 이 페이지에서는 phpdbg의 개요와 기능을 살펴봐요.
본문
phpdbg는 SAPI 모듈로 구현되어 있어요. 그 덕분에 코드의 기능이나 성능에 영향을 주지 않으면서 실행 환경을 완전히 제어할 수 있습니다.
phpdbg는 PHP를 위한 가볍고(lightweight) 강력하면서도 쓰기 쉬운 디버깅 플랫폼을 목표로 해요. 제공하는 기능은 다음과 같습니다.
- 단계별 디버깅(Step-Through Debugging) — 코드를 한 줄씩 실행하며 따라갈 수 있어요
- 유연한 중단점(Flexible Breakpoints) — 클래스 메서드, 함수,
파일:라인, 주소(address), opcode 단위로 중단점을 걸 수 있어요 - 내장
eval()로 PHP에 쉽게 접근 — 실행 중간에 PHP 코드를 평가해볼 수 있어요 - 사용자 영역 API(Userland API) — PHP 코드에서 디버거 기능을 제어할 수 있어요
- SAPI 무관(SAPI Agnostic) — 어떤 SAPI에서도 쉽게 통합됩니다
- PHP 설정 파일 지원(PHP Configuration File Support) — php.ini 같은 설정을 반영해요
- JIT 수퍼글로벌(Super Globals) — 직접 설정 가능 — 나만의 수퍼글로벌을 정의할 수 있어요
- 선택적 readline 지원 — 편안한 터미널 조작
- 쉬운 조작 —
help를 보면 바로 어느 정도 감을 잡을 수 있어요
phpdbg가 제공하는 함수는 다음과 같아요.
phpdbg_break_file— 특정 파일의 특정 라인에 중단점 추가phpdbg_break_function— 함수 진입 시 중단점 추가phpdbg_break_method— 메서드 진입 시 중단점 추가phpdbg_break_next— 다음 opcode에서 중단phpdbg_clear— 중단점을 모두 지움phpdbg_color— 출력에 색을 지정phpdbg_end_oplog— opcode 로그 기록 종료phpdbg_exec— 디버거에서 코드 실행phpdbg_get_executable— 현재 실행 중인 파일명 조회phpdbg_prompt— 대화형 프롬프트 설정phpdbg_start_oplog— opcode 로그 기록 시작