2009-08-10 7 views
2

파이썬에서는 trace 모듈을 사용하여 명령 행 스크립트에 의해 실행되는 모든 명령문을 추적 할 수 있습니다. bash에서는 set -x을 사용하여 동일한 작업을 수행 할 수 있습니다. 일반적인 bash/python/perl/etc 스크립트와 같이 커맨드 라인에서 실행중인 PHP 스크립트가 있습니다. 웹 y는 진행되고 있지 않습니다.PHP - PHP 명령 줄 스크립트에서 실행되는 모든 명령문을 인쇄 하시겠습니까?

실행중인 모든 코드 줄을 추적하는 방법이 있습니까?

답변

1

순수한 PHP에는 없습니다. 아는 한 없습니다.

하지만 디버거를 사용할 수 있습니다. 그렇게 할 수있는 좋은 방법은

같은 debugger

  • 및 디버깅 툴을 통합하여 일부 그래픽 IDE로 사용할 수있는 확장 Xdebug,이다 무료, btw. 그와

    , 당신은 단계별로 할 수있는 설정, 중단 점, 변수의 내용을보고,보기 스택 추적, ... 그리고 그것은 모두 웹 및 CLI 스크립트 ;-) 물론

    작동, 그것은 당신이 당신의 스크립트를 실행하고있는 머신에서 Eclipse를 실행하는 것을 의미합니다 ... 그러나 개발 머신에서 실행하고 있다면 GUI와 모든 것을 가지고 있기 때문에 괜찮을 것입니다 ...
    웹 응용 프로그램의 경우 PHP 웹 서버가 아닌 다른 시스템에서 Eclipse를 실행할 수 있습니다 (CLI에서 가능할 지 모르겠다).


    사이드 노드로 : 아마도 Xdebug를 CLI 기반 디버거와 통합 할 수 있습니다. 이전에 링크 된 페이지에서 지원되는 도구 목록을 참조하십시오.

  • +0

    xdebug를 사용하는 가장 좋은 방법 중 하나가 뱉어 낸 추적 파일을 분석하는 것이 었습니다. diff를 실행하여 perl 등으로 구문 분석 할 수 있습니다. 비슷한 두 가지 유스 케이스가 있고 하나는 작동하고 다른 하나는 그렇지 않은 경우 diff는 어디에서 분기하기 시작하는지 보여주는 데 유용 할 수 있습니다. 필자는'vimdiff' (유비쿼터스'vim' 편집기의 운영 모드가 내장되어 있음)가이 점에서 상당히 뛰어나다는 것을 알았습니다. 모듈화 된 Drupal 설치와 같이 대용량 파일을 다루지 않아도됩니다. – intuited

    +0

    또한 순수 CLI 모드에서 xdebug를 사용할 수도 있습니다. 명령 줄에서 호출 된 PHP 코드에서 추적을 수행하도록 구성 할 수 있으며 실제로는 vim을 디버거로 사용할 수 있습니다. vim은 저주에서 실행되기 때문에 그것은 순수한 cli가 아닌 것 같습니다. 어쨌든 vim을 PHP 디버거로 사용하는 방법에 대한 정보는 http://tech.blog.box.net/2007/06/20/how-to-debug-php-with-vim-and-xdebug-on-linux에서 확인할 수 있습니다./# comment-39681 – intuited

    +0

    오류가 발생하여 cli로 원격 디버깅을하는 것에 대해 알게되었습니다. 나는 이것을 시도하지 않았지만, 원격으로 디버깅하는 것이 가능할 것이라고 생각하지만 실제로 명령을 실행하기 위해서는 ssh를해야한다. – intuited

    -1

    나는 여기 다소 장님이다. 그러나 당신이 할 수있는 한 가지 방법은 사용자 정의 함수 내에 모든 관련 코드를 작성하고 debug_backtrace()으로 전화하는 것입니다. debug_print_backtrace도 유용 할 수 있습니다.

    도움이되기를 바랍니다.

    +0

    예, 그 중 하나의 옵션이지만, 나는 더 많은 인쇄물 상태보다 더 높은 수준을 찾고있었습니다. – Rory

    2

    추적 파일을 생성하는 PECL 확장자 apd이 있습니다.

    관련 문제