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부터 시작), 호출된 함수명, 그리고 해당 함수가 호출된 파일 경로와 라인 번호를 나타냅니다. 이 정보를 통해 어떤 함수가 어느 위치에서 호출되었는지 한눈에 파악할 수 있어, 복잡한 코드에서 오류 발생 지점을 찾을 때 특히 효과적입니다.