`

用strace调试linux 程序

 
阅读更多

<strong>安装</strong>
yum install strace -y
<strong>参数说明:</strong>
-c 统计每一系统调用的所执行的时间,次数和出错的次数等.
-d 输出strace关于标准错误的调试信息.
-f 跟踪由fork调用所产生的子进程.
-ff 如果提供-o filename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号.
-F 尝试跟踪vfork调用.在-f时,vfork不被跟踪.
-h 输出简要的帮助信息.
-i 输出系统调用的入口指针.
-q 禁止输出关于脱离的消息.
-r 打印出相对时间关于,,每一个系统调用.
-t 在输出中的每一行前加上时间信息.
-tt 在输出中的每一行前加上时间信息,微秒级.
-ttt 微秒级输出,以秒了表示时间.
-T 显示每一调用所耗的时间.
-v 输出所有的系统调用.一些调用关于环境变量,状态,输入输出等调用由于使用频繁,默认不输出.
-V 输出strace的版本信息.
-x 以十六进制形式输出非标准字符串
-xx 所有字符串以十六进制形式输出.
-a column
设置返回值的输出位置.默认 为40.
-e expr
指定一个表达式,用来控制如何跟踪.格式如下:
[qualifier=][!]value1[,value2]...
qualifier只能是 trace,abbrev,verbose,raw,signal,read,write其中之一.value是用来限定的符号或数字.默认的 qualifier是 trace.感叹号是否定符号.例如:
-eopen等价于 -e trace=open,表示只跟踪open调用.而-etrace!=open表示跟踪除了open以外的其他调用.有两个特殊的符号 all 和 none.
注意有些shell使用!来执行历史记录里的命令,所以要使用\\.
-e trace=set
只跟踪指定的系统 调用.例如:-e trace=open,close,rean,write表示只跟踪这四个系统调用.默认的为set=all.
-e trace=file
只跟踪有关文件操作的系统调用.
-e trace=process
只跟踪有关进程控制的系统调用.
-e trace=network
跟踪与网络有关的所有系统调用.
-e strace=signal
跟踪所有与系统信号有关的 系统调用
-e trace=ipc
跟踪所有与进程通讯有关的系统调用
-e abbrev=set
设定 strace输出的系统调用的结果集.-v 等与 abbrev=none.默认为abbrev=all.
-e raw=set
将指 定的系统调用的参数以十六进制显示.
-e signal=set
指定跟踪的系统信号.默认为all.如 signal=!SIGIO(或者signal=!io),表示不跟踪SIGIO信号.
-e read=set
输出从指定文件中读出 的数据.例如:
-e read=3,5
-e write=set
输出写入到指定文件中的数据.
-o filename
将strace的输出写入文件filename
-p pid
跟踪指定的进程pid.
-s strsize
指定输出的字符串的最大长度.默认为32.文件名一直全部输出.
-u username
以username 的UID和GID执行被跟踪的命令.
<pre>参考
  http://blog.ixpub.net/html/12/t-615712.html
  http://www.ibm.com/developerworks/cn/aix/library/au-unix-strace.html</pre>

分享到:
评论

相关推荐

    嵌入式linux下移植strace调试应用程序工具源码

    该压缩包是嵌入式linux下移植strace调试工具源码包,并且最重要里面还有一份移植文档,该文档内容会手把手教你编译安装和使用strace调试工具

    linux下的程序调试工具ltrace和strace终版.pdf

    linux下的程序调试工具ltrace和strace终版.pdf

    LINUX基本的程序调试技能及相关工具的使用,包括GDB(DDD)、Mtrace、strace

    LINUX基本的程序调试技能及相关工具的使用,包括GDB(DDD)、Mtrace、strace等。

    linux下的程序调试工具ltrace和strace借鉴.pdf

    linux下的程序调试工具ltrace和strace借鉴.pdf

    如何使用Strace调试工具

    strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统呼叫及它所接收的系统信息。strace是一个有用的小工具,它可以通过跟踪系统调用来让你知道一个程序在后台所做的事情。Strace是一个基础的...

    基于Linux调试工具strace与gdb的常用命令总结

    strace调试工具strace工具用于跟踪进程执行时的系统调用和所接收的信号,包括参数、返回值、执行时间。在Linux中,用户程序要访问系统设备,必须由用户态切换到内核态,这是通过系统调用发起并完成的。strace常用...

    strace:linux syscall跟踪器-开源

    strace是Linux的诊断,调试和说明性用户空间跟踪程序。 它用于监视和篡改用户空间进程与Linux内核之间的交互,其中包括系统调用,信号传递和进程状态更改。 内核功能ptrace使strace的操作成为可能。

    strace-4.11源代码下载

    strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用。 Strace是一个简单的跟踪系统调用执行的工具。在其最简单的形式中,它可以从开始到结束跟踪二进制的执行,并在进程的生命周期中输出...

    Linux调试技巧(共8份)

    《基于百问网IMX6ULL的perf工具使用》、《基于百问网IMX6ULL使用gdb+vscode+qtcreator开发》、《基于百问网IMX6ULL使用proc分析系统》、《基于百问网IMX6ULL使用strace分析程序调用》、《基于百问网IMX6ULL使用...

    Linux gdb 调试技术.pptx

    linux下使用gdb调试程序的教程。 详细讲解gdb工具的使用,以及调试技巧等。 linux上常用调试技术: 走读代码 打印日志 /proc/pid/... gdb、dbx strace、ltrace valgrind

    Linux教程-使用truss、strace或ltrace诊断软件

    进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。

    linux命令之调试工具strace的深入分析

    参考1《linux的strace命令(详解).txt》 新浪电子书可下载2man strace一个基本上通用的 完整的用法:strace -o output.txt -T -tt -e trace=all -p 28979上面的含义是 跟踪28979进程的所有系统调用(-e trace=all),...

    linux应用程序调试技术(英文)

    linux下应用程序调试指导书,绝对让你满意,虽然是英文资料,但内容简洁,容易理解,总共31页。 ------------------------------------------ Usermode Oops Tracing tools: strace and ltrace Debuggers: gdb and ...

    57个Linux常用命令含参数介绍和使用示例

    程序调试:Linux中的命令可以用来调试程序,如gdb、strace等,这些命令可以帮助程序员定位和解决问题,提高开发效率。 系统安全:Linux中的命令可以用来管理用户权限、设置防火墙等,这些命令可以帮助系统管理员提高...

    Linux开发工具箱--项目开发的最有效途径.pdf

    《Linux开发工具箱:项目开发的最有效途径》将系统性地介绍GNU/Linux的开源工具,并通过可以被读者容易修改的简明示例说明如何使用这些工具,以满足读者的实际需求。《Linux开发工具箱:项目开发的最有效途径》首先...

    构建嵌入式LINUX系统

    · 使用多种工具和技术调试嵌入式系统 本书详细解释了多种不同的目标板架构和硬件配置,包括彻底分析支持嵌入式硬件的Linux。所有的解释都针对的是开源和自由软件包。通过演示如何从源码建立操作系统组件,以及如何...

    构建嵌入式Linux系统

    · 使用多种工具和技术调试嵌入式系统 本书详细解释了多种不同的目标板架构和硬件配置,包括彻底分析支持嵌入式硬件的Linux。所有的解释都针对的是开源和自由软件包。通过演示如何从源码建立操作系统组件,以及如何...

    Linux高性能服务器编程

    16.2.2 procsysnet目录下的部分文件 16.3 gdb调试 16.3.1 用gdb调试多进程程序 16.3.2 用gdb调试多线程程序 16.4 压力测试 第17章 系统监测工具 17.1 tcpdump 17.2 lsof 17.3 nc 17.4 strace 17.5 ...

    Linux内核设备驱动之内核的调试技术笔记整理

    /****************** * 内核的调试技术 ******************/ (1)内核源代码中的一些与调试相关的配置选项 内核的配置选项中包含了一些与内核调试相关的选项,都集中在”kernel hacking”菜单...(3)strace的使用 strac

    在Linux下调试Python代码的各种方法

    你可以使用IDE的调试共轭ngn一步一步的运行程序,但你需要知道你要找的是什么,否则这将会是一个漫长的过程。 标准库中有一个 trace模块,可以打印所有执行过程中的内容(像制作 覆盖率报告)。

Global site tag (gtag.js) - Google Analytics