> 백엔드 개발 > PHP 튜토리얼 > PHP 디버깅 도구 Xdebug의 자세한 사용 튜토리얼

PHP 디버깅 도구 Xdebug의 자세한 사용 튜토리얼

小云云
풀어 주다: 2023-03-21 15:06:02
원래의
11234명이 탐색했습니다.

xdebug는 개발자가 코드를 디버그하는 데 도움이 되는 공식 주소인 https://xdebug.org/index.php입니다. 이 문서에서는 주로 PHP 디버깅 도구인 Xdebug 2.6 버전의 자세한 사용 튜토리얼을 공유합니다. Lielai 설명입니다. 모든 사람에게 도움이 되기를 바랍니다.

다음 기능이 있습니다:

PHP 오류 프롬프트 교체:

다른 정보를 강조하기 위해 프롬프트에 색상 일치 추가
대형 변수 인쇄:
인쇄할 var_dump(), print_r() 및 기타 인쇄 기능의 기능 강화 큰 변수는 충돌을 방지하는 데 매우 유용합니다
최대 재귀 보호:
PHP가 멈추는 것을 방지하기 위해 최대 재귀 수를 설정할 수 있습니다.
함수 호출 추적:
함수 호출 프로세스를 추적하고, 전달되고 반환된 값을 표시할 수 있습니다.
코드 커버리지 분석:
코드가 실행 중일 때 어떤 라인이 실행되는지 확인할 수 있습니다.
가비지 수집 분석:
PHP가 가비지 수집을 수행할 때 어떤 변수가 정리되고 얼마나 많은 메모리가 해제되는지 등의 정보를 표시합니다.
코드 성능 분석:
코드 실행 시간의 각 부분을 볼 수 있으며, 코드 실행 효율성의 병목 현상을 찾을 수 있습니다.
원격 디버깅:

원격 중단점 디버깅을 위한 IDE 도구를 사용하여 코드 실행을 추적할 수 있습니다. 단계별로 동작 중인 다양한 변수의 값을 보거나 설정하고, xdebug에서 가장 흔히 사용되는 함수이자 매우 강력한 var_dump(), print_r() 및 기타 함수의 사용을 피하세요.

설치:
다음 환경은 설명을 위해 사용되었습니다. 다른 환경의 경우 프롬프트를 따르세요.
운영 체제: Windows 10
php 버전: php-7.1.13-nts(32비트)
다운로드: https://xdebug .org/ download.php
자신의 환경(php 버전, 스레드 안전 여부, 비트 너비 등)에 따라 적절한 버전을 선택하세요. 여기서는 이전 환경을 기준으로 선택합니다:
버전: Xdebug 2.6. 0, PHP 7.1 VC14 (32 비트) 이 버전은 2018-01-29에 출시되었습니다
다운로드한 파일 php_xdebug-2.6.0-7.1-vc14-nts.dll을 php의 ext 디렉토리에 넣고
php.ini 파일을 수정하고 다음 구성을 추가하세요.
zend_extension="php_xdebug- 2.6.0-7.1-vc14-nts.dll"
Execute phpinfo(). xdebug 확장이 표시되면 설치가 성공한 것입니다. 올바른 버전을 선택했습니다. 설치가 완료된 후 실제 사용을 위해 설치해야 합니다. 다음은 각 기능에 따른 일반적인 지침입니다. Xdebug 모드 켜기:
xdebug 확장이 활성화되어 있는 한 이 기능은 기본적으로 켜져 있으며 xdebug 스타일로 표시되도록 설정됩니다. 구성 파일: xdebug.default_enable=0. 이 설정 항목은 xdebug의 모든 기능을 끄는 것을 의미하지 않습니다. 큰 변수 표시를 구성합니다. 유명한 콘텐츠의 노드 렌더링 배열과 같이 변수가 매우 커집니다. 관리 시스템 drupal8을 사용하면 8G 메모리가 있는 I5 컴퓨터가 멈출 수 있습니다. 따라서 Xdebug는 이러한 상황을 방지하기 위해 다음 구성 항목을 구성합니다. :
xdebug.var_display_max_children
Integer, 기본값은 128입니다. 표시되는 배열 하위 요소 또는 객체 속성의 최대 수입니다. 제한이 없으면 -1로 설정합니다.
xdebug.var_display_max_data
정수, 기본값은 512, 문자열의 최대 길이입니다. , -1로 제한되지 않음, 원격 디버깅에 영향을 주지 않음
xdebug.var_display_max_length
정수, 기본값 3, 배열 또는 개체 속성을 표시할 때 최대 중첩 깊이, 최대값은 1023, -1을 사용하여 이 최대 수를 참조할 수 있습니다

