linux查看追踪进程栈

根据进程名获得pid

pidof 进程名

查看进程树

pstree -s -p  5280

linux中根据进程的PID值来查找执行文件的及其路径

lsof -p PID

Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。

ll /proc/PID

cwd符号链接的是进程运行目录;

exe符号连接就是执行程序的绝对路径;

cmdline就是程序运行时输入的命令行命令;

environ记录了进程运行时的环境变量;

fd目录下是进程打开或使用的文件的符号连接。

根据pid查看进程名

grep "Name:" /proc/5884/status

strace、ltrace、sar

strace跟踪程序使用的底层系统调用,可输出系统调用被执行的时间点以及各个调用耗时;而ltrace用来 跟踪进程调用库函数的情况。pstack工具对指定PID的进程输出函数调用栈。

strace -f -o vim.strace vim: 跟踪vim及其子进程的运行,将输出信息写到文件vim.strace

  -f :除了跟踪当前进程外,还跟踪其子进程。

  -o file :将输出信息写到文件file中,而不是显示到标准错误输出(stderr)。

  -p pid :绑定到一个由pid对应的正在运行的进程。此参数常用来调试后台进程。

ltrace -p 234: 跟踪一个pid为234的已经在运行的进程

strace在跟踪系统调用的时候不需要动态库,而ltrace是根据动态库来分析程序运行的.ltrace只能跟踪动态库,不能跟踪静态库.

ltrace与strace都可以指定PID,即对运行中的程序进行跟踪.

ltrace -p PID与strace -p PID

ltrace与strace都可以跟踪程序fork或clone子进程.

ltrace是用-f参数,而strace是用-f(fork/clone)和-F(vfork).

anzhihe安志合个人博客,版权所有丨 如未注明,均为原创 丨转载请注明转自:https://chegva.com/2573.html | ☆★★每天进步一点点,加油!★★☆

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注