全国服务热线:400-6263-721

位置:石家庄IT培训学院 > 学校动态 > 分析Linux 进程的方法有哪些

分析Linux 进程的方法有哪些

来源:石家庄IT培训学院时间:2020/8/3 11:02:34

       分析Linux进程的方法有哪些?ps查看进程id,看进程还在不在以及进程状态,在的话strace、psstack看下进程当前信息,是不是卡死在哪个位置,对比各帧后调用信息找到异常点,如进程不在有corefile文件,直接上gdb查看corefile信息,其他疑难杂症怀疑进程状态信息的时候,看/proc/pid下面的进程状态信息。
       分析Linux进程的方法
       1、strace
       tracesystemcallsandsignals跟踪进程内部的系统调用和信号
       什么是系统调用?系统调用,指运行在「用户态」的程序向操作系统「内核态」请求需要更高权限运行的服务,系统调用提供用户程序与操作系统之间的接口。
       strace后面跟着启动一个进程,可以跟踪启动后进程的系统调用和信号,这个命令可以看到进程执行时候都调用了哪些系统调用,通过指定不同的选项可以输出系统调用发生的时间,精度可以到微秒,甚至还可以统计分析系统「调用的耗时」,这在排查进程假死问题的时候很有用,能帮你发现进程卡在哪个系统调用上。已经在运行的进程也可以指定-p参数加pid像gdbattach那样附着上去跟踪。
       2、pstack
       printastacktraceofarunningprocess打印出运行中程序的堆栈信息。

       执行命令pstackpid你能看到当前线程运行中的堆栈信息,其中的pid可用之前的ps命令获得,pstack可以看到进程内启动的线程号,每个进程内线程的「堆栈」内容也能看到。

石家庄IT培训学校

       3、pstree
       displayatreeofprocessespstree按树形结构打印运行中进程结构信息,可以直观的查看进程和它启动的线程的关系,并能显示进程标识。
       4、gdb
       gdb是GNU开发的gcc套件中Linux下程序调试工具,你可以查看程序的堆栈、设置断点、打印程序运行时信息,甚至还能调试多线程程序,功能十分强大。在这里把gdb当成一个命令来讲有点大材小用。
       要用gdb调试C/C++程序首先编译的时候要加-g选项,g++-gtest.cpp-otest这样生成的程序就可以用gdb来调试啦。
       可以直接用gdb启动程序调试,命令:gdbprog
       用gdb附着到一个已经启动的进程上调试也可以。命令:gdbprogpid
       程序崩溃之后参数corefile也可以用gdb调试,看看程序死掉之前留了什么遗言(堆栈信息)给你。命令:gdbprogcorefile,这里有一点需要注意,有些Linux
       系统默认程序崩溃不生成corefile,这时你需要ulimit-cunlimited这样就能生成corefile了。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1995/news/231658/违者必究! 以上就是石家庄IT培训学院 小编为您整理 分析Linux 进程的方法有哪些的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721