---
title: strace工具
description: "strace 是Linux环境下的程序调试工具，用来跟踪应用程序的系统调用情况。strace命令执行的结果就是按照调用顺序打印出所有的系统调用，包括函数名、参数列表以及返回值等。"
url: https://www.hikunpeng.com/document/detail/zh/perftuning/tuningtip/kunpengtuning_12_0023.html
sourcePath: /source/zh/perftuning/tuningtip/kunpengtuning_12_0023.html
indexId: eaa7b3faa5644fcabc268221d261ca6de19d1f25cdc82b9f40739bfcbc055e6358
---
# strace工具

#### 介绍

strace 是Linux环境下的程序调试工具，用来跟踪应用程序的系统调用情况。strace命令执行的结果就是按照调用顺序打印出所有的系统调用，包括函数名、参数列表以及返回值等。


#### 安装方式

以CentOS为例，使用如下命令安装：

```
yum -y install strace
```


#### 使用方式

命令格式：strace [参数]

常用参数如下：

| 参数 | 说明 |
| --- | --- |
| \-T | 显示每一次调用所耗的时间。 |
| \-tt | 在输出中的每一行前加上时间信息，微秒级。 |
| \-p | 跟踪指定的线程ID。 |


输出格式：

```
18:25:47.902439 epoll_pwait(716, [{EPOLLIN, {u32=1052576880, u64=281463144385648}}, {EPOLLIN, {u32=1052693569, u64=281463144502337}}, {EPOLLOUT, {u32=1052638657, u64=281463144447425}}, {EPOLLIN|EPOLLOUT|EPOLLRDHUP, {u32=1052673241, u64=281463144482009}}, {EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP|EPOLLRDHUP, {u32=1052636016, u64=281463144444784}}], 512, 1, NULL, 8) = 5 <0.000038>
```

参数含义如下：

| 参数 | 说明 |
| --- | --- |
| 18:25:47.902439 | 系统调用发生的时间。 |
| epoll\_pwait | 系统调用的函数名。 |
| (716…) | 括号内的值为函数参数。 |
| =5 | 系统调用的返回值。 |
| <0.000038> | 系统调用的执行时间。 |
