Hello!
2013/9/16 sun clare:
> 打扰下
> 现在我开发模块,还在使用输出日志的方式,尝试过gdb但是感觉效率也不太高,能不能分享一些你调试的经验,或者gdb的技巧,谢谢。
我在调试时最常使用我自己的 ddebug.h 调试头文件,特别是里面的 dd() 宏。你看过我的 Nginx 模块的代码的话,就会注意到它。
另外,我也较多使用 systemtap 进行动态追踪,而且一般结合使用我自己的 Test::Nginx 测试台,它集成了 systemtap:
http://search.cpan.org/perldoc?Test%3A%3ANginx
另外,你可能也会对我的 Nginx Systemtap Toolkit 感兴趣:
https://github.com/agentzh/nginx-systemtap-toolkit
同时,对于内存方面的问题,我较频繁地使用 valgrind memcheck 工具来分析,同样也是结合 Test::Nginx
测试台,因为它也集成了 valgrind 自动对测试用例进行体检的功能。
我在开发过程中极少使用 gdb,但在分析线上环境产生的 core dump 文件时几乎是唯一的选择。所以我们也搞了一个 nginx gdb utils:
https://github.com/agentzh/nginx-gdb-utils
供参考。
同时抄送给 openresty 中文邮件列表:https://groups.google.com/group/openresty
建议你也加入此列表并在那里交流这样的问题。谢谢合作!
Best regards,
-agentzh