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默认的模块,但是也需要手动编译. ...
最新文章
- 剪切粘贴时总是上次的内容_【Procreate 迷你课堂】#4 三指快速拷贝及粘贴
- spring对事务的控制 AOP
- mysql 社区版密码如何修改_如何用优雅的方法修改MySQL root密码
- NAND Flash 芯片测试
- matlab求条件概率密度_数值优化方法—迭代法amp;终止条件
- JAVA---集合子接口之Set
- 台式计算机M丅BF是什么,台式机主板的 BIOS ID 代码
- 神经网络 和 NLP —— 语言模型和词向量
- Mac 消除系统更新小红点
- 计算机应用基础测试题的答案2015,在线测试卷--计算机应用基础(题目+答案)
- 贸易融资名词解析:出口押汇与进口押汇
- 如何在linux下安装rar软件,Linux下安装使用RAR压缩软件的方法
- 三、nginx信号控制
- NPDP产品经理认证:产品开发项目的风险评估
- 电脑使用技巧(office 套件英文版切换为中文)
- 手提电脑安装双屏后没有声音输出
- ios和android耗电,安卓手机为什么比苹果手机更耗电?
- Camera,音频录制与Vitamio框架
- Pixel-level Extrinsic Self Calibration of High Resolution LiDAR and Camera in Targetless Environment
- 反感料理包的真正原因,正在被“恶心”掩盖
热门文章
- 用JAVA打出的计算机_如何用Java代码操作计算机文件?
- python打印字符串所在行_python打印文件中某个字符串的前几行
- 怎么发文件到服务器异常,大神帮我看看,我用async-http框架上传文件到服务器发生异常...
- windows关于python虚拟机的设置以及安装使用virtualenv
- mysql grant 用户权限
- 文字发光_PS教程来喽,看PS大神如何使用PS制作发光字效果,果断收藏一下
- php中循环用冒号,for循环条件里冒号是什么作用?
- 基于Yolov5目标检测的物体分类识别及定位(二) -- yolov5运行环境搭建及label格式转换
- Python 中的 if __name__ == '__main__'
- kernel---1