网站制作学习网Linux→正文:gdb调试nginx
字体:

gdb调试nginx

Linux 2012/8/20 18:17:27  点击:不统计


在修改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的简单操作


转载%77%77%77请%2E%66%6F%72%61%73%70%2E%63%6E注明

·上一篇:并发测试siege使用说明 >>    ·下一篇:linux安装lua >>
推荐文章
最新文章