Liunx下使用Eclipse 开发nginx module,进行单步调试
Author: chuantong.huang@gmail.com
Date:2010-10-26
OS:Ubuntu 10.4
1)取Nginx最新代码:
wget http://www.nginx.org/download/nginx-0.7.67.tar.gz
tar -xvf nginx-0.7.67.tar.gz
cd nginx-0.7.67
2)建立模块目录与代码
pwd # 进入Nginx源代码目录,如:
/home/toon/workspace/nginx-0.7.67
mkdir ngx_module_echo
vim ngx_module_echo/config
其内容为:
ngx_addon_name=ngx_module_echo HTTP_MODULES="$HTTP_MODULES ngx_module_echo" NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_module_echo.c" CORE_LIBS="$CORE_LIBS "
vim ngx_module_echo/ngx_module_echo.c
其内容:
参考nginx的echo模块代码,自己google下,或参考以下:
http://www.162cm.com/p/ngx_ext.html
3)建立Makefile
利用nginx提供的configrue脚本生成Makefile文件:
./configure --without-http_rewrite_module --without-http-cache --add-module=/home/toon/workspace/nginx-0.7.67/ngx_module_echo/ --with-debug
注意:这里要指定moduel目录(与Nginx源码目录下),还要指定debug编译.
BTW:Eclipse 中执行Build project时会执行make clean all,会删除Makefile,故此时应该再执行 configure生成Makefile
可以先make一次,编译出objs/nginx文件。
4)在Eclipse中建工程
A)选择->新建->Standard Make C++ Project
目录选定为解压出来的源码目录,可看到ngx_module_echo目录:
B)修改build选项:
右键工程名—>properties:
主要是把Build与Rebuild中的命名删除
C)配置运行项参数,打开Run configurations 对话框:
C/C++ Application中选择objs/nginx(如果没有,先make一次)
Argruments中填:-c /home/toon/workspace/nginx-0.7.67/conf/nginx.conf 指定运行时配置文件,下面还要修改此配置文件。
D)修改上一步指定的nginx.conf文件(以下为非完整文件):
5)就可以在Eclipse中debug你的module了。
curl http://127.0.0.1:8000/echo
然后在Eclipse中对ngx_module_echo/ngx_module_echo.c文件设置断点:
喜欢直接使用gdb的可以使用命令行进行调试,此等高人,也不用看本文了.
gdb --cd=/home/toon/workspace/nginx-0.7.67 --command=.gdbinit -q -nw -tty /dev/pts/4 -i mi1 /home/toon/workspace/nginx-0.7.67/objs/nginx -c /home/toon/workspace/nginx-0.7.67/conf/nginx.conf