linux服务器gcore排查问题步骤

linux服务器gcore排查问题步骤1 ps ef grep E PID xxx 获取进程号 xxx 为可执行的进程 例如获取到的进程号 1234 2 gcore 1234 得到 core 1234 文件 3 gdb home admin bin xxx core 1234 进入 gdb 环境 xxx 为可执行程序 对应 1 的进程 4 source test

大家好,我是讯享网,很高兴认识大家。
  • 1. ps -ef|grep -E "PID|xxx"  获取进程号,xxx为可执行的进程,例如获取到的进程号1234
  • 2. gcore 1234 得到core.1234文件
  • 3. gdb /home/admin/bin/xxx core.1234 进入gdb环境,xxx为可执行程序,对应1的进程
  • 4. source test.gdb 引入外部编写的gdb脚本,test.gdb脚本内容例
define dump_connection set $i=0 while $i < 1000 if ngx_cycle->connections[$i].sockaddr != 0 if((struct sockaddr_in*)ngx_cycle->connections[$i].sockaddr)->sin_port == 0x9007 print $i set $s =(ngx_rtmp_session_t*)ngx_cycle->connections[$i]->data print $s end end set $i=$i+1 end end

讯享网

其中0x9007 即 790端口,为十进制的1936端口

  • 5. 执行dump_connection
  • 6. 找到变量打印,p *$18->port 或者p/x $18显示内存的值,其中x/10xb 十六进制表示10个连续字节 x/235c表示表示235个字符,等等。
  • 7. 排查问题

bt 看看堆栈

data -d @ 看看时间戳


讯享网

info symbol 0x008f625c 看该内存对应的函数

dmesg -T 看看硬件设备

cat /var/log/mcelog 看看系统信息

小讯
上一篇 2025-04-05 18:24
下一篇 2025-01-14 09:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/42890.html