1. gdb
命令:gdb /path/exe pid
作用:调试运行中的进程。进程运行异常时,可以通过该方法,查看进程当前的状态。
适用场景:①进程运行中但服务终止 ②死锁
使用:
进入gdb后,可以通过:
① bt
查看当前进程状态
② info thread
查看所有线程
③ thread
查看当前线程
④ thread no
切换线程,no为目标线程号
2. strace
命令:strace -p pid
作用:跟踪系统调用
适用场景:CPU 100% 或 死循环
示例:
服务器异常,CPU 100%
必定有死循环,然而gdb效果不理想。
strace -p $(pidof jpush-online)
原来是系统配置问题,nofile限制造成accept调用失败,引发死循环。
同理,跟踪库调用,使用ltrace -p pid