记录 gdb 调试 nginx 的工作流程。
1. 视频
调试视频链接:gdb 调试 nginx
2. 安装
ubuntu 源码编译安装,可以从 nginx 官网 下载安装包。
- ubuntu 内核版本。
1
2
# uname -r
4.4.0-142-generic
- nginx 源码安装。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 删除旧的。
apt-get autoremove nginx
# 下载安装
wget https://nginx.org/download/nginx-1.20.1.tar.gz
tar zxf nginx-1.20.1.tar.gz
apt-get install libpcre3 libpcre3-dev
cd nginx-1.20.1
./configure --prefix=/usr/local/nginx
vim objs/Makefile
# 修改优化选项 -O ==> -O0
# CFLAGS = -pipe -O0 -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g
# 重新编译安装
make && make install
- nginx 版本号。
1
2
# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.20.1
3. 启动 nginx
1
2
3
4
5
6
7
8
# 启动 nginx
/usr/local/nginx/sbin/nginx
# 修改配置
vim /usr/local/nginx/conf/nginx.conf
# 修改配置后程序更新配置
/usr/local/nginx/sbin/nginx -s reload
3.1. gdb 调试
- 开启调试。
1
2
3
4
5
6
7
8
gdb /usr/local/nginx/sbin/nginx
# 设置 gdb 调试子进程模式。
set follow-fork-mode child
set detach-on-fork off
# 设置断点
b ngx_event_accept
# 运行
r
- 用 telnet 测试。
1
telnet 127.0.0.1 80