디버깅을 통해 쉽게 문제를 찾아내고 버그를 해결할 수 있습니다.
이 글은 책에서 언급된 내용을 주로 요약하며, 자세한 내용은 천천히 읽으면서 경험하기 때문에 천천히 업데이트하겠습니다. 🎜>
추적과 디버깅은 크게 6가지 부분으로 나뉩니다.
1. GDB를 이용한 디버깅:
구체적인 디버깅 방법은 Nginx Learning 14-GDB Debugging Nginx First를 참조하세요. try, 그리고 "Nginx 심층 분석" 작성자의 블로그: 링크를 클릭하여 엽니다
실제로 이전 섹션의 방법을 통해 Eclipse를 통해 코드를 쉽게 디버그할 수 있습니다. 물론 gdb는 명령줄을 통해 더 유연합니다.
매개변수를 사용하여 gdb 디버깅을 입력하세요.
입력 후 중단점/단일 단계 디버깅과 같은 특정 디버깅 기술이 있습니다. /관찰 지점 설정.
1 | gdb --args ./nginx -c /home/zy/code/web/nginx-1.6.2/conf/nginx.conf
|
로그인 후 복사
2. 로그 정보를 사용하여 Nginx 추적:
printf가 작은 프로그램의 인쇄 기능이라는 것을 알고 있지만 프로그램이 커지면 printf가 그다지 유연하지 않습니다. 따라서 대규모 시스템에서는 Linux 커널/NS3 네트워크 시뮬레이션 도구 등 다양한 수준의 출력 제어를 제공합니다. 그런 다음 구성 파일에서 ngx_log_xxx() 함수 시리즈를 호출합니다.
3. strace/pstack 디버깅 프로그램 사용:
이 두 명령을 통해 실행 중에 애플리케이션에서 시작된 시스템 함수 호출과 pstack을 볼 수 있습니다. 자체는 gdb를 사용하여 구현된 쉘 스크립트입니다.
4. 디버깅을 위한 스텁 추가:
단위 테스트의 개념을 예로 들면, 정확성을 확인하려면 기본 함수에서 출력을 구성하고 인쇄해야 합니다. 이러한 추가 테스트 코드는 스텁 테스트이며 Eclipse에서도 스텁 테스트를 수행할 수 있습니다.
링크를 클릭하세요. 5. 특수 애플리케이션 테스트:
직접 작성된 소켓 통신 클라이언트는 특정 상황에서만 실행되는 특정 코드를 테스트합니다.
위의 내용은
nginx 추적 및 디버깅에 대한 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.