问题标签 [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.
c - 如何对 Linux 内核中的特定功能进行基准测试或跟踪?
如何使用 ftrace()(或其他任何东西)来跟踪 Linux 内核中特定的用户定义函数?我正在尝试创建和运行一些微基准测试,所以我希望有时间运行某些功能。我已经(至少尽可能多地)阅读了文档,但是朝着正确方向迈出的一步会很棒。
我倾向于 ftrace(),但在 Ubuntu 14.04 上运行时遇到问题。
android - Linux 内核的 ftrace 输出格式
我在几个不同的设备上使用 Android 上的 ftrace,但我注意到它们之间的输出格式不同。在某些情况下,当前进程的 TGID 被包括在内,而在其他情况下,则不包括在内。
TGID 在我使用 ftrace 的当前应用程序中非常有用,我想知道如何启用它。我知道 sysfs 文件“/sys/kernel/debug/tracing/options/print-tgid”,但不幸的是,这在我的设备上不可用。是否有任何内核选项或 ftrace 句柄可用于将 TGID 添加到 ftrace 输出格式?
对比
android - systrace 输出 html 只有 cpu 行
下图是我的 systrace 输出,只有一行。将 html 与一些示例文件进行比较,似乎在我的文件中,没有像
是这个原因吗?如何解决?我正在使用 mips android 4.4.2。
linux - 在 Linux 中从管道中进行非阻塞读取
我想/sys/kernel/debug/tracing/trace_pipe
使用 Linux 命令行工具以非阻塞方式阅读。例如,cat
不能使用,因为它会被阻止。这与此类似,不同之处在于我不想使用 Python。
linux-kernel - ftrace 是否允许捕获 Linux 内核的系统调用参数,还是只允许捕获函数名?
目标是检查任何进程传递给特定系统调用(例如 exec、open 等)的参数。
从官方文档中,没有描述记录函数参数的能力(主要看“函数”跟踪器,因为我不需要图表)。
如果我真的可以在 ftrace 的框架内做到这一点,我想确保我不会忽略某些东西并浪费时间使用更奇特的东西。
android - Android systrace 或 atrace python parser 解析结果
任何人都知道如何解析 systrace 或 atrace 文件,如下所示,并使用 python 或任何其他语言获取任何进程的时间戳?
debugging - ftrace:有什么方法可以在不使用 trace-cmd 的情况下使用 kernelshark 查看我的跟踪信息?
我一直在使用 ftrace 来跟踪和计时我机器上的引导过程。我不知道有什么方法可以尽早启动 trace-cmd 以捕获我需要查看的内容,而使用 ftrace,我只是在重新启动之前启用它,然后在重新启动后禁用它。我想使用 kernelshark 查看此跟踪以进行演示。有什么方法可以将我/sys/kernel/debug/tracing/trace
的转换为 kernelshark 可读的 .dat 吗?
linux-kernel - 使用 FTRACE 加载 linux 驱动模块
我正在尝试使用 FTRACE 在可加载的驱动程序模块上跟踪和获取 function_graph。
但是,不知何故,我没有看到该模块中的任何函数被跟踪。
这就是我所做的(我将内核配置为在 menuconfig 中已经有 FTRACE)
跟踪文件中的任何内容都没有 my_module.ko 中的任何函数
编译 my_module.c 时是否需要启用一些编译器标志?有什么想法我需要做什么吗?
谢谢!
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 转储在日志中没有任何内容。如何正确启动跟踪,转储它,然后停止它?
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时的命令: