strace基本操作

可以发现很多真正在系统层面发生的调用,以及很细微的返回错误信息,用于调试工作。(比如,软件出错,或是性能变慢。。。)

 

strace -p 32000 -o strace.txt

基本上完整的用法是这样:
strace -o /tmp/output2.txt -T -tt -e trace=desc -s 12 -p 17129

使用到的参数如下:
1)strace -p pid  可以跟踪某个后台进程
2)strace -o filename 把跟踪结果输出到文件
3)strace -T 记录每个系统调用花费的时间,可以看看哪个系统调用时间长
4)strace -t (或者 -tt)记录每个系统调用发生是的时间(时分秒的格式)
5)strace -s 1024 显示系统调用参数时,对于字符串显示的长度, 默认是32,如果字符串参数很长,很多信息显示不出来。
6)strace -e trace=nanosleep 只记录相关的系统调用信息。  

    -e trace=network // 只记录和网络api相关的系统调用
    -e trace=file // 只记录涉及到文件名的系统调用
    -e trace=desc // 只记录涉及到文件句柄的系统调用
    还有其他的包括process,ipc,signal等。

~~~~~~~~~~~~~

时间: 2024-07-28 15:51:56

strace基本操作的相关文章

Python中列表的一些基本操作知识汇总

  这篇文章主要介绍了Python中列表的一些基本操作知识汇总,皆属于Python的基本功,需要的朋友可以参考下 Python最基本的数据结构是序列(列表/元组).一个序列中的每个元素都分配有一个数字- 它的位置或索引.第一个索引是0,第二个索引是1,依此类推. Python有6内置类型的序列,但最常见的是列表和元组,我们将在本教程中看到. 有一些东西可以使用所有序列类型来做.这些操作包括索引,切片,加,乘,并检查成员.此外,Python已经内置函数查找序列的长度和搜索它的最大和最小的元素. P

系统调用追踪工具strace

当我们想知道某个进程为什么突然卡了,或者是某个工具到底是如何实现的时候.strace就派上了用场.它能将程序的调用信息打印出来. strace原理: 它的实现基础是ptrace系统调用.ptrace系统调用提供了一种方法来跟踪和控制进程的执行,它可以读取和修改进程地址空间中的内容,包括寄存器的值.ptrace主要用于实现断点调试和跟踪系统调用. ptrace系统调用 1 #include <sys/ptrace.h> 2 int ptrace(int request, int pid, int

Linux操作系统之rpm五种基本操作分享

  Linux操作系统现在已经成为流行的操作系统,很多的人都开始学习,Linux操作系统包括了很多的专业知识,今天和大家讲讲Linux操作系统中的rpm基本操作.希望你学会本文中提到rpm的五种基本操作知识,会对你有所帮助.rpm有五种基本的操作方式(不包括创建软件包): 安装, 卸载, 升级, 查询,和验证. 下面我们就来逐一的讲解吧. 一. 安装rpm包 rpm 软件包通常具有类似foo-1.0-1.i386.rpm 的文件名.其中包括软件包的名称(foo),版本号(1.0),发行号(1),

javascript数组和字符串基本操作

Javascript数组基本操作     Javascript中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,索引可能是整数,然而这些数字索引在内部被转换为字符串类型,这是因为javascript对象中的属性名必须是字符串.  一:如何创建数组?    创建数组有2中方式,第一种是对象字面量如下:    var  arrs = [];  // 定义了一个空数组.    还有一种方式是:调用Array的构造函数创建数组    var arrs = new Array(); 二:数组的

专家为您详解JAVA数据库基本操作

数据|数据库|详解 java 数据库基本操作1.java数据库操作基本流程2.几个常用的重要技巧:     可滚动.更新的记录集     批量更新     事务处理 java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 1.取得数据库连接  1)用DriverManager取数据库连接   例子    String className,url,uid,pwd;    className = "oracle.jdbc.driver.OracleDri

java 数据库基本操作

数据|数据库 java 数据库基本操作1.java数据库操作基本流程2.几个常用的重要技巧: 可滚动.更新的记录集 批量更新 事务处理 java数据库操作基本流程:取得数据库连接 - 执行sql语句 - 处理执行结果 - 释放数据库连接 1.取得数据库连接 1)用DriverManager取数据库连接 例子 String className,url,uid,pwd; className = "oracle.jdbc.driver.OracleDriver"; url = "j

DataSet的几个基本操作

DataSet的几个基本操作 最近写程序的时候遇到一个问题,向TEXT类型(SQL SERVER)字段中INSERT内容不能直接用SQL语句,因为其中有换行,特殊字符.所以只能用DataSet. 记得在ASP中的写法是rs.addnew(),rs.update()等,在ASP.NET中是怎么写的呢? 查了半天资料(居然还这么难找),把其中几个基本操作写在下面.下面的程序从DataSet已经建立开始写起. 删除一个已存在的记录                DataRow dr;int vSNo=

ADO.NET详细研究(四)--实例演示DataReader基本操作

ado 前面的文章地址: http://dev.csdn.net/develop/article/26/26246.shtm http://dev.csdn.net/develop/article/26/26480.shtm http://dev.csdn.net/develop/article/26/26481.shtm 这次我们用实例演示DataReader的基本应用,当然同时包含Command以及Connection的基本操作.通过这个实例的学习我们能处理一般的数据库系统了. WinFor

Cassandra数据库的基本操作

启动Cassandra之后,我们可以用Cassandra的命令行来执行Cassandra的基本操作: 先启动cassandra-cli 连接到Cassandra服务:(Test Cluster是默认的服务实例,见cassandra.yaml) 创建一个keyspace叫DEMO :(keyspace相当于关系数据库中的数据库) 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/extra/