gdb实践(1): 进程CPU 100%排查

当进程出现CPU 100%的情况且无coredump时,可以借助gdb进行调试。通过编写CPU 100%的测试程序并使用gdb attach到进程PID,查看堆栈信息,从而定位问题。在示例中,简单的测试程序快速定位到了死循环的代码行。复杂情况则需要进一步跟踪堆栈。此外,还可以使用strace工具辅助调试。
摘要由CSDN通过智能技术生成

       进程CPU 100%卡在那里没反应了,这时候没有coredump的文件分析,但可以通过强大的gdb调试。

       下面写了一个简单的CPU 100%的死循环测试程序(t.c):

        

        编译运行,发现程序迟迟没有执行结束:

        

        使用top命令查看了一下,./a.out的可执行程序已经CPU 100%了:

         

         这个时候用gdb attach +进程PID,登录CPU 100%的进程,查看当前它调用的堆栈,正在执行什么操作,例如调试a.out:

         

         像这个程序比较简单,一下子就定位到第16行的死循环。复杂的可以跟踪堆栈信息。退出进程登录使用detach命令。另外还有strace工具可以调试CPU 100%的问题,暂不在本文介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值