에러를 제대로 잡아보자 xdebug > 서버관리자

서버관리자

서버관리자 모임 게시판 입니다.

에러를 제대로 잡아보자 xdebug 정보

에러를 제대로 잡아보자 xdebug

본문

대부분의 에러는 error.log  에 찍힙니다만 

어디서 어떤 데이터를 가져갔고 어떻게 처리 되다가 exception 이 떨어졌는지를 확인하기 위해

echo 라던지 var_dump 라던지 print_r 을 찍는 방법을 아직도 사용하시는 분들께 추천합니다.

컴파일 언어를 자주 사용하다보면 느끼는 부분이죠

'인터프리터 언어는 break point 를 걸 수 없나?' 

모든 의문의 시작인 거기서 나온 결과입니다.

php 도 break point 를 걸 수 있고 디버깅이 가능하다는것이죠.

우선 xdebug 가 있습니다. 

http://xdebug.org/ 

뭐 zend 용도 있고 기타 등등도 많지만.. 저 같은 경우에는 상용망과 테스트망을 분리해두어서

테스트망에만 위의 xdebug 를 설치하고 로컬에서 넷빈즈 또는 이클립스 등의 IDE  로 검증을 합니다.

unit test 와 더불어 개발자가 자신이 짠 코드를 검증하기 위해 에러를 강제적으로 발생시켰을 때

어디서 어떠한 일을 수행하고 죽었는지를 조금 더 편하고 명확하게 확인할 수 있지요.

아래 phpunit 이 보이길래 첨언 해봅니다.

공감
1
  • 복사

댓글 5개

과거에 메뉴얼을 보고서
어떻게 사용하는건지 맨붕이 와서 접었었거든요.

사용법이 제대로 나온 페이지가 어디에 있는지 부탁 드려도 될까요?
설치야 많이 나와있으니 다음으로 넘기고
저 같은 경우에는 넷빈즈에 반영해서 사용하는데 아래의 사이트를 많이 참조했어요.
로컬이 아닌 별도의 서버에서 테스트용도로 사용할려고 보니 터널링으로 해당 포트를 열어줘야 하더라구요.

http://www.davidlaing.com/2012/07/29/howto-configure-netbeans-php-debugging-for-a-remote-server-over-a-ssh-tunnel/

위의 링크를 참조하여 터널링 열어주시면 되구요.
넷빈즈 환경설정 -> php -> debugging 부분에
debugger port 를 설정해주시고
session ID 를 설정 해주세요. (netbeans-xdebug )

그 후 postman 을 이용해서 아래와 같이
http://테스트망주소?XDEBUG_SESSION_START=netbeans-xdebug
로 요청하시면 되며 넷빈즈에서는 debugger 를 on 하시면 잡을 수 있습니다.
이미지 없이 글로만 설명하자니 조금 빈약한데 혹 부족하시면 추후 정리해서 올려드릴께요.
© SIRSOFT
현재 페이지 제일 처음으로