c - 如何在 ftrace 中打印 trace_printk 的完整跟踪文件?
问题描述
我正在使用 trace_printk() 打印一些数字(它们大约是一百万个数字)。但是,当我检查 /sys/kernel/debug/tracing/trace ... 时,只打印了整个范围的一部分。
谁能建议我如何增加缓冲区大小或以任何方式通过任何选项打印整个范围。
*注意:我不关心 ftrace 的其他输出。
*注2:我是使用ftrace和内核函数的初学者。
解决方案
基于 Ubuntu 18.04
buffer_size_kb 文件存在于 /sys/kernel/debug/tracing 目录中。
您可以通过 echo 进行更改。
$ eche echo 4096 > buffer_size_kb
buffer_size_kb * cpu core count = buffer_total_size_kb 是自动计算和存储的。
这将增加 ftrace 文件中的数量。
覆盖文件存在于 /sys/kernel/debug/tracing/options 目录中。
覆盖文件也可以更改为回显。
$ eche echo 4096 > buffer_size_kb
默认值为 1,即丢弃最旧的事件(第一部分)。相反,如果为零,则丢弃最近的事件(后面)。
在这种情况下,ftrace 文件的数量并没有增加,可以看到第一个或最后一个。
推荐阅读
- ember.js - 如何在 hbs 中为 ember 应用程序实现条件运算符
- python - 如何停止在函数中使用重复代码?
- java - 在 Java 中解析 JSON 和数据操作
- python - Docker/Kubernetes - 无法从本地存储库中提取图像
- docker - Nginx 配置文件未正确配置。“无法访问此站点”
- javascript - 如何设置状态以自动刷新 google-map-content
- c# - 感叹号作为索引器的一部分?
- ssh - 如何将 Pymongo 与 ssh 连接为 Robo3T?
- c++ - 如何检查字符串中的第一个字符是否为'-'?
- scala - 来自 Chisel(火箭芯片)的 sbt.TrapExitSecurityException 错误消息