최대 재귀 보호:
다음 구성 항목을 설정합니다:
xdebug.max_nesting_level
정수, 기본값은 256, -1까지 제한 없음, 무제한 재귀 보호 메커니즘, 재귀 호출이 이 설정에 도달하면 프로그램이 중단됩니다. 이때는 오류 메시지가 나타나지 않지만 프로그램이 바로 종료됩니다.

함수 호출 추적:
객체 메서드 호출 포함 이 기능은 기본적으로 꺼져 있습니다. 파일을 보고 다음과 같이 구성합니다(여기의 값은 복제 및 사용에 가장 일반적으로 사용되는 상황으로 설정되어 있습니다. 자세한 내용은 아래 구성 지침을 참조하세요):
xdebug.auto_trace=1
;
xdebug.trace_output_dir="C:rootxdebugtrace"
; 추적 데이터 출력 디렉터리 호출
xdebug.trace_output_name="yunke.%s.%u"
추적 파일의 파일 이름
함수 반환 값 수집
xdebug. show_mem_delta=1
; 메모리 세부 정보 표시
xdebug.trace_format=0
; 추적 파일 형식

위 설정을 사용하면 모든 요청에 ​​대한 분석 파일이 생성되며, 추적 분석 호출도 변수에 의해 실행될 수 있습니다(브라우저를 통해 자동으로 수행 가능). 이는 또한 권장되는 방법입니다(아래 참조). 즉, GET/POST 또는 쿠키에 변수 이름 XDEBUG_TRACE를 설정하는 것입니다. 해당 값은 다음 설정과 일치합니다.
xdebug. 0
;변수 트리거 추적이 활성화된 경우 자동 추적을 꺼야 합니다.
xdebug.trace_enable_trigger=1
xdebug.trace_enable_trigger_value="yunke"
;위 XDEBUG_TRACE 변수의 값입니다
예를 들어 다음 URL을 방문하세요: http ://www.test.com/index.php? 이 함수를 사용하면 코드 실행에서 어떤 라인이 실행되었는지 알 수 있습니다. 일반적으로 구성은 다음과 같습니다. ;코드 커버리지 분석이 켜져 있습니다

코드 커버리지 분석은 PHP 코드에서 함수를 호출하여 수행됩니다. 예, 프로세스는 다음과 같으며 배열 결과를 얻습니다:
xdebug_start_code_coverage();//Turn on overwriting
…/ /분석 중인 일부 코드
var_dump(xdebug_get_code_coverage());//분석 결과 배열 가져오기

가비지 수집 분석:
이 기능은 기본적으로 꺼져 있습니다. 켜면 가비지 수집 분석 데이터가 a로 출력됩니다. 파일을 봅니다. 구성은 다음과 같습니다(여기의 값은 복사 및 사용에 가장 일반적으로 사용되는 상황으로 설정됩니다. 자세한 설명은 아래 구성을 참조하세요):
xdebug.gc_stats_enable=1
; 가비지 수집 분석
xdebug.gc_stats_output_dir="C:rootxdebuggc"
; 데이터 출력 디렉터리, 기본값은 /tmp
xdebug.gc_stats_output_name="gcstats.%s.%u"
;출력 파일 이름, 기본값은 gcstats .%p

