当前位置: 首页 > 网络应用技术

使用VSCODE在MacOSX上检查和调试NGINX代码

时间:2023-03-07 02:23:47 网络应用技术

  Nginx是一个非常受欢迎的开源软件,代码为170,000行。如何从代码中学习和研究它,成为一个具有挑战性的问题。效果要好得多。

  关于使用GCC和GDB来编译和调试NGINX代码有很多文章,但实际配置中将存在各种问题。

  实际验证后,总结了验证过程,我希望它对所有人都有帮助。

  让我们首先了解GCC和Clang LLVM之间的关系:

  我们不建议使用GCC和GDB在MacOSX上调试NGINX,建议您使用

  在MACOSX上使用GDB仍然存在以下问题:

  如果要完全解决此问题,请尝试此方法。

  下载nginx源代码

  自己下载

  安装编译环境和依赖性

  clang llvm lldb:brew install-with-clang llvm

  LLDB和Clang已经包含在LLVM的安装中。

  本文描述的施工过程中使用的版本是:

  pcre zlib openssl:啤酒安装xx

  使用Brew Search查找相关的相关软件包。

  使用BREW安装安装相应的依赖项。

  编译的nginx流程包装:github-zongzw-nginx/vscode-nginx

  在build-cc.sh中,使用拦截构建被用作编译工具,而不是使用make或bear make,因为它可以通过在OSX上的特定目录上执行文件来限制。有关详细信息,请参考:

  github -rizsotto/bear:bear是一种生成用于claing工具的编译数据库的工具。

  OS X 10.11(使用CSRUTIL状态检查| GREP'系统完整性保护')和Fedora,Centos,Rhel(与Seastatus | Grep'Selinux状态检查)。

  因此,我们使用包装器:github-rizsotto/扫描构建:python中的扫描式重新实现

  使用扫描构建的Model 1:

  cxx = intercept-c ++全部

  顺便说一句,您可以生成compile_commands.json

  打开VSCODE,但更改为插件管理选项卡:

  单击其中一个插件,单击右侧安装安装,然后单击“重新加载”以自动重新启动VSCODE以生效。

  请参阅GitHub-Zongzw-nginx/vscode-nginx链接中的VSCODE目录文件

  Sourcetrail是一种更令人眼花code乱的代码查看工具,可以从代码生成中生成视图,功能,文件等。

  Sourcetrail取决于Compile_commands.json。特定的操作步骤是:

  新项目

  填写项目名称和存储路径。这里的路径不是源代码,而是Sourcetrail项目文件的文件的位置,可以是任何文件目录。

  添加源组

  在这里,我们选择C并使用生成的compile_commands.json配置该项目。

  使用compile_commands.json的方法可以大大保存我们的配置过程,并且使用“空C源组”的配置过程很复杂,这几乎是不可能的。然后您需要 - 实施。

  选择compile_commands.json文件位置

  选择需要索引的文件列表

  从编译数据库中选择 - >检查全部

  单击下一步创建,这里的其他选项默认。

  开始计算索引

  单击“创建”后,来自compile_commands.json的Sourcetrail找到了144个源文件。此处的源文件的数量取决于NGINX汇编配置过程中选择的模块数:

  https://www.shouxicto.com/Article/configure:with-xxxx_module

  单击“启动”开始索引文件

  有关更多详细信息,请参阅:GitHub-Zongzw-nginx/woboq-nginx:基于Web的代码Viewer Powerd by woboq CodeViewer。在这里,Woboq集成在Docker中。该文档在链接中更详细。

  原始作者:Zong Zhaowei