这篇文章我们继续学习main方法,我们先来看看 ngx_debug_init() 这个方法。从方法名我们也知道,debug初始化。我们先看看方法位置在哪。我们来断点在这个方法上面。
Function “ngx_debug_init” not defined。
我们去源码里面查找,grep “ngx_debug_init” -r *。
通过搜索结果大家应该知道,这个函数主要用于跨操作系统的东西。在linux系统中应该是src/os/unix/ngx_linux_config.h:#define ngx_debug_init()。
仅仅是一个宏定义,内容为空。大家可以去src/os/unix/ngx_linux_config.h中看看。也就是说对于linux平台,这个函数没有意义。所以gdb中运行nginx,直接就跳到了ngx_strerror_init() 方法。
那我们就来看看ngx_strerror_init() 方法的作用。我们还是从启动nginx开始,gdb nginx,b main,r,然后输入 s 命令。
nginx源码学习(四)
最新推荐文章于 2024-06-19 15:42:17 发布
本文详细探讨了nginx中的ngx_strerror_init()方法,该方法在Linux系统中用于初始化系统错误信息。通过分析源码,揭示了ngx_strerror_init()如何申请内存并填充系统错误信息数组ngx_sys_errlist,解释了 ngx_memcpy()、ngx_strlen()等函数的用途,为理解nginx源码提供了一定的见解。
摘要由CSDN通过智能技术生成