VS CODE简直是太强大了,不仅仅是前端开发利器,用来调试HotSpot、Nginx也是棒棒的!最关键还免费!
最近刚好在研究Nginx,下面来讲讲如何用VS CODE 调试Nginx。
一:编译运行Nginx
- 修改 /auto/cc/conf 文件,将ngx_compile_opt=”-c” 修改为 ngx_compile_opt=”-c -g”
- 执行 sudo ./auto/configure –prefix=nginx工程目录 ,如果遇到错误 “the HTTP rewrite module requires the PCRE library”,就执行下brew install pcre
- 执行 sudo make
- 执行 ./objs/nginx,打开浏览器访问下 127.0.0.1,没问题的话就可以看到Nginx的欢迎界面了。
二:调试Master进程
Nginx运行模式分为Master进程和Worker进程,让我们先来调试下Master进程吧
- 关掉Nginx的守护进程运行方式,在/conf/nginx.conf 中添加一行:
- Js中文网 – 前端进阶资源教程 www.javascriptC.com,typescript 中文文档
- 一个帮助开发者成长的社区,你想要的,在这里都能找到
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. 启动调试,爽歪歪!
三:调试 Worker 进程
- 查看 Worker 进程pid
2. 编辑 launch.json,添加 Attach配置
{
"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. 切换 debug 模式为 attach
4. 开始 debug,在解析 Http 请求处打断点,刷新浏览器,再次爽歪歪!
是不是很方便,接下来,就尽情的跟随源码旅行吧!
作者:半栈工程师
链接:https://juejin.im/entry/6844903696417947656
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「画漫画的程序员」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程
本文著作权归作者所有,如若转载,请注明出处
转载请注明:文章转载自「 Js中文网 · 前端进阶资源教程 」https://www.javascriptc.com