VS CODE просто слишком мощный, не только инструмент для разработки интерфейса, но и отлично подходит для отладки HotSpot и Nginx! Самое главное, это бесплатно!
Недавно я изучал Nginx, давайте поговорим о том, как отлаживать Nginx с помощью VS CODE.
Первый: скомпилируйте и запустите Nginx
- Измените файл /auto/cc/conf и замените ngx_compile_opt="-c" на ngx_compile_opt="-c -g"
- Выполните sudo ./auto/configure --prefix=nginx каталог проекта, если вы столкнулись с ошибкой «модуль перезаписи HTTP требует библиотеки PCRE», выполните brew install pcre
- выполнить sudo сделать
- Выполните ./objs/nginx, откройте браузер для доступа к 127.0.0.1, если нет проблем, вы можете увидеть приветственный интерфейс Nginx.
Второй: отладка главного процесса
Режим работы Nginx разделен на главный процесс и рабочий процесс, давайте сначала отладим главный процесс.
- Чтобы отключить режим работы демона 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. Начать отладку, круто!
Третий: рабочий процесс отладки
- Посмотреть 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-запрос, обновите браузер и снова наслаждайтесь!
Это очень удобно?Далее просто следуйте исходному коду, чтобы путешествовать!