gdb与nginx

本文介绍了如何使用gdb调试nginx的core dump文件。首先确保编译时加入-g选项,然后通过gdb加载core文件和nginx可执行文件。调试过程中,设置断点、查看程序行、单步执行、打印变量值和查看调用栈等步骤,帮助理解程序运行状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前篇:

由于gdb需要gcc的时候加上-g参数,这样生成的文件才能使用gdb调试,因此我们要对源码做一下小改动

修改auto/cc/conf文件

ngx_compile_opt="-c"

变为

ngx_compile_opt="-c -g"

步奏:

假设core文件为core.1111,可执行文件为nginx

 1、执行命令 gdb core.1111

       如果有错误,提示core.1234 : not in executable format: File format not recognized,则执行第二步,否则跳过

2、file ./sbin/nginx

      提示 Reading symbols from test...done.

3、l   ,显示程序行

4、b 5

   Breakpoint 1 at 0x804ac5a: file src/core/nginx.c, line 5.
	//设置断点   

5、r (run)

      运行程序,会在停在5行。如果没有断点会程序会直接运行完,如下

run
The program being debugged has been started already.
Start it from the beginning? (y or n) yes

6、s(step)/n(next)

      下一步,用s(step),如果有函数,会进入函数

       如果用n(next) 就不会进入函数中,只会运行当前调用函数的行

7、p a[0]

      print 打印值

8、bt 查看栈

其它命令,以后添加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值