`

用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调试应用程序工具源码

    总的来说,移植和使用`strace`是一个复杂但至关重要的任务,它能让你深入理解程序在嵌入式Linux环境下的行为,为系统的调试和优化提供强有力的支持。仔细阅读移植文档,遵循步骤,你将能够顺利地在你的设备上部署并...

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

    Linux下的程序调试工具ltrace和strace终版 在 Linux 操作系统中,程序调试是非常重要的一步,对于程序的开发、测试和优化都起着至关重要的作用。在 Linux 中,有两种常用的程序调试工具:ltrace 和 strace。这两种...

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

    通过学习和实践这些工具,开发者能够更好地理解和调试Linux环境下的程序,提高问题定位和解决的效率。Mtrace.doc、gdb.doc和strace.pdf文档应该包含了这些工具的详细使用方法和实例,建议仔细阅读并结合实际项目进行...

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

    在Linux操作系统中,调试是开发过程中必不可少的一部分,用于找出程序中的错误和异常行为。...在实际工作中,可以根据程序的特性以及需要解决的问题类型,灵活选择或结合使用ltrace和strace,以达到最佳的调试效果。

    linux的strace命令(详解)

    `strace` 是一个功能强大且易于使用的工具,对于调试和理解Linux程序的行为非常重要。通过掌握其使用方法,可以有效地解决各种复杂的系统级问题。无论是初学者还是经验丰富的开发者,都应该熟悉 `strace` 的使用。

    Linux应用调试之strace命令详解

    在Linux系统中,strace是一个强大的工具,用于调试应用程序,尤其是当它们遇到与系统交互的问题时。strace通过跟踪进程的系统调用和接收到的信号,帮助开发者理解程序如何与操作系统交互。这个命令对于理解程序为何...

    linux编程调试详解

    使用strace时,可以在终端中直接运行strace命令,并指定要调试的程序名称作为参数。strace将显示该程序发起的所有系统调用及其返回值。通过这种方式,开发者可以清楚地看到程序在后台所进行的每个系统级别的操作,这...

    Linux驱动程序调试的常用方法.pdf

    本文将介绍 Linux 驱动程序调试的常用方法,包括利用 printk、查看 OOP 消息、利用 strace、利用内核内置的 hacking 选项、利用 ioctl 方法、利用/proc 文件系统、使用 kgdb 等七种方法。 一、利用 printk printk ...

    Linux for ARM 调试软件集

    5. **调试技巧**:在使用这些工具时,开发者通常会结合使用,例如通过PuTTY远程登录到Linux ARM设备,然后使用GDB进行程序调试,同时借助HFS查看或修改系统文件。超级终端可以帮助实时查看系统状态,而Strace和Lsof...

    linux下程序的编译及调试

    在Linux操作系统中,程序的开发通常涉及到编译和调试两个主要步骤。编译是将源代码转换成可执行文件的过程,而调试则是找出并修复程序错误的关键环节。...通过不断实践和学习,你将成为Linux程序开发的专家。

    如何使用Strace调试工具

    Strace是一款强大的Linux调试工具,它允许开发者跟踪和记录运行中的进程对系统调用的使用情况,以及它们接收到的信号。系统调用是操作系统提供给用户空间程序接口,通过这些调用,程序可以访问硬件资源,如磁盘、...

    strace-5.15 arm和arm64架构,Android可用

    《strace-5.15在Android上的应用与解析》 ...通过正确使用strace,开发者可以更高效地调试代码,提升应用程序的质量和用户体验。然而,这也要求开发者具备一定的系统知识和理解,以充分利用strace带来的优势。

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

    使用gdb进行调试时,可以通过`break main`在main函数开始处设置断点,然后用`run`命令启动程序。在遇到断点后,可以使用`next`或`step`命令逐步执行,`print`查看变量状态,`bt`查看调用堆栈,以确定问题发生的具体...

    嵌入式linux调试技术

    - **交叉调试**:使用GDBserver与远程目标机上的程序进行交互,以实现对目标机程序的调试。 - **多进程调试**:利用GDB的`follow-fork-mode`特性以及`attach`命令来跟踪和调试多个进程。 - **多线程调试**:GDB提供...

    D1-H_Tina_Linux_系统调试_使用指南1

    strace 是一个可以对 Linux 系统进行系统调用跟踪和分析的调试工具,可以对应用程序进行调试和分析。strace 的主要功能包括: * 配置:strace 需要进行配置,以便能够正确地对应用程序进行系统调用跟踪和分析。 * ...

    linux 高级程序设计第三版源代码(杨宗德著)

    《Linux高级程序设计》是学习Linux系统编程的...同时,源码也提供了一个学习如何编写高效、可靠和可维护的Linux程序的实例。在学习过程中,建议结合书中的理论部分,逐个解析源码,实践并调试,以达到最佳的学习效果。

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

    本文将详细介绍 Linux 下应用程序调试的一些关键技术点,包括但不限于 Usermode OOPS、跟踪工具(如 strace 和 ltrace)、调试器(gdb 和 DDD)、性能分析工具(cprof 和 Performance Inspector)以及内存管理工具...

    strace-4.5.15.tar.bz2.rar

    在Linux操作系统中,strace是一个非常实用的系统调用跟踪工具,它能够帮助开发者和系统管理员了解程序在运行过程中与操作系统的交互细节,包括系统调用的使用、参数传递以及返回值。本文将基于"strace-4.5.15.tar(1)...

Global site tag (gtag.js) - Google Analytics