nginx第二章源代码调试输出方法(本人使用方面)

时间:16-12-07 来源: 作者: 点击:

nginx第二章源代码调试输出方法(本人使用方面)

刚开始把nginx安装好后,我就对其源代码产生了浓厚兴趣,试图通过加入printf函数输出自己的调试信息来查看整个nginx的运行流程。最后发现自己加入的printf根本不管用,屏幕上没有任何信息。

后来发现程序重定向了STDOUT文件符到/dev/null里了,所有看不到任何输出信息。原因找到后,我们只要把重定向函数dup2注释即可(在os/unix/ngx_daemon.c的45行左右)。

以上注释完成后,你就可以在程序的任何位置加入你自己的调试信息,方便你分析nginx源码。除了改动文件,接下来肯定要重新编译源代码。去到nginx源码根目录下,执行make,makeintall就可以获取最新的nginx可执行文件,运行启动即可看到自己所加的最新调试信息。

采取以上调试方法简单方便,易于理解。建议在调试源码时最好单进程启动,你可以看下/conf/nginx.conf文件里work_processes值是否为1,为1只是单进程。如果采取多进程启动,打印的日志势必会杂乱,对于理清程序的来龙去脉是不利的。

最后祝你调试愉快。

nginx 调试 输出 STDOUT dup2

> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章

  • 自己动手写操作系统第二章——Bochs调试及相关仿真工具的使用方法

    关键词:bochs,自己动手写操作系统 一 安装具有调试功能的bochs 注意:安装bochs以后,常常发现bochs不能调试,原因如下: $ sudo apt-get install vgabios bochs bochs-x bximage 敲入这样一行命令,不一会儿就装好了.缺点:没有调试功能的,这显然不能满足我们的需要,所以最好的方法还是从源代码安 ...

  • Upgrading to Java 8——第二章 Method References(方法引用)

    概述 很多java 方法会使用函数式接口作为参数.例如,java.util.Arrays类中的一个sort方法,就接受一个Comparator接口,它就是一个函数式接口,sort方法的签名如下: public static T[] sort(T[] array, Comparator<? super T> comparator) 相对于传递一个 ...

  • STL第二章vector的使用方法

    如果仅仅把vector当作数组来使用那么将会是极大的浪费,以下是effective stl中的一些条款,可以帮我们更高效的使用STL. ①当使用new动态数组的时候,最好能考虑是不是可以使用 vector或者string来代替. ②在使用vector之前,最好reserve一下vector的大小.这样可以减少重新分配内存的次数 1.reserve的大小可以根 ...

  • 第二章排错的工具:调试器Windbg(上)

    第二章排错的工具:调试器Windbg(上)

    感谢博主 <Windows用户态程序高效排错>第二章主要介绍用户态调试相关的知识和工具.本文主要讲了排错的工具:调试器Windbg. 第二章 汇编.异常.内存.同步和调试器——重要的知识点和神兵利器 这一部分主要介绍用户态调试相关的知识和工具.包括:汇编 ...

  • 第二章排错的工具:调试器Windbg上

    第二章排错的工具:调试器Windbg上

    感谢博主 <Windows用户态程序高效排错>第二章主要介绍用户态调试相关的知识和工具.本文主要讲了排错的工具:调试器Windbg. 第二章 汇编.异常.内存.同步和调试器 --重要的知识点和神兵利器 这一部分主要介绍用户态调试相关的知识和工具.包括:汇编.异常 ...

  • 《LINUX3.0内核源代码分析》第二章:中断和异常(2) 分类: linux_内核_中断 20130710 14:46 347人阅读 评论(0) 收藏

    原文地址:<LINUX3.0内核源代码分析>第二章:中断和异常(2)作者:xiebaoyou 摘要:本文主要讲述linux如何处理ARM cortex A9多核处理器的中断处理过程的C函数部分.主要是在中断上下文和线程上下文处理ISR的过程. 法律声明:<LINUX3.0内核源代码分析>系列文章由谢宝友([email protected] ...

  • Linux设备驱动程序之读书笔记——第二章调试技术中的printk

    Linux设备驱动程序之读书笔记(二) --第二章调试技术中的printk在Linux中系统信息的显示有以下3种情况:1.如果系统中只运行klogd,那么可以通过klogd -c 重新启动klogd并设置console_loglevel,然后小于console_loglevel的所有信息都会打印到控制台:2.如果系统中只运 ...

  • 《LINUX3.0内核源代码分析》第二章:中断和异常(4) 分类: linux_内核_中断 20130711 09:25 747人阅读 评论(0) 收藏

    原文地址:<LINUX3.0内核源代码分析>第二章:中断和异常(4)作者:xiebaoyou 摘要:本文主要讲述linux如何处理ARM cortex A9多核处理器的中断延迟处理部分.主要包括工作队列. 法律声明:<LINUX3.0内核源代码分析>系列文章由谢宝友([email protected])发表于 ...

  • 猜你喜欢

  • 转载javascript深入理解js闭包

    一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作 ...

  • Ubuntu下为Firefox安装Adobe Flash Player

    使用环境: OS:Ubuntu 12.04 LTS Browser ...

  • 财富解析:库克正如何改变苹果

    <财富>: 苹果仍然是苹果,只是变得更开放,更协作. 去年八月从乔布斯手中接手 ...

  • 宏(录制)

    1,录制宏保存的位置: A,当前工作薄:默认选项,表示宏只在当前的工作薄内有效. B,新建 ...

  • activemq下载安装配置

    ?path=/ac ...

  • 09 12 15 JavaWeb 学习笔记

    我们来细细分析一下上面的实例 package com.cric.servlet; //把类 ...

  • 标签云

    声明:本文转载于网络,文章链接:http://www.nd9p.com/8549.html