linux调试工具 strace 和pstack 编译及使用介绍

本文介绍了Linux调试工具strace和pstack的用途,strace用于跟踪系统调用和信号,pstack用于显示进程的栈跟踪。详细讲解了strace的交叉编译过程,并提供了使用示例,包括strace的常用选项和pstack的命令用法。文章还附带了pstack脚本源码。
摘要由CSDN通过智能技术生成

一、简介

     1、strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。

     2、pstack是一个基于GDB的脚本命令,可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。文末附pstack脚本源码。

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

 

二、strace 交叉编译

    strace 源码下载地址为   :  https://sourceforge.net/projects/strace/files/strace/

下面以strace-4.11 ,marvell 78k 平台为例,介绍下交叉编译配置编译步骤。

1、配置

./configure --host=arm-marvell-linux-gnueabi CC=arm-marvell-linux-gnueabi-gcc LD=arm-marvell-linux-gnueabi-ld --prefix=/work/app_project/strace/strace-4.11/_install

2、编译

make

make install

 

三、使用说明

1、pstack

     pstack是一个基于GDB的脚本命令,可显示每个进程的栈跟踪。pstack 命令必须由相应进程的属主或 root 运行。可以使用 pstack 来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的 PID。

         pstack  

注:如果gdb命令不在标准路径  /usr/bin/下,使用前需要先编辑 pstack脚本,写入正确的gdb路径

2、strace

      strace主要用来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等,一般使用格式为:

            strace -o trace.txt -Ttt  -f -p 

 

常用选项介绍如下:

-o filename

将strace的输出写入文件filename

-p pid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值