由于实际情况没有进行截图,所以这里的截图已测试环境的情况截图说明
测试分析流程思路为:进程ID->线程ID->线程函数调用栈->函数耗时和调用统计->源代码分析
1.通过top命令找到可疑进程PID,记录进程PID=3122
top
2.找出消耗资源最高的线程
top -H -p 3122
- 使用gstack命令查看进程中各线程的函数调用栈
gstack 3131 > gstack.log
(1) 查看gstack.log
vi gstack.log
或
cat gstack.log
说明:由于本虚拟机未部署任何程序,所以找不到任何关于程序进程的堆栈信息
(2)生成core文件,供调试使用:
–该命令生成core文件core.14094,等待程序执行完毕,如下图
(3)用gdb调试core文件,并线程切换到1号线程(说明:此处根据图3来确定的,实际情况可能是其他线程号,注意!!!)
执行命令:
–进入gdb调试模式下
gdb
–根据线程查看进程信息
thread 1
–查看堆栈信息
where
注意:由于没有任何程序运行,可能未进行堆栈的消耗,所以为查找到相关信息!!!!!
备注: 查看这个线程所有系统调用
查看每个系统调用花费的时间及返回值
执行命令:strace -p 3131或strace -T -r -p 3131
strace -p 3131
或
strace -T -r -p 3131
执行如下命令可以查看汇总信息:
strace -T -r -c -p 3131
strace -T -r -c -p 3131