프로그램 성능 분석:
이 기능은 기본적으로 꺼져 있습니다. 켜져 있으면 성능 분석 데이터가 파일로 출력되며, 파일은 기계 분석이 쉽고 보기 위해서는 특수 소프트웨어가 필요합니다. 구성은 다음과 같습니다(여기의 값은 복사 및 사용을 위해 가장 일반적으로 사용되는 상황으로 설정됩니다. 자세한 내용은 아래 구성 지침을 참조하세요):
xdebug.profiler_enable=1
; 성능 분석 켜기
xdebug.profiler_output_dir="C: rootxdebugprofiler"
; 성능 분석 파일 출력 디렉터리
xdebug.profiler_output_name="cachegrind .out.%s.%u"
;성능 분석 출력 파일 이름

위 설정은 모든 요청에 ​​대한 분석 파일을 생성합니다. 성능 분석도 가능합니다. 변수에 의해 트리거됩니다(브라우저 확장을 통해 자동으로 수행할 수 있으며 이는 권장 방법이기도 합니다(아래 참조). 즉, 변수 이름을 설정해야 합니다.
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable_trigger_value="yunke"
; URL: http://www.test.com/index.php 방문과 같은 분석 파일 생성을 트리거하는 위의 XDEBUG_PROFILE 변수
의 값입니다. 프로그램 분석은 허용되지만 대규모입니다. 프로그램은 문제에 대처할 수 없으며 심지어 오류가 발생할 수도 있습니다. Yunke의 테스트 후에는 QCacheGrind가 가장 효과적입니다. KCacheGrind의 Windows 버전입니다.
에 ""가 있습니다. Flat Profile을 연 후 왼쪽" 패널에서 첫 번째 열 "Incl."은 내부적으로 호출된 서브루틴의 시간을 포함한 실행 시간입니다. Self 열은 하위 함수 호출을 제외하고 자체적으로 소비된 시간입니다. Called 열은 횟수입니다. 함수가 호출됩니다. 위치 열은 파일 위치입니다.
시간은 1초 = 1000000마이크로초(μs)로 백분율로 표시할 수 있습니다.
먼저 원격 디버깅의 전체 프로세스를 살펴보면 먼저 디버깅할 스크립트가 특수 매개변수를 사용하여 브라우저에서 열리고 스크립트가 실행되기 시작합니다. 이때 Xdebug는 구성된 디버깅 클라이언트에 대한 연결을 적극적으로 시작하고 DBGp를 사용합니다. 디버깅 클라이언트와 상호 작용하기 위한 프로토콜(디버깅 클라이언트는 종종 우리입니다. phpstorm과 같이 사용되는 IDE는 디버깅 네트워크 포트를 수신해야 합니다) 디버깅 클라이언트는 Xdebug가 코드를 단계별로 실행하거나 표시하거나 표시하도록 하기 위해 프로토콜을 사용합니다. 프로그램에 변수 내용을 설정하면 Xdebug는 각 단계 사이에 PHP 프로그램을 일시 중지합니다. 이 "단계"는 중단점이라고도 합니다. 디버깅 클라이언트의 경우 중단점을 설정할 수도 있습니다. 전체 프로세스는 PHP 엔진에서 Xdebug의 한 단계로, 단계별로 코드를 실행하고 프로세스를 작동시키며 디버깅 클라이언트로부터 지시를 받습니다.
원격 디버깅을 수행하려면 특정 작업은 다음과 같습니다. 먼저 다음 구성이 필요하고 PHP를 다시 시작해야 합니다.
xdebug.remote_enable=1
;원격 디버깅 스위치
xdebug.remote_host=localhost
;원격 디버깅 클라이언트 호스트 주소, IDE가 있는 호스트의 주소입니다. 대개 localhost
xdebug.remote_port=9000
; 원격 디버깅 포트
가 구성된 후 브라우저에서 스크립트를 열 때 GET/POST를 보내야 합니다. 변수 이름 XDEBUG_SESSION_START 또는 값이 Xdebug 및 debug인 쿠키 변수 이름 XDEBUG_SESSION 클라이언트의 통신 세션 ID는 종종 IDE에서 지정하는 특수 문자입니다. 예를 들어, phpstorm은 "PHPSTORM"을 지정합니다. 이 값은 xdebug.idekey에서 설정할 수 있습니다. 기본값은 브라우저를 통해 전달될 수 있는 빈 문자열입니다(아래 참조). 서버는 xdebug.remote_mode 설정에 따라 디버깅 프로세스를 시작합니다. 구성 항목이 "req"이면 Xdebug는 스크립트가 처음 시작될 때 디버깅 클라이언트(IDE)에 대한 디버깅을 시작하며, 이 값도 "jit"이면 연결만 됩니다. 오류가 발생하면 시작됩니다. IDE와의 연결이 성공적으로 설정되면 DBGp 프로토콜이 디버깅 상호 작용에 사용됩니다.
여러 개발자가 서버를 공유하는 경우 디버깅 클라이언트가 여러 개 있게 되며, xdebug.remote_host 구성 항목은 하나만 설정할 수 있습니다. 이때 xdebug.remote_connect_back을 1로 설정하면 http 헤더를 사용하게 됩니다. 디버깅 클라이언트에서 얻은 IP를 디버깅 클라이언트의 주소로 사용합니다.
디버깅 연결을 시작할 때 Xdebug의 기본 시간 초과 시간은 200밀리초입니다. 이 값은 xdebug.remote_timeout 구성 항목에 설정되어 있습니다. 로컬 디버깅의 경우 이 값으로 충분합니다. 네트워크 지연에 대처하기 위해.


브라우저 플러그인 지원:
위에서 언급한 것처럼 분석 트리거, 파일 추적 및 원격 디버깅 활성화에는 모두 GET/POST 또는 쿠키에서 특정 변수 및 값을 설정해야 하는데, 브라우저가 이를 수행하도록 할 수 있습니까? 이것이 가능합니다. 개발자가 가장 많이 사용하는 Firefox 브라우저 목록은 다음과 같습니다.
먼저 보조 플러그인을 설치하고 주소를 엽니다: https://addons.mozilla.org/en-GB/firefox/addon/xdebug-helper -for-firefox/
Firefox용 Xdebug Helper가 표시되면 Firefox에 추가를 클릭하고 프롬프트를 따르세요
설치가 완료되면 다음을 구성해야 합니다: "ctrl+shift+a" 키 조합을 눌러 추가 기능 패널을 열고, Xdebug Helper를 찾아 옵션을 클릭하고 IDE 원격 세션 ID, 분석 키 및 추적을 입력합니다. 키(구성의 xdebug.idekey, xdebug.profiler_enable_trigger_value, xdebug.trace_enable_trigger_value에 해당)를 클릭하고, 이때 새로 열린 웹 페이지의 브라우저 주소 표시줄에 크롤러 아이콘이 표시됩니다. : 디버깅, 분석, 추적 및 비활성화됨 서버가 연결을 열면 추가 쿠키 매개변수가 수반됩니다. 예를 들어 분석을 선택하면 XDEBUG_PROFILE 변수가 추가됩니다. 연결이 새로 고쳐질 때 쿠키 값은 이전에 설정된 키 값입니다. 이를 통해 Xdebug는 분석 파일을 생성하고 기능 추적 및 원격 디버깅을 수행할 수 있습니다.

phpstorm 디버깅:
앞서 언급했듯이 Xdebug의 원격 디버깅은 DBGp 프로토콜을 통해 디버깅 클라이언트와 상호 작용하는 프로세스입니다. 원격 디버깅 클라이언트는 Xdebug가 시작한 디버깅 연결을 수신하기 위해 네트워크 포트를 수신해야 합니다. 여기서는 특정 작업을 설명하기 위해 원격 디버깅 클라이언트로 사용됩니다.
PhpStorm은 개발자가 일반적으로 사용하는 IDE입니다. 여기서는 유명한 콘텐츠 관리 시스템인 drupal8을 사용하여 디버깅 프로세스를 설명합니다. 먼저 Xdebug를 설치하고 구성해야 합니다. 기본 9000 및 Firefox 브라우저가 설치되어 있습니다. 이전 섹션에서 언급한 Firefox 확장용 Xdebug Helper를 열고 PhpStorm에서 만든 drupal 프로젝트를 엽니다(아직 프로젝트를 만드는 방법을 모르시나요? Baidu 또는 drupal 공식 웹사이트를 이용하세요). 파일을 엽니다. > 기본 설정 > 언어 ​​&Frameworks > PHP > 디버그 > (선택 사항), 여기에 drupal을 입력하고 서버 라인에서 세 개의 점을 클릭한 후 서버 이름, URL 주소 및 포트를 입력하세요. , Xdebug를 디버거로 선택하고, 경로 매핑을 확인하지 않고, 적용 확인을 클릭하고, 이전 패널로 돌아가고, URL 시작 "/"를 입력하면 브라우저가 Firefox 확장용 Xdebug 도우미가 설치된 Firefox를 선택하고, 응용 프로그램은 정상입니다.
이때 phpstorm 인터페이스의 오른쪽 상단에 있는 디버깅 버튼 행의 드롭다운 메뉴는 새로 생성된 디버깅 "drupal"을 자동으로 선택하고, 전화 아이콘을 클릭하거나(아이콘 수신기가 청취 상태로 변경됨)을 클릭합니다. 메뉴 실행 | PHP 디버그 연결 수신 대기를 시작하여 포트 9000 수신을 시작하고 인덱스 파일에 중단점을 설정합니다(코드 줄 번호 왼쪽의 공백을 클릭하면 빨간색 점이 나타납니다). 이제 모든 것이 준비되었습니다. , Firefox 브라우저를 열고 주소 표시줄 크롤러 아이콘을 "debug"로 선택한 다음 drupal 페이지를 엽니다. 이때 phpstrom은 코드를 작동할 수 있는 많은 버튼을 제공하는 왼쪽 하단에 디버깅 패널을 엽니다. 실행: 변수 하위 패널에는 현재 범위의 모든 변수가 나열되어 있으며, 여기에서 모든 변수의 내용을 볼 수 있습니다. 시계 패널에서는 변수 또는 표현식의 내용을 추적할 수 있습니다. 프레임 패널에는 현재 줄이 있는 호출 스택 프레임이 나열됩니다.
디버깅을 위해 phpstorm을 사용하는 방법에 대한 공식 문서를 확인하세요. 자세한 내용은 다루지 않겠습니다. 다음은 phpstorm 공식 웹사이트에서 제공하는 일부 디버깅 도움말 문서 페이지입니다:
설치 구성:
https://confluence.jetbrains.com/ display/PhpStorm/Zero-configuration +Web+Application+Debugging+with+Xdebug+and+PhpStorm
디버깅 작업:
https://confluence.jetbrains.com/display/PhpStorm/Using+the+PhpStorm+Debugger

참고 디버깅이 첫 번째 줄에 유지됩니다. 중단점을 설정하지 않으면 디버깅 세션이 즉시 종료됩니다. 또한 코드의 첫 번째 줄에 머물도록 디버깅을 설정할 수도 있습니다(첫 번째 줄에서 실행 > 중단 선택). PHP 스크립트에서).
디버깅 중 브라우저에서 500 오류가 발생하고 디버깅 연결이 끊어지면 서버가 PHP 프로그램을 종료했을 가능성이 높습니다. FastCGI 모드에서 Apache를 실행 중인 경우 오류 로그는 "스크립트 종료"와 유사합니다. 헤더 이전에 출력"인 경우 서버 구성 파일 httpd.conf의 FcgidIOTimeout 및 IPCCommTimeout 매개변수를 원하는 대기 시간(초)으로 설정하십시오. 다른 환경에서는 시간 초과 구성을 직접 확인하십시오.


