阅读源码的最好方式就是跟踪调试代码,这里介绍了如何利用GDB调试nginx的配置和步骤。
修改配置文件
修改nginx.conf:
#user nobody; master_process off; daemon off;
daemon off;表示关闭守护进程模式,这样就免除了用GDB跟踪fork出的子进程了。如果默认启用守护进程,标准输出是被关闭的。因此关闭守护进程模式能够利用printf方便查看变量的值。
master_process off;表示用master进程自身来处理请求。
调试代码
调试nginx和调试简单的单文件程序基本相同,只是在设置断点时有点差别。 在函数func_name处设置断点:`break func_name`,函数可以用<tab>键补全。 在file_name.c文件的第line行设置断点:`break file_name.c:line` 然后把代码跑起来就OK了,最常用的命令是backtrace,简写成bt。够简单吧,之后nginx的运行就都在你的掌控之中。<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
以上就介绍了用GDB调试nginx,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。










