>백엔드 개발 >PHP 튜토리얼 > nginx 추적 및 디버깅

nginx 추적 및 디버깅

WBOY
WBOY원래의
2016-08-08 09:30:521273검색

디버깅을 통해 쉽게 문제를 찾아내고 버그를 해결할 수 있습니다.

이 글은 책에서 언급된 내용을 주로 요약하며, 자세한 내용은 천천히 읽으면서 경험하기 때문에 천천히 업데이트하겠습니다. 🎜>

추적과 디버깅은 크게 6가지 부분으로 나뉩니다.

1. GDB를 이용한 디버깅:

구체적인 디버깅 방법은 Nginx Learning 14-GDB Debugging Nginx First를 참조하세요. try, 그리고 "Nginx 심층 분석" 작성자의 블로그: 링크를 클릭하여 엽니다

실제로 이전 섹션의 방법을 통해 Eclipse를 통해 코드를 쉽게 디버그할 수 있습니다. 물론 gdb는 명령줄을 통해 더 유연합니다.

매개변수를 사용하여 gdb 디버깅을 입력하세요.

입력 후 중단점/단일 단계 디버깅과 같은 특정 디버깅 기술이 있습니다. /관찰 지점 설정.

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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.