VS CODE легко отлаживает Nginx

Nginx

VS CODE просто слишком мощный, не только инструмент для разработки интерфейса, но и отлично подходит для отладки HotSpot и Nginx! Самое главное, это бесплатно!

Недавно я изучал Nginx, давайте поговорим о том, как отлаживать Nginx с помощью VS CODE.

Первый: скомпилируйте и запустите Nginx

  1. Измените файл /auto/cc/conf и замените ngx_compile_opt="-c" на ngx_compile_opt="-c -g"
  2. Выполните sudo ./auto/configure --prefix=nginx каталог проекта, если вы столкнулись с ошибкой «модуль перезаписи HTTP требует библиотеки PCRE», выполните brew install pcre
  3. выполнить sudo сделать
  4. Выполните ./objs/nginx, откройте браузер для доступа к 127.0.0.1, если нет проблем, вы можете увидеть приветственный интерфейс Nginx.

Второй: отладка главного процесса

Режим работы Nginx разделен на главный процесс и рабочий процесс, давайте сначала отладим главный процесс.

  1. Чтобы отключить режим работы демона Nginx, добавьте строку в /conf/nginx.conf:
daemon off;

2. Добавьте конфигурацию отладки VSCODE

Создайте и измените файл launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(lldb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/objs/nginx",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "lldb"
        }
    ]
}

3. Начать отладку, круто!

Третий: рабочий процесс отладки

  1. Посмотреть pid рабочего процесса

2. Отредактируйте файл launch.json и добавьте конфигурацию подключения.

{ 
            "name": "(lldb) Attach",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/objs/nginx",
            "processId": "806{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        { 
            "name": "(lldb) Attach",
            "type": "cppdbg",
            "request": "attach",
            "program": "${workspaceFolder}/objs/nginx",
            "processId": "80636", // 填写 Worker 进程 PID
            "MIMode": "lldb"
        },
        {
            "name": "(lldb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/objs/nginx",
            "args": [],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}

3. Переключите режим отладки, чтобы прикрепить

4. Запустите отладку, прервите точку, где анализируется Http-запрос, обновите браузер и снова наслаждайтесь!

Это очень удобно?Далее просто следуйте исходному коду, чтобы путешествовать!