2014-03-23 12:41:01
来 源
kejihao
Nginx安装配置
本文介绍使用gdb调试Nginx程序,希望对于初学Nginx服务器相关的朋友有帮助,更多Nginx安装、配置、报错处理等资源请本站内搜索。。
在修改nginx源码中学习到了如何gdb调试nginx代码,看运行方式,设置nginx源码运行断点,在断点处打印对应的变量的结构或者属性值。下面说说如何实现gdb调试nginx,我是在linux下调试的

首先配置nginx安装程序

找到 nginx/auto/cc/conf 文件,用vim或者什么打开,到第八行

找到:ngx_compile_opt="-c"

更改为: ngx_compile_opt="-c -g"

然后进行编译安装

./configure --user=www --group=www  --prefix=/nginx --add-module=../ngx_cache_purge-1.2 --with-pcre

 --with-http_sub_module --with-http_stub_status_module --with-http_ssl_module

这里的user和group 还有prefix是自己定义的

make 后确认一下,调试模式是否已经配置ok

查看 vim objs/Makefile 文件大概332行 发现

330 objs/ngx_modules.o:     $(CORE_DEPS)

331         objs/ngx_modules.c

332         $(CC) -c -g $(CFLAGS) $(CORE_INCS)

333                 -o objs/ngx_modules.o

已经有  $(CC) -c -g "-g" 的配置,这说明配置成功了。

makeinstall

安装完毕后,我们看nginx的配置文件/nginx/conf/nginx.conf

看这个 daemon off; 配置,如果前面有# ,则使用下面的多线程配置

worker_processes   2;

worker_cpu_affinity  01 10;

如果没有#则是单进程模式运行。

我们用gdb调试,可以说有三种方式

在单线程模式下

1.运行 gdb /nginx/sbin/nginx ,进入后 输入 r (也就是run) 进入了gdb调试模式

2.或者./nginx/sbin/nginx 然后查询 对应的进程号  gdb p 进程号

在多线程下

3. ./nginx/sbin/nginx 查询对应的所有的进程号 并进行多个窗口打开,每个窗口独立gdb p 进程号

进入调试模式后,可以设置断点,继续监听等

这就是gdb调试nginx的简单操作

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。