本文简单记录一下搭建nginx源码调试环境的过程。
Windows
在windows下使用宇宙最强IDE进行调试,可谓事半功倍。但是nginx的源码并没有提供visual studio的solution工程文件,所幸在github上找到了一个repo,别人已经将其他一些messup的东西都给你搞好了,直接F5就能run起来,简单省事。
Repo地址: https://github.com/tumtumtum/nginx-visualstudio
Linux
好在微软发布了一个跨平台的VS Code,在linux下可以使用它作为集成开发环境。下面以ubuntu为例。
安装VS Code
在官网下载vs code deb包,安装好,再安装C/C++插件
安装GCC/GDB
安装GCC编辑器和GDB调试器,我使用的ubuntu desktop 16.04版本自带这些,所以就没有额外安装,如果系统没有带,需要额外安装。
1 | sudo apt install build-essential -y |
下载Nginx源码与依赖库
使用git 将repo clone下来。如果没有安装git,需要先安装git。
1 | cd ~ |
注意,如果你是在虚拟机使用git,记得使用https方式,而不是ssh方式来下载代码。因为你可能没有为虚拟机生成公钥。
1 | # PCRE version 4.4 - 8.40 |
编译源码
执行configure shell脚本,编译代码。注意,configure脚本在 auto
目录下,我们需要拷贝到代码根目录
1 | cd nginx |
上述configure指出的参数为依赖库的目录地址。
执行成功之后在根目录生成obj目录和Makefile。正式进行编译。
1 | make -f Makefile |
使用VS Code进行debug
使用VS Code 打开nginx 代码根目录,F5开始调试,如果是第一次进行调试,会打开launch.json文件。修改可执行程序目录。
打上断点即可开始调试,效果如下图。
总结
由于自己以前没哟在linux下的开发经验,导致搭建调试环境的时候遇到了一些问题。比如makefile是怎么一回事等等。希望自己能好好看看nginx的源码,打算在接下来的博文中出一个nginx源码解读系列。