1. nginx源码编译,依赖于pcre和zlib

  2. 下载源码后,通过./configure --help可以查看编译选项,为了增加gdb调试信息,使用./configure --with-cc-opt='-g -o0'和make CFLAGS="-g -o0"

  3. 为了方便调试可以启动一个worker进程

  4. nginx对gdb也有辅助支持,用debug_points配置项:stop或者abort,表示在遇到严重错误的时候,

    ngingx的进程可以stop住。如果是abort,可以设置生成core文件。

  5. 关于宏,宏默认是直接替换的,如果在编译的时候,将-g 改为--ggdb3可以保留宏,但是增大了可执行二进制文件。info macro NGX_OK/ macro expand NGX_OK/p NGX_OK。如果info 没有找到,可以list文件加载一下后,再去执行info命令。

  6. 编译的时候可以增加--with-debug,以便生成调试信息。

  7. 配置文件的错误日志: error-log logs/error.log debug_http或者其他参数,只打印自己想要的。

  8. strace/pstack:  strace -t -T -o -f -p显示进程调用;pstack显示调用栈。

  9. 一次性获得nginx的全部执行流程:system tap;-finstrument-functions addr2line.sh;

  10. 加桩调试,在代码中嵌入自己的桩函数进行调试。

  11. 自己写代码,封装http报文,构造nginx异常场景来进行观察。

转载于:https://blog.51cto.com/bosswanghai/1785037

nginx编译和调试相关推荐

  1. Nginx 附录C 模块编译,调试与测试

    Nginx 附录C 模块编译,调试与测试 C.1 编译与安装 环境要求 操作系统:目前Nginx各版本在以下操作系统和平台测试通过: FreeBSD 3 - 10 / i386; FreeBSD 5 ...

  2. LNMP平台搭建之一:nginx编译安装

    参考博客:https://www.cnblogs.com/zhang-shijie/p/5294162.html   jack.zhang 一.环境说明 系统环境:centos6.5 [root@lo ...

  3. nginx 源码调试

    nginx 源码调试 这段时间正在学习nginx源码,看到一贴子的提问 (帖子:http://www.oschina.net/question/2711991_2165566?p=1#AnchorAn ...

  4. LLVM Clang前端编译与调试

    LLVM Clang前端编译与调试 iOS 关于编译 o 一.Objective-C 编译过程 o 为什么需要重新编译? o 编译步骤 o 二.编译步骤的详细说明 o 1.预处理 o 2.编译 o 词 ...

  5. 【Win7下Android native code的编译和调试】

    光为这编译及调试环境就前后折腾了两三天,墙外找了很多教程,bill以为以下教程最为贴切 Using eclipse for android - cc Development Using eclipse ...

  6. 一份简单的在 Linux下编译及调试 C 代码的指南

    摘要: 一份简单的在 Linux下编译及调试 C 代码的指南 对于Linux下的C程序员来说,几乎天天都会和Linux打交道.但在很多人的眼中,Linux是一个易用性极差.靠命令驱动的操作系统,根本无 ...

  7. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  8. Linux下Nginx编译安装后的开机自启动设置

    Linux下Nginx编译安装后的开机自启动设置 一.查看当前Nginx启动状态 二.而配置Nginx相关服务文件 三 .设置nginx命令 四.设置开机启动 五.测试开机启动 一.查看当前Nginx ...

  9. Linux下Nginx编译安装过程详解

    Linux下Nginx编译安装过程详解 一.Nginx介绍 二.Nginx源码下载 1.打开Nginx官网 2.下载官网的源码包 三.Nginx源码安装 1.解压源码包 2.安装开发包组及环境 3.编 ...

  10. 宝塔nginx文件服务器,宝塔面板nginx编译webdav模块 – 建立webdav服务器

    要想Nginx支持WebDAV,需要手动添加http_dav_module和nginx-dav-ext-module模块.http_dav_module模块是nginx默认的模块,但是也需要手动编译. ...

最新文章

  1. Django介绍和虚拟环境(django特点、MVC、MVT、Django学习资料)
  2. 云服务器 ECS快速入门:远程连接 ECS 实例
  3. Servlet的初始化参数
  4. Load 和 DOMContentLoaded 区别
  5. 浅谈inode和block与磁盘性能的初级优化
  6. C/C++位域结构深入解析
  7. php json和数组,php数组和json数组之间的互相转化
  8. [九度][何海涛] 栈的压入压出
  9. 使用c#对xml文件进行解析 功能演示 161483724
  10. A Walk Through the Forest dijkstra(邻接矩阵)
  11. RabbitMQ和Kafka的显著差异(2)
  12. 理解python的类实例化_理解python的类实例化
  13. python中静态变量和静态方法_从静态变量引用静态方法
  14. Maven插件:versions-maven-plugin
  15. r语言列表添加元素_技术贴 | R语言:geom_smooth在散点图中添加多条回归直线
  16. JDK下载与安装教程
  17. 二十年经典港台电视剧回顾
  18. d3d11初窥(Introduction to 3D Game Programming with DirectX 11下载)
  19. Quorum区块链原理及其概念
  20. UOS 操作蓝牙、wifi开关

热门文章

  1. 修改表格字体颜色_为什么用格式刷无法匹配文字的字体和颜色?到底哪些特性可以匹配?...
  2. python捕获特定类型异常的保留字_python异常处理结构中用来捕获特定类型异常的保留字是_以下选项中Python用于异常处理结构中用来捕获特定类型的异常的保留字是......
  3. matlab三维矩阵_Matlab绘制三维表面模型说明
  4. mysql 加锁 索引_把MySQL中的各种锁及其原理都画出来
  5. PHP如何启动scrapy,php教程博客
  6. mysql数据库导入视图表失败_一个mysqldump导出失败的案例分析
  7. mariadb.zip压缩包解压后使用绿色db配置方法
  8. Linux中关机,重启,注销命令
  9. centos7 docker端口_docker相关知识
  10. 相机标定 棋盘格 图_【连载2.3.1】结构光系统标定