首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 命令(137)—— strace 命令

1.命令简介 strace 命令是一个集诊断、调试、统计于一体的工具,我们可以使用 strace 对程序的系统调用和信号传递的跟踪结果来对程序进行分析,以达到解决问题或者是了解程序工作过程的目的。...当然strace 与专业的调试工具比如说 gdb 之类的是没法相比的,因为它不是一个专业的调试器。 strace 的最简单的用法就是执行一个指定的命令,在指定的命令结束之后它也就退出了。...在命令执行的过程中,strace 会记录和解析命令进程的所有系统调用以及这个进程所接收到的所有的信号值。...为命令设置环境变量 -E VAR 从继承的环境变量列表中删除变量 VAR,然后将其传递给命令 4.常用示例 现在我们做一个很简单的程序来演示 strace 的基本用法。...具体用法如下: strace -p PID ---- 参考文献 [1] strace(1) manual [2] Linux 命令大全.strace [3] 马昌伟.strace命令详解

7.9K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    39.Linux应用调试-strace命令

    1.strace简介 strace常用来跟踪进程执行时的系统调用和所接收的信号。...通过strace可以知道应用程序打开了哪些文件,以及读写了什么内容,包括消耗的时间以及返回值等 2.安装strace命令 首先需要以下两个文件: strace-4.5.15.tar.bz2                   .../configure --host=arm-linux CC=arm-linux-gcc //配置configure #make...//生成strace命令文件 然后将strace命令文件,放入我们开发板的根目录/bin中,便能使用了 #cp strace /nfs_root/bin/ //nfs_root:开发板的...nfs系统根目录 3.strace命令使用 常用参数如下所示: -o    指定跟踪信息的输出文件         -t     记录跟踪信息的时间,以S为单位 -tt    记录跟踪信息的时间,以uS

    1.1K60

    35.Linux应用调试-strace命令

    1.strace简介   strace常用来跟踪进程执行时的系统调用和所接收的信号。...通过strace可以知道应用程序打开了哪些文件,以及读写了什么内容,包括消耗的时间以及返回值等 2.安装strace命令   首先需要以下两个文件:   strace-4.5.15.tar.bz2   .../configure --host=arm-linux CC=arm-linux-gcc //配置configure #make...//生成strace命令文件   然后将strace命令文件,放入我们开发板的根目录/bin中,便能使用了 #cp strace /nfs_root/bin/ //nfs_root...:开发板的nfs系统根目录 3.strace命令使用   常用参数如下所示: -o 指定跟踪信息的输出文件 -t 记录跟踪信息的时间,以S为单位 -tt 记录跟踪信息的时间,以uS为单位 4.实例

    1K20

    强大的strace命令用法详解

    strace是什么? 按照strace官网的描述, strace是一个可用于诊断、调试和教学的Linux用户空间跟踪器。...我们回到strace的使用上来。strace有两种运行模式。 一种是通过它启动要跟踪的进程。用法很简单,在原本的命令前加上strace即可。...比如我们要跟踪 "ls -lh /var/log/messages" 这个命令的执行,可以这样: strace ls -lh /var/log/messages 另外一种运行模式,是跟踪已经在运行的进程...strace常用选项: 从一个示例命令来看: strace -tt -T -v -f -e trace=file -o /data/log/strace.log -s 1024 -p 23489 -tt...定位:进程还在运行时,通过ps命令获取其pid, 假设我们得到的pid是24298 strace -o strace.log -tt -p 24298 查看strace.log, 我们在最后2行看到如下内容

    1.6K30

    linux下 debug 工具 strace 应用之【查找命令依赖库文件】

    Stracelinux系统中一个用来跟踪系统调用的简易工具,它最简单的用途就是跟踪一个程序整个生命周期里所有的系统调用,并把调用参数和返回值以文本的方式输出 当然它还可以做更多的事情: strace...strace 可以记录系统调用的次数,时间,成功和失败的次数。 strace 可以跟踪发给进程的信号。...strace 可以通过pid附加到任何正在运行的进程上 问题背景: centos下执行rpm命令时提示缺失 libplds4.so 的库文件,这导致系统命令执行失败 root@BJ-CentOS7 ~...通过 strace 命令追踪 rpm 命令执行过程,发现这里调用的文件绝对路径是 /lib64/libplds4.so ,原因是 /lib64 目录是 /usr/lib64 软链过来的,find 命令默认不查找软链目录...使用 strace 命令追踪系统命令执行调用的系统文件路径(参数 -e open 用于观察目前进程正引用哪些文件) root@BJ-CentOS7 ~ # strace -e open rpm -qa

    2.1K20

    strace(1) command

    1.命令简介 strace 用于跟踪系统调用和信号。...当然 strace 与专业的调试工具比如说 gdb 之类的是没法相比的,因为它不是一个专业的调试器。 strace 的最简单的用法就是执行一个指定的命令,在指定的命令结束之后它也就退出了。...在命令执行的过程中,strace 会记录和解析进程的所有系统调用以及这个进程所接收到的所有信号值。...为命令设置环境变量 -E VAR 从继承的环境变量列表中删除变量 VAR,然后将其传递给命令 4.常用示例 现在我们做一个很简单的程序来演示 strace 的基本用法。...具体用法如下: strace -p PID ---- 参考文献 strace(1) - Linux manual page - man7.org Linux 命令大全.strace 马昌伟.strace

    19320

    strace命令不可信任的一种情况

    Linux中,在客户环境中诊断问题的一个非常有用的命令就是strace,可以利用其查看程序执行过程中的系统调用,调用库,每一个系统调用的时间,以及接收到的信号等等,在这里就不详细阐述strace...然后通过strace查看进程的执行过程中的ioctl系统调用是否有异常。...奇怪的问题刚好就产生在这里,产品应用程序中的调用的ioctl的第二个参数为"SIOCXXXXXXX" ("SIOCXXXXXXX" 为产品内核模块实现的一个命令)。...通过实验,在产品内核模块中收到的命令也为"SIOCXXXXXXX" (即0x40105305)。 经过诸多尝试,最后一个猜想,莫非strace打印出来的"CDROMREADTOCHDR"有误?...通过上面的最后一句,也可以看出,strace的decode也不一定是完全正确的。

    36920

    strace详解及实战

    来执行历史记录里的命令,所以要使用\\....-u username 以username 的UID和GID执行被跟踪的命令 其中常用的有: -p 跟踪指定的进程 -o filename 默认strace将结果输出到stdout。...命令,就很牛了,而现在大家基本都知道 strace 了,如果你遇到性能问题求助别人,十有八九会建议你用 strace 挂上去看看,不过当你挂上去了,看着满屏翻滚的字符,却十有八九看不出个所以然。...Linux 操作系统有很多用来跟踪程序行为的工具,内核态的函数调用跟踪用「strace」,用户态的函数调用跟踪用「ltrace」,所以这里我们应该用「strace」: shell> strace -p...查询业务代码看到了 exec 函数,通过如下命令验证它确实会导致 clone 系统调用: shell> strace -eclone php -r 'exec("ls");' 最后再考大家一个题:如果我们用

    1.7K30

    通过Strace定位故障原因

    闲言碎语不要讲,轮到Strace出场了,统计一下各个系统调用的耗时情况: shell> strace -c -p $(pgrep -n php-cgi) % time seconds usecs...100.00 0.077145 13066 118 total 看上去「brk」非常可疑,它竟然耗费了三成的时间,保险起见,单独确认一下: shell> strace...0x1f98000 brk(0x1fd8000) = 0x1fd8000 brk(0x2018000) = 0x2018000 说明:在Strace...shell> strace -T -p $(pgrep -n php-cgi) 2>&1 | grep -B 10 brk stat("/path/to/script.php", {...}) = 0...直接把它们都禁用了,看看服务器是否能缓过来,或许大家觉得这太鲁蒙了,但是特殊情况必须做出特殊的决定,不能像个娘们儿似的优柔寡断,没过多久,服务器负载恢复正常,接着再统计一下系统调用的耗时: shell> strace

    57620

    linux objdump命令,Linux objdump命令

    linux常用命令–开发调试篇 前言 Linux常用命令中有一些命令可以在开发或调试过程中起到很好的帮助作用,有些可以帮助了解或优化我们的程序,有些可以帮我们定位疑难问题.本文将简单介绍一下这些命令...u012247418/article/details/80 … Linux 常用命令:开发调试篇 前言 Linux常用命令中有一些命令可以在开发或调试过程中起到很好的帮助作用,有些可以帮助了解或优化我们的程序...示例程序 我们用一个小程序,来 … linux grep命令 linux grep命令1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep...全称是Global Regular Expressio … Linux常用命令(一) Linux常用命令 1. pwd查看当前路径(Print Working Directory) [root@CentOS...;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 … Linux paste命令 Linux paste命令用于合并文件的列. paste指令会把每个文件以列对列的方式

    28.2K31

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券