nginx编译和调试
nginx源码编译,依赖于pcre和zlib
下载源码后,通过./configure --help可以查看编译选项,为了增加gdb调试信息,使用./configure --with-cc-opt='-g -o0'和make CFLAGS="-g -o0"
为了方便调试可以启动一个worker进程
nginx对gdb也有辅助支持,用debug_points配置项:stop或者abort,表示在遇到严重错误的时候,
ngingx的进程可以stop住。如果是abort,可以设置生成core文件。
关于宏,宏默认是直接替换的,如果在编译的时候,将-g 改为--ggdb3可以保留宏,但是增大了可执行二进制文件。info macro NGX_OK/ macro expand NGX_OK/p NGX_OK。如果info 没有找到,可以list文件加载一下后,再去执行info命令。
编译的时候可以增加--with-debug,以便生成调试信息。
配置文件的错误日志: error-log logs/error.log debug_http或者其他参数,只打印自己想要的。
strace/pstack: strace -t -T -o -f -p显示进程调用;pstack显示调用栈。
一次性获得nginx的全部执行流程:system tap;-finstrument-functions addr2line.sh;
加桩调试,在代码中嵌入自己的桩函数进行调试。
自己写代码,封装http报文,构造nginx异常场景来进行观察。
转载于:https://blog.51cto.com/bosswanghai/1785037
nginx编译和调试相关推荐
- Nginx 附录C 模块编译,调试与测试
Nginx 附录C 模块编译,调试与测试 C.1 编译与安装 环境要求 操作系统:目前Nginx各版本在以下操作系统和平台测试通过: FreeBSD 3 - 10 / i386; FreeBSD 5 ...
- LNMP平台搭建之一:nginx编译安装
参考博客:https://www.cnblogs.com/zhang-shijie/p/5294162.html jack.zhang 一.环境说明 系统环境:centos6.5 [root@lo ...
- nginx 源码调试
nginx 源码调试 这段时间正在学习nginx源码,看到一贴子的提问 (帖子:http://www.oschina.net/question/2711991_2165566?p=1#AnchorAn ...
- LLVM Clang前端编译与调试
LLVM Clang前端编译与调试 iOS 关于编译 o 一.Objective-C 编译过程 o 为什么需要重新编译? o 编译步骤 o 二.编译步骤的详细说明 o 1.预处理 o 2.编译 o 词 ...
- 【Win7下Android native code的编译和调试】
光为这编译及调试环境就前后折腾了两三天,墙外找了很多教程,bill以为以下教程最为贴切 Using eclipse for android - cc Development Using eclipse ...
- 一份简单的在 Linux下编译及调试 C 代码的指南
摘要: 一份简单的在 Linux下编译及调试 C 代码的指南 对于Linux下的C程序员来说,几乎天天都会和Linux打交道.但在很多人的眼中,Linux是一个易用性极差.靠命令驱动的操作系统,根本无 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )
文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...
- Linux下Nginx编译安装后的开机自启动设置
Linux下Nginx编译安装后的开机自启动设置 一.查看当前Nginx启动状态 二.而配置Nginx相关服务文件 三 .设置nginx命令 四.设置开机启动 五.测试开机启动 一.查看当前Nginx ...
- Linux下Nginx编译安装过程详解
Linux下Nginx编译安装过程详解 一.Nginx介绍 二.Nginx源码下载 1.打开Nginx官网 2.下载官网的源码包 三.Nginx源码安装 1.解压源码包 2.安装开发包组及环境 3.编 ...
- 宝塔nginx文件服务器,宝塔面板nginx编译webdav模块 – 建立webdav服务器
要想Nginx支持WebDAV,需要手动添加http_dav_module和nginx-dav-ext-module模块.http_dav_module模块是nginx默认的模块,但是也需要手动编译. ...
最新文章
- Django介绍和虚拟环境(django特点、MVC、MVT、Django学习资料)
- 云服务器 ECS快速入门:远程连接 ECS 实例
- Servlet的初始化参数
- Load 和 DOMContentLoaded 区别
- 浅谈inode和block与磁盘性能的初级优化
- C/C++位域结构深入解析
- php json和数组,php数组和json数组之间的互相转化
- [九度][何海涛] 栈的压入压出
- 使用c#对xml文件进行解析 功能演示 161483724
- A Walk Through the Forest dijkstra(邻接矩阵)
- RabbitMQ和Kafka的显著差异(2)
- 理解python的类实例化_理解python的类实例化
- python中静态变量和静态方法_从静态变量引用静态方法
- Maven插件:versions-maven-plugin
- r语言列表添加元素_技术贴 | R语言:geom_smooth在散点图中添加多条回归直线
- JDK下载与安装教程
- 二十年经典港台电视剧回顾
- d3d11初窥(Introduction to 3D Game Programming with DirectX 11下载)
- Quorum区块链原理及其概念
- UOS 操作蓝牙、wifi开关
热门文章
- 修改表格字体颜色_为什么用格式刷无法匹配文字的字体和颜色?到底哪些特性可以匹配?...
- python捕获特定类型异常的保留字_python异常处理结构中用来捕获特定类型异常的保留字是_以下选项中Python用于异常处理结构中用来捕获特定类型的异常的保留字是......
- matlab三维矩阵_Matlab绘制三维表面模型说明
- mysql 加锁 索引_把MySQL中的各种锁及其原理都画出来
- PHP如何启动scrapy,php教程博客
- mysql数据库导入视图表失败_一个mysqldump导出失败的案例分析
- mariadb.zip压缩包解压后使用绿色db配置方法
- Linux中关机,重启,注销命令
- centos7 docker端口_docker相关知识
- 相机标定 棋盘格 图_【连载2.3.1】结构光系统标定