공통 구성:
모든 설정 및 세부 사항은 https://xdebug.org/docs/all_settings를 참조하세요. 이 글에서는
xdebug.trace_output_dir
함수가 ​​추적 데이터 파일을 호출하는 디렉터리에 대해서만 간략하게 소개합니다. 기본값은 /tmp입니다. 쓰기 가능한지 확인하세요
xdebug.trace_output_name
추적 파일의 파일 이름 가이드, 기본값은 다음과 같습니다. Trace.%c 예: yunke.%s.%u는 경로와 함께 스크립트 이름을 출력합니다. 미묘한 시간은 다음과 같습니다: yunke.C__root_test_index_php.1520473784_260486.xt
xdebug.auto_trace
함수 호출 추적 활성화, 부울 값, 기본값은 0
xdebug.collect_locationments
부울 값, 기본값은 0, 함수에 변수 할당 추가 여부 tracing
xdebug.collect_includes
부울 값, 기본값은 1, include(), include_once(), require() 또는 require_once() 파일을 추적 파일
xdebug.collect_params
에 쓸지 여부)정수(기본값 0)는 함수 추적을 위한 매개변수 컬렉션을 결정하고, 0은 컬렉션 없음을 의미하고, 1은 매개변수의 유형 및 개수, 2는 1을 기반으로 도구 설명 정보를 추가하고, 3은 전체 변수 콘텐츠(변수 출력 설정의 영향을 받음), 4는 전체 변수 내용 및 변수 이름, 5php 직렬화된 내용에는 변수 이름이 없습니다
xdebug.collect_return
Boolean 값, 기본값 0, 함수 호출의 반환 값을 추적 파일
xdebug.show_mem_delta
integer에 쓸지 여부, 기본값은 0, non -0 값이 표시됩니다. 함수 호출의 메모리 사용량 정보
xdebug.trace_format
정수, 기본값은 0, 추적 파일의 형식, 0은 사람이 읽을 수 있는 형식(시간 인덱스, 메모리 사용량 등)입니다. 1은 기계가 읽을 수 있는 형식 2는 웹 페이지에 표시되는 사람이 읽을 수 있는 형식입니다.
xdebug.trace_options
Integer, 기본값은 0입니다. 1로 설정하면
xdebug.var_display_max_children
Integer를 덮어쓰는 대신 추적 파일이 추가됩니다. 기본값 128, 표시되는 배열 하위 요소 또는 객체 속성의 최대 수, 제한 없음 -1로 설정하면 원격 디버깅이 영향을 받지 않습니다.
xdebug.var_display_max_data
정수, 기본값 512, 표시 문자열의 최대 길이, 제한되지 않음 - 1, 원격 디버깅에 영향을 주지 않습니다
xdebug.var_display_max_length
integer, 기본값 3, 배열 또는 객체 속성을 표시할 때 최대 중첩 깊이, 최대값은 1023입니다. -1을 사용하여 이 최대 수를 참조할 수 있습니다
xdebug.coverage_enable
Boolean , 기본값은 1입니다. 코드 적용 범위 분석을 활성화할지 여부는 Yunke가 실제로 이 설정 항목이 유효하지 않다는 것을 측정하여 활성화하도록 합니다. 분석 결과를 얻으려면
xdebug.gc_stats_enable
Boolean 값 함수를 사용해야 하며 기본값은 0입니다. 가비지 수집 통계 분석 활성화 여부
xdebug.gc_stats_output_dir
가비지 통계 분석을 위한 쓰기 디렉터리, 권한에 주의하세요
xdebug.gc_stats_output_name
가비지 분석 파일 이름, 추적 분석을 위한 파일 이름 규칙과 동일
xdebug.profiler_enable
Integer, 기본값은 0, 1일 경우 성능 분석 기능이 활성화됩니다
xdebug.profiler_aggregate
Integer, 기본값은 0, 0이 아닌 경우 여러 요청의 분석 데이터가 활성화됩니다. 작성 교차 요청 분석을 위한 파일 입력
xdebug.profiler_append
Integer, 기본값은 0, 분석 파일이 추가 모드를 채택하는지 여부, 파일 이름 설정이 이 항목에 영향을 미칩니다
xdebug.profiler_enable_trigger
Integer, 기본값 0이면 트리거 모드가 사용됩니다. 프로파일링 기능을 켜면 xdebug.profiler_enable
xdebug.profiler_enable_trigger_value
string을 꺼야 합니다. 기본값은 분석을 트리거하는 키인 ""이며 xdebug.profiler_enable_trigger
xdebug.profiler_output_dir
String과 함께 사용됩니다. 기본값은 /tmp, 분석 파일 출력 디렉터리
xdebug.profiler_output_name
분석 파일 이름, 기본값은 cashgrind.out.%p, xdebug.trace_output_name 참조
xdebug.extended_info
Integer, 기본값은 1, PHP 파서가 확장_정보 모드
xdebug.idekey
String, 기본값: *complex*, 디버깅 세션 ID, 전송됨 by Yunke test browser 디버깅은 임의의 값으로 시작할 수 있으므로 키 값은 아니지만 일부 디버깅 클라이언트는 이를 사용하여 디버깅 연결을 수락할지 여부를 결정할 수 있으므로
xdebug.remote_addr_header
를 통합하는 것이 가장 좋습니다. 기본값은 http 헤더는 디버깅 클라이언트 주소를 나타내며 xdebug.remote_connect_back
xdebug.remote_autostart
Boolean 값(기본값 0)과 함께 사용되며 일반적으로 특정 변수를 사용하여 원격 디버깅을 시작합니다. 1로 설정되면 항상 켜집니다
xdebug.remote_connect_back
부울 값, 기본값 0, 다중 사용자 디버깅 문제 해결, 설정된 고정 IP를 무시하고 요청 주소
xdebug에 따라 연결하도록 서버에 지시합니다. remote_cookie_expire_time
정수. 기본값 3600, 원격 디버깅 쿠키 만료 시간
xdebug.remote_enable
Boolean 값, 기본값 0, 원격 디버깅 활성화 여부
xdebug.remote_host
string, 기본값: localhost, 원격 디버깅 클라이언트의 주소
xdebug.remote_log
string, 기본값 비어 있음, 원격 디버깅 로그 파일 이름
xdebug.remote_mode
String, 원격 디버깅 기본값, req 스크립트 시작과 동시에 링크됨, 오류 발생 시 jit 링크됨
xdebug.remote_port
원격 디버깅 호스트 포트, 기본값 9000
xdebug .remote_timeout
integer, 기본값 200, 단위 밀리초, 디버깅 링크를 기다리는 시간
xdebug.default_enable
부울 값, 1 또는 0, xdebug 모드에서 오류 프롬프트 활성화, 기본적으로 활성화됨
xdebug.max_nesting_level
integer, 기본값: 256, 무한 재귀 보호 메커니즘, 재귀 호출이 이 설정에 도달하면 프로그램이 중단됩니다.
xdebug.max_stack_frames
정수, 기본값 -1, 오류 메시지가 표시될 때 표시되는 스택의 프레임 수를 설정합니다.
xdebug.scream
부울 값, 기본값 는 0 이며, 오류가 강제로 표시되도록 "@"를 비활성화할지 여부입니다.


