# bytrace
## Overview
bytrace is a tool for you to trace processes and analyze performance. It encapsulates and extends the kernel ftrace and supports event tracking in the user space. With bytrace, you can open a user-space or kernel-space label you want to view \(run the **bytrace -l** command to query all the supported labels\) and run the **--trace\_begin** and **-o filename** \(or **--output filename**\) commands to capture traces and dump them to a specified file.
## How to Develop
bytrace supports the following commands:
**Table 1** Commands
| Option | Description |
| -------- | -------- |
| -h, --help | Views the help text for bytrace. |
| -b _n_, --buffer_size _n_ | Sets the size of the buffer (KB) for storing and reading traces. The default buffer size is 2048 KB. |
| -t _n_, --time _n_ | Sets the bytrace uptime in seconds, which depends on the time required for analysis. |
| --trace_clock _clock_ | Sets the type of the clock for adding a timestamp to a trace, which can be **boot** (default), **global**, **mono**, **uptime**, or **perf**. |
| --trace_begin | Starts capturing traces. |
| --trace_dump | Dumps traces to a specified position (console where you run this command by default). |
| --trace_finish | Stops capturing traces and dumps traces to a specified position (console where you run this command by default). |
| -l, --list_categories | Lists the bytrace categories supported by the device. |
| --overwrite | Sets the action to take when the buffer is full. If this option is used, the latest traces are discarded; if this option is not used, the earliest traces are discarded (default). |
| -o _filename_, --output _filename_ | Outputs traces to a specified file. |
| -z | Compresses a captured trace. |
## Usage Example
The following are some examples of bytrace commands:
- Query supported labels.
```
bytrace -l
```
Alternatively, run the following command to query the supported bytrace categories:
```
bytrace --list_categories
```
- Capture traces whose label is ability, with the buffer size set to 4096 KB and bytrace uptime set to 10s.
```
bytrace -b 4096 -t 10 --overwrite ability > /data/mytrace.ftrace
```
- Set the clock type for traces to **mono**.
```
bytrace --trace_clock mono -b 4096 -t 10 --overwrite ability > /data/mytrace.ftrace
```
- Compress the captured trace.
```
bytrace -z -b 4096 -t 10 --overwrite ability > /data/mytrace.ftrace
```