PHP 디버깅 - xdebug 3 > PHP

무료강좌-디비라

PHP

PHP Web Programming 강의 리스트

※ 가장 하단이 첫강좌입니다

생활코딩 | PHP 디버깅 - xdebug 3

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
생활코딩님의 PHP강의 청각장애인을 위한 자막
15444116277772.jpg

 자 그럼 여러분이 f5 키를 눌러서

vi 에디터를 디버그 대기상태 5초 동안 9000 번 포트를 감시하는
대기상태로 만들었 꼭 있으면 이 있는 상태에서 이 그 웹 서비스의
사용자가 어떤 특별한
이 데이터와 함께 접속을 하게 되면
예 자동으로 이 vi 에디터 랑
연결이 되면서 디버깅이 시작되는 겁니다
예 그럼 해볼까요
자 그 다음에는 파이어 폭스의 xt 버그 헬퍼를 설치하면 됩니다
여긴 링크를 클릭해보시면 2 파이어폭스 플러그인 있거든요
그 플러그인을 여러분은 파이어폭스 에다가 설치하시면 저처럼 요렇게 생긴
화면이 뜰겁니다
요 하단에 보이시나요 자 요게 만약에 안보이시면 위쪽에 그
툴바 쪽에 다가 마우스 오른쪽 클릭을 해서
부가기능 옴 이라고 하는 항목을 체크 하시면 됩니다
그럼 밑에 이렇게 스테이터 스파 가 뜹니다 그럼 여기서
요 앞에 있는 벌레 모양으로 되어 있는 것은 이렇게 토 그리 되는데요
이것은 디버깅을
어 할 때 사용하는 거구요 뒤에 거는 프로파일링을 할 때 사용하는 겁니다
프로파일링 이라고 하는 것은 이 성능을 튜닝할 때 사용하는 건데요
지금 우리가 얘기하는 것은 디버그 니까 앞에 있는 벌레 아이콘의 집중
하시면 됩니다
자 그러면 자 웹 그라인드 라고 하는 요 프로그램을 우리가 디버깅 한다
라고 했을 때 어떻게 하면 되느냐 하면 제일 먼저 웹 그라인드 에 접속을
하시구요
그럼 밑에 보시면 벌레 있잖아요 뭐 클릭하면 밑에 빨간색으로 조그만
아이콘이 뜹니다 그럼 이제 디버깅할 수 있는 상태가 됐고 여러분이 191
높아 0점 8일 웹 그라인드 라고 하는 서비스로 접속을 할때 여기 있는
요거를 클릭 체크 했기 때문에 어떤 쿠키 라고 하는 데이터를 서버 쪽으로
전송을 해서 현재 다는 디버깅을 하겠다라는 의사표현을 하는 겁니다
서버에게
자 그리고 의 상태에서 다시 vi 에디터로 들어오고요
자 여기서 f6 키를 누르면 지금 이렇게 지저분 하게 된 화면이
깨끗해집니다
자 그리고 f5 키를 누르면 다시 5초간 웨이팅을 하는데 5005 아주
짧은 시간이기 때문에 여러분이 빠르게 파이어폭스를 이동을 해서 아까 열어
놓았던 페이지를 로드 해야 됩니다
자 빨리 한번 해 볼게요 자 f5 키를 넣었어요
그리고 파이어 폭스의 있는 요 페이지를 로드하면 자 보시는 것처럼
페이지가 열리지 않고 계속해서 대기 상태에 빠집니다
잘 돼 탄 뜻이고요 만약에 대기상태 안 빠지면 뭔가 문제가 생겨 딴 얘기
입니다
자 그리고 다시 제가 vi 에디터로 복귀해 보니까 보시는 것처럼 어플
sn tooltip 코맨드 2 컨티뉴 라고 나오죠
요건 뭐냐면 엔터키를 누르면 디버깅을 시작하게 된다 라는 뜻입니다
젠더를 딱 눌렀어요 자 그러면 빨간색 라임 나타내 이곳은 현재 이 빨간색
라인이 위치하고 있는 곳을 실행하고 있다라는 뜻입니다
그래서 한줄한줄 실행을 제어할 수가 있습니다
자 그럼 요 옆에 보시면 어 해 프가 있습니다
이 xt 버그를 사용하는 데 있어서 여러 가지 도움을 주는 이 헬프
인데요
자 저같은 경우는 화면이 짧기 때문에 헬프 게 다 나오지 않지만 여러분은
화면이 큰 화면에서 작업을 하실 것이기 때문에 아마 전부 다 나올 거에요
자 그러면 여기 있는 욕하면 을 여러분이 어 화면으로 이동을 하고 싶으면
자 컨트롤하고 w 키를 누른 다음에
l 키를 눌러 보시면 요 커서가 오른쪽으로 이동을 합니다
그럼 이상태에서 만약에 위로 올라가고 싶다면 k 를 누르고 요
아래로 가고 싶다면 j 키를 누르시면 됩니다
그리고 만약에 헬프 에 있는 다른 가려진 내용을 보고 싶다 그러면 컨트롤
하고 다시 w 누르고 아래 를 의미하는 제의를 입력하시면 됩니다
그리고 계속 j 랑 케잌이 를 왔다갔다 하시면 보시는 것처럼 숨겨진
부분을 볼 수가 있어요
자 그리고 다시 왼쪽 화면을 이동하고 싶으면
자 컨트롤 w 하고 j 키 제 익히는 왼쪽 을 의미합니다
h 키를 누르면 보시는 것처럼 커서가 이동을 했죠
자 그럼 이제 디버깅을 하기 위해서 제가 이동을 할 건데요 뭐
4
가장 기본적인 명령은 f 삼킵니다 부 3을 누르면 스텝오버 라고 해서
한줄한줄 실행이 되는 거예요
4 f3 을 넣어 볼게요 자 그럼 보시는 것처럼 이렇게 한 줄이 실행이
됐고 그 다음에 또 한 줄이 실행이 되었습니다
작은 여러분 여기서 주목해야 될 것은 자 여기 있는 리카 이어 라고 하는
것은 파일을 인클루드 에서 그 파일을 실행을 하는 게 가져온 게리 카
이어 줘 그럼 에리카 이어 를 통해서 가져온 요 컴 피그 점 php 라고
하는 저 파일의
안에 있는 로직이 있을 건데 그것을 지금 건너 뛰게 된 겁니다
만약 여러분이 저 안에 있는 로직을 실행해 보고 싶다고 한다면 f3 을
누르시면 되구요
f2 키를 눌러서 스텝 인트를 해야 됩니다 그렇게 되면 저 파일이나 아님
어떤 함수의 로직으로 다이브 하는 효과가 나게 되요
자 여기서 f3 이 아니라 f2 키를 누르면 어떻게 되는지 보시죠
자 그 전에 요 밑에 있는 부분에 보시면 현재 인덱스 점 php 파일 을
디버깅 하고 있다 라는 메세지가 나오는 겁니다
그리고 옆에 보시면 어 스택 윈도우 라고 하는건데요 스택 이라고 한 접시
라는 뜻인데요
2 프로그래밍을 하다보면 그 평면적으로 작업하는 게 아니라 그 안에서
어떤 함수로 출하 줘 그럼 그 함수 안에는 또 다른 로직 뜰이 있고 그
로지가 낸 또 다른 함수가 있어서 또다른 로직을 가져올 수도 있죠 바로
그런 것들이 스택 이라고 합니다
함수가 중첩되어 사용되면 그게 마치 접시에 쌓인 것과 같은 효과를 낸다
는 뜻이죠
현대 여러분은 인덱스 점 php 를 수정하고 있다는 얘기에요
자 이 상태에서 제가 f2 키를 누르면 여긴 클로드 1 파일 핸들 어쩜
php 파일로 들어가게 됩니다
3 들어가볼게요
자 들어갔어요 그런 걸 어떻게 알 수 있냐면 요 밑에 보시면 현재 파일
핸들러 점 php 파일을
어 디버깅 하고 있다라고 이렇게 나오죠 그리고 스택 a 에서
인덱스 점 php 파일을 여러분이 디버깅 하고 있는데
잉 클로드 를 통해서 파일 핸들 어쩜 php 로 들어가 따라 는 뜻입니다
그렇다고 해서 인덱스 점 php 파일에 대한 디버깅이 종료된 것은 아니기
때문에 이렇게 스텔 이렇게 표시가 되고 응 거에요
그 이걸 통해서 현재 여러분이 어디에 있고 어디를 통해서 이곳으로 왔는지
알 수가 있게 되는 거죠 그래서 여기서 다시 한줄 안주 실행할 수도 있고
여기 프리프 패스 점 php 란 파일을 쓰 수정하고 싶다면
디버깅 하고 싶다면 다시 f2 키를 누르면 되는 거죠 그래서 f3 을
누르면 여기서 한줄 17 행이 되는 겁니다 자 그런데 여러분이 이렇게
한줄한줄 실행 하다가 어 현재 그 이 안으로 들어와 있는 현 그 다이브
해 있는 그 오직 에는
뭐 돌리게 없어요 근데 그 로직은 아직도 많이 남아 있는 경우에는 다해
부산 키를 끝까지 눌러야 되거든요
그런 경우에 현재의 뎁스 에서 빠져나와서 그 사이에 데쓰 즉 여기서
얘기하는 것은 파일 핸들 어쩜 php 를 디버깅 하고 있다가 그 상위에
텝스 인덱스 점 php 로 빠져나오고 싶다면 f4 키를 누르시면 됩니다
f4 그럼 바깥쪽으로 빠져나온 거예요
아시겠죠 그리고 다시 f3 키를 이렇게 누르다가
그럼 이제 계속해서 한줄 한줄 일기 실행이 되죠 그리고
쭉 가다가
여기 예를 들면 요 이프 문에서 여러분이 f3 을 눌렀는데 그 다음으로
넘어가지 않고 이 안으로 들어오면 이 부문이 참이 됐기 때문에 실행이
됐든 뜻이고요
그 다음으로 확 쑥 1패 버리면 이프 문 뒤에 있는 부분이 거짓이 기
때문에 스킵을 한 겁니다 자 이렇게 해서 여기까지 왔죠
그럼 현재 이 웰컴 이라고 하는 변수에 셀렉트 업체인지 그라인드 라고
하는 요 문자가
활 땅 그 주어지게 되는 대기 상태에 빠져 있는 상태인데요
여기서 f3 키를 또 누르면 웰컴 이라고 하는 젖 ho 변수에
어 셀렉트 업체인지 그라인드 라고 하는 접은 짜리
예 들어간 거죠 예 할당된 거죠 그럼 이상태에서 만약 여러분의 웰컴
이라고 한 저편 수에 어떤 값이 현재 있는지를 보고 싶다면 적이다 커서를
올려 놓고요
자 이거 설 움직이는 검 제가 간단하게 설명 들어 초
자제가 위로 올라가고 싶은 j 라고 했죠 아니 k 라고 했죠
이 상태에서 f2 키를 누르면 저에게 오른쪽에 뉴 화면에
웰컴 이라고 하는 변수에는 셀렉터 체인지 그라인드 파일 어법을 라고 하는
문자가 할당 되어 있다는 걸 볼 수가 있습니다
그래서 명령을 실행하는 과정에서 변수들 변수에 다 변수의 어떤 값들이
발단 될 텐데 어 어떤 값이 현재 할당 되어 있는지를 실시간으로 볼 수
있다는 거죠
디버깅이 아주 큰 도움이 되는 명령입니다
자 이렇게 해서 디버깅을 하다가 음
어 볼 일을 다 끝냈어요 그런 경우 끝까지 다 갈 필요가 없죠
그런 경우에는 이 디버그를 종료 시키면 되는데요
여기 보시면 그 f6 키 는
예 큐트 디버깅이 라고 되어 있죠 그래서 애플 키를 눌러서 크래프트
디버깅을 실행시켜 볼게요 자 그러면 보시는 것처럼 디버깅이 끝났죠
여긴 이 화면에서 벗어나고 싶으면 자 시프트 키를 누르고 콜론 하면 밑에
이렇게 명령을 입력할 수 있는 상태가 됩니다
그리고 q&a
느낌표 하고 엔터를 땅 치면 vi 에디터에서 빠져나오는 거에요
아시겠죠 자 그럼 다시 한번 제가 몇가지 더 설명 드릴 게 있으니까 다시
복귀를 해볼게요
예 디버깅을 제가 다시 시작을 했는데요
만약 여러분이 이 oo 이 명령을 실행하는데 과정에 있어서
음 디버깅하는 데 있어서 어떤 부분을 건너뛰고 싶은데 한 줄 한 계단
이게 너무 귀찮아요
그러면 그 로직으로 직접 하시면 됩니다 예를 들면 제가 지금 쭉 내려
가고 있는데
자 이 중에서 여기 있는 이후 이 현재 이행 있잖아요
웰컴 이라고 하는 변수에 어떤 문자를 할당되는
어 데이터가 할당되는 이 부분에서 이 부분으로 바로 이동을 하고 싶으면
이렇게 커서를 쭉 이동을 한 다음에
자 콜론 을 입력합니다 그리고 여기서 bp 라고 입력하면 자 보시는
것처럼 웰컴 이라고 하는 부분에 이렇게 파란색으로 표시가 되요 제가
이렇게 강조 표시한 부분에 대한 얘긴데요
자 이렇게 되면 여러분이 f5 키를 누르면
요 명령을 실행하는 저 중 실행하는 부분이 욥이 피 즉 브레이크 포인트
라고 하는 곳을 만날 때까지 한꺼번에 실행이 되버리는 겁니다
그럼 해 볼까요 자 f5 키를 누르면 바로 이 부분이 빨간색으로 변경
됐죠 빨간색은 현재 실행 실행되고 있는
어 라인 빨간색으로 표시가 된다고 했죠
그런 식으로 에서 여러분들이 빠르게 디버깅 하오자 하는 것을 찾을 수도
있을 찾을 수 있습니다
그리고 소스 코드의 다가
예를 들면 현재 요건은 지금 vi 에서 하고 있는 건데요 여러분
에디터에서 직접 하셨습니다
xd 버그 브레이크 라고 하는 한 수를 입력하고 이 함수를 저장한
저장하게 되면
f5 키를 넣었을 때 마치 제가 현재 bp 라고 하는 그 플래그를
브레이크 포인트를 부영 것과 동일한 효과를 냅니다
즉 명령어를 입력 그 코딩을 해서 브레이크 포인트를 명시적으로 지정할 수
있다는 거죠 예 고개 하나 있구요 또 하나 설명 씩 차명 드리고 싶은
것은 것은
2 노멀 모드 라고 하는건데요 뭐 녹말 모드라고 하구
2배 이 벨 웨이트 라고도 하죠 그래서 여기 있는 요 php 로 여러분의
디버깅 하는 과정에서 현재의 맥락에서 실시간으로 php 에 php 를
실행해 볼 수가 있습니다
예 예를 들어서 제가 f3 을 해서 현재 웰컴 이라고 하는 변수의 어떤
값이 들어가 있죠
네 물론 이것은 여기 있는 요 요 요 부분을 통해서
와치 윈도우를 통해서 조 웰컴 안 의 어떠한 변수가 활 당 되어 있는지를
확인할 수도 있지만 예를 들며 여러분이 에러 로그를 통해서 확인하고
싶다고 하면 이렇게 하면 됩니다
자의 보면 콤마 이라고 되어 있죠 콤마 를 입력하고 1을 입력합니다
아이레 수 씨를 루시퍼 번져 들어오구요 콤마 1을 입력하면 자일 써
트라고 이 밑에 보이죠
그리고 위에 2배 땡땡 이라고 되어있고 커서가 되게 상태가 됩니다
자로 이 상태도 제가 에러 로그를 한번 실행해 볼 건데요
자 여기