xdebug 확장 기능이 켜진 후 사용할 수 있는 기능:
확장 기능이 로드되면 PHP 스크립트에서 다음 기능을 사용할 수 있습니다:
( 여기에는 일부만 나열되어 있습니다. 전체 내용은 https를 참조하세요. ://xdebug.org/docs/all_functions)
string xdebug_call_class( [int $length = 1] )
Display call class
string xdebug_call_file( [int $length = 1] )
호출 파일 표시
string xdebug_call_function( [int $ 깊이 = 1] )
호출 함수 반환
int xdebug_call_line([int $length = 1])
호출 라인 반환
void xdebug_disable()
스택 추적 비활성화
void xdebug_enable( )
스택 추적 활성화
bool xdebug_is_enabled()
스택 추적이 활성화되어 있는지 확인
string xdebug_get_collected_errors([int clean])
오류 세트 버퍼에서 모든 오류 정보를 반환
array xdebug_get_headers()
header() 함수에서 설정한 모든 헤더 정보를 반환
nt xdebug_memory_usage ( )
메모리 사용량 반환
nt xdebug_peak_memory_usage()
스크립트에서 지금까지 사용한 최대 메모리 사용량 반환
void xdebug_start_error_collection()
오류 수집 및 표시 억제
void xdebug_stop_error_collection()
오류 로깅 중지 및 버퍼에서 수집
float xdebug_time_index ()
현재 지점의 실행 시간을 초 단위로 반환합니다.
관련 권장 사항:

PHP7에서 디버깅 도구 Xdebug 확장을 설치하는 방법에 대한 간략한 소개

디버깅 도구 Xdebug를 설치하는 방법에 대한 튜토리얼 PHP7의 확장(그림)

Xdebug 구성 실패

위 내용은 PHP 디버깅 도구 Xdebug의 자세한 사용 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