您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页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.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 @1709193878 看看时间戳

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

dmesg -T 看看硬件设备

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务