비트 다음 1 한번 더 실행 시켰구요
에러 로그를 대기상태로 제가 만들어 보겠습니다 자 에러 로그를 텔리
추적하는 명령을 입력해 쪄요
랜턴을 당 치면 자 보시는 것처럼 이렇게 에러 로그를 감시하는 모드 로
바뀌었죠
저희 상태에서 제가 어 이 rr 오발 더 바로 그는
어 저기 인자로 전달된 데이터를 에러 로그의 찍어 주는 거죠
여기서 제가 웰컴 이라고 입력하고 엔터를 땅 치면 어떻게 되는지 한번
볼까요 자 보시는 것처럼 에러 로그 간주 띡 올라오면서 셀렉트 업체인지
캐시 그라인드 파일 어브 하고서 그 메시지가 전부 다 이렇게 출력되고
있죠
저요 걸 자주 사용하는데요 왜냐 마치 인도 라고 하는 것이 굉장히 비좁고
그와 같이 인도에서 표현되는 정보가 어느 좀 그 데이터 양이 많아짐
한계가 있기 때문에 그런 경우에는
에러 로그를 이용해서 제가 앱 로빙 로깅을 하는 경우가 많이 있는데요
이건 이제 제 고요
어떤 명령이 건 현재의 맥락에서 여러분이 실행해 볼 수 있다는 겁니다
예 이렇게 해서 xt 버그의 리모트 디버깅 씨는 중심을 알아봤는데요
xt 버그는 저 개인적으로는 어
php 로 개발을 하는데 있어서 개발 방식을
뭐 혁명적으로 바꾸어 쓴 이 도구 라고 하실지 만큼 굉장히 중요한 개발
도구로 저한테는
자리잡아 있는 상태구요 여러분들도 x 디버그를 잘 사용하셔서
이 개발하는 작업이 좀 덜고 됐으면 좋겠습니다

댓글 0개

등록된 댓글이 없습니다.

 
Total 93건 1 페이지
썸네일
제목

Menu