问题标签 [ftrace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
762 浏览

c - 如何对 Linux 内核中的特定功能进行基准测试或跟踪?

如何使用 ftrace()(或其他任何东西)来跟踪 Linux 内核中特定的用户定义函数?我正在尝试创建和运行一些微基准测试,所以我希望有时间运行某些功能。我已经(至少尽可能多地)阅读了文档,但是朝着正确方向迈出的一步会很棒。

我倾向于 ftrace(),但在 Ubuntu 14.04 上运行时遇到问题。

0 投票
1 回答
951 浏览

android - Linux 内核的 ftrace 输出格式

我在几个不同的设备上使用 Android 上的 ftrace,但我注意到它们之间的输出格式不同。在某些情况下,当前进程的 TGID 被包括在内,而在其他情况下,则不包括在内。

TGID 在我使用 ftrace 的当前应用程序中非常有用,我想知道如何启用它。我知道 sysfs 文件“/sys/kernel/debug/tracing/options/print-tgid”,但不幸的是,这在我的设备上不可用。是否有任何内核选项或 ftrace 句柄可用于将 TGID 添加到 ftrace 输出格式?

对比

0 投票
0 回答
353 浏览

android - systrace 输出 html 只有 cpu 行

下图是我的 systrace 输出,只有一行。将 html 与一些示例文件进行比较,似乎在我的文件中,没有像

是这个原因吗?如何解决?我正在使用 mips android 4.4.2。

在此处输入图像描述

0 投票
1 回答
1694 浏览

linux - 在 Linux 中从管道中进行非阻塞读取

我想/sys/kernel/debug/tracing/trace_pipe使用 Linux 命令行工具以非阻塞方式阅读。例如,cat不能使用,因为它会被阻止。这与此类似,不同之处在于我不想使用 Python。

0 投票
2 回答
3666 浏览

linux-kernel - ftrace 是否允许捕获 Linux 内核的系统调用参数,还是只允许捕获函数名?

目标是检查任何进程传递给特定系统调用(例如 exec、open 等)的参数。

官方文档中,没有描述记录函数参数的能力(主要看“函数”跟踪器,因为我不需要图表)。

如果我真的可以在 ftrace 的框架内做到这一点,我想确保我不会忽略某些东西并浪费时间使用更奇特的东西。

0 投票
1 回答
1032 浏览

android - Android systrace 或 atrace python parser 解析结果

任何人都知道如何解析 systrace 或 atrace 文件,如下所示,并使用 python 或任何其他语言获取任何进程的时间戳?

0 投票
1 回答
918 浏览

debugging - ftrace:有什么方法可以在不使用 trace-cmd 的情况下使用 kernelshark 查看我的跟踪信息?

我一直在使用 ftrace 来跟踪和计时我机器上的引导过程。我不知道有什么方法可以尽早启动 trace-cmd 以捕获我需要查看的内容,而使用 ftrace,我只是在重新启动之前启用它,然后在重新启动后禁用它。我想使用 kernelshark 查看此跟踪以进行演示。有什么方法可以将我/sys/kernel/debug/tracing/trace的转换为 kernelshark 可读的 .dat 吗?

0 投票
2 回答
4714 浏览

linux-kernel - 使用 FTRACE 加载 linux 驱动模块

我正在尝试使用 FTRACE 在可加载的驱动程序模块上跟踪和获取 function_graph。
但是,不知何故,我没有看到该模块中的任何函数被跟踪。

这就是我所做的(我将内核配置为在 menuconfig 中已经有 FTRACE)

跟踪文件中的任何内容都没有 my_module.ko 中的任何函数

编译 my_module.c 时是否需要启用一些编译器标志?有什么想法我需要做什么吗?

谢谢!

0 投票
1 回答
2655 浏览

android - 如何在 Android 的 systrace/atrace 中使用 async_start 和 async_stop

我想在进行自动化测试时在我的 Android 手机上捕获 Systrace 报告。不知道测试需要多长时间,所以我无法为 Systrace 指定--time时间段。

深入研究systrace.py,我发现systrace正在使用atrace来获取内核日志。

我使用adb shell atrace --help并得到以下输出:

如何使用atrace在我的自动化测试开始时开始跟踪,并在我的自动化测试结束时停止跟踪和转储内核日志?

我尝试使用以下命令,但我认为它不能正常工作。只有 async_dump 在日志中给了我一些数据。async_stop 转储在日志中没有任何内容。如何正确启动跟踪,转储它,然后停止它?

0 投票
0 回答
473 浏览

android - 如何防止在 Systrace 或 atrace 内核日志输出中修剪任务/进程名称?

如何确保 Systrace/atrace 的内核日志输出中的任务名称/进程名称不会被修剪或切断?我想查看任务/流程名称的全名,而不会缩短它。

以下是未修剪任务名称/进程名称的 Systrace 输出示例:

下面是 Systrace/atrace 输出,其中任务名称/进程名称被修剪:

我已经在多台计算机上使用 Systrace/atrace 进行了测试:Windows 和 Linux。除了最新更新的 Ubuntu Linux 计算机外,所有其他计算机都会提供 Systrace 输出,其中任务/进程名称会被修剪。但是,所有的计算机都会给我一个带有修剪过的任务/进程名称的跟踪报告。

如何确保任务/流程名称不会被修剪?

背景

我正在使用两种方法在 Android 5.1 手机上提取内核日志:Systrace 和 atrace。我使用 atrace 是因为我理解 Systrace 只是 atrace 的 python 前端。我使用 atrace 的另一个原因是因为我试图让异步跟踪开始和停止跟踪工作

使用 Systrace 时的命令:

使用atrace时的命令: