Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP debug_print_backtrace() 함수 사용법 완벽 정리

PHP의 debug_print_backtrace() 함수는 백트레이스(backtrace), 즉 함수 호출 스택 정보를 출력하는 함수입니다. 이 함수는 별도의 값을 반환하지 않고, 지금까지의 함수 호출 경로를 화면에 바로 출력해 주기 때문에 코드 디버깅 시 실행 흐름을 추적하는 데 매우 유용합니다.

문법

debug_print_backtrace(options, limit)

매개변수

  • options − 아래 옵션 값들을 조합한 비트마스크(bitmask)입니다.

  • DEBUG_BACKTRACE_IGNORE_ARGS: "args" 인덱스와 모든 함수·메서드의 인수를 생략할지 여부를 지정합니다. 이 옵션을 사용하면 대량의 데이터를 담은 인수까지 출력되는 것을 막아 메모리 사용량을 크게 절약할 수 있습니다.
  • limit − 출력할 스택 프레임의 최대 개수를 제한합니다. 깊은 호출 구조에서 필요한 부분만 확인하고 싶을 때 활용합니다.

반환값

debug_print_backtrace() 함수는 어떤 값도 반환하지 않습니다. 대신 백트레이스 정보를 곧바로 출력(output)합니다.

예제

다음은 함수가 여러 겹으로 중첩되어 호출될 때 백트레이스를 출력하는 예제입니다.

<?php
function Test1() {
    Test2();
}
function Test2() {
    Test3();
}
function Test3() {
    Test4();
}
function Test4() {
    debug_print_backtrace();
}
Test1();
?>

출력 결과

#0  Test4() called at [/home/cg/root/4127336/main.php:12]
#1  Test3() called at [/home/cg/root/4127336/main.php:8]
#2  Test2() called at [/home/cg/root/4127336/main.php:4]
#3  Test1() called at [/home/cg/root/4127336/main.php:16]

위 출력 결과에서 각 줄은 프레임 번호(#0부터 시작), 호출된 함수명, 그리고 해당 함수가 호출된 파일 경로와 라인 번호를 나타냅니다. 이 정보를 통해 어떤 함수가 어느 위치에서 호출되었는지 한눈에 파악할 수 있어, 복잡한 코드에서 오류 발생 지점을 찾을 때 특히 효과적입니다.