php 고급

Xdebug 오류 추적

오류 추적

xdebug는 오류가 발생했을 때 오류가 어떤 맥락에서 발생한 것인지를 추적해서 보여준다. 아래의 예제는 존재하지 않는 변수를 호출했을 때 이 오류가 어떤 맥락에서 발생했는가를 보여준다. 

<?php
ini_set('xdebug.collect_params', '4');
ini_set('xdebug.dump.GET', '*');
ini_set('xdebug.dump.SERVER', 'REQUEST_URI');
ini_set('xdebug.show_local_vars', 'on');

function a($_a){
        echo $d;
        return $_a;     
}
function b($_b){
        return a($_b);
}
function c($_c){
        return b($_c);
}
print_r(c(array('param'=>'test')));
?>

위의 코드는 아래의 결과를 출력한다.


 

설정 값들은 아래와 같은 의미를 갖는다. 자세한 내용은 다음 링크를 참조한다.

http://xdebug.org/docs/all_settings

  • xdebug.collect_params : 함수로 전달된 인자를 얼마나 디테일하게 표현할 것인지를 지정한다. 1부터 4까지 값을 지정할 수 있고 값이 높을수록 더 자세한 정보를 제공한다. 
  • xdebug.dump.GET : GET 방식으로 전달된 값을 출력한다.
  • xdebug.show_local_vars : 지역변수의 리스트를 출력한다.

댓글

댓글 본문
  1. 30늦은나이아니라고해줘
    자답 감사합니다 참고하도록 하겠읍니다
    대화보기
    • 초보개발자
      자답입니다
      ini_set('display_errors', 'On');를 추가하니까 테이블이 보이네용
      php.ini 파일 환경 설정이 문제인듯 합니다
      대화보기
      • 초보개발자
        egoing 님 강의 잘보고 있습니다
        제가 이 강의 예제를 만들어서 해보았는데 notice 테이블이 아예 안나오더라구요
        어떤 부분을 잘못했는지 모르겠는데 도움을 좀 주실 수 있으실까요?
        (현재 xdebug 기본 기능 예제까지는 잘 실행된 상태입니다. xdebug 버전이 2.5.0인 부분이 좀 걸리긴하네용)
      • 쌈닭
        :D
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기