3

我一直在努力使用 systrace。

我的设备运行 4.1.2 (LT28i),我在 Mac 上。我正在用类似的问题弹跳 SO 问题,但没有一个人有明确的答案。

我想说跟踪viewsgraphics

方法一,日食:

在此处输入图像描述

错误:

在此处输入图像描述

方法二、终端:

$ python systrace.py --cpu-load --time=10 -o mytracefile.html
error opening /sys/kernel/debug/tracing/options/overwrite: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/sched/sched_switch/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/power/cpu_frequency/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/power/cpu_idle/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/cpufreq_interactive/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/buffer_size_kb: No such file or directory (2)
error opening /sys/kernel/debug/tracing/trace_clock: No such file or directory (2)
error opening /sys/kernel/debug/tracing/tracing_on: No such file or directory (2)
error: unable to start trace
error opening /sys/kernel/debug/tracing/tracing_on: No such file or directory (2)
error opening /sys/kernel/debug/tracing/options/overwrite: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/sched/sched_switch/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/sched/sched_wakeup/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/power/cpu_frequency/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/trace_clock: No such file or directory (2)
unable to start tracing
error opening /sys/kernel/debug/tracing/buffer_size_kb: No such file or directory (2)
An error occured while capturing the trace.  Output file was not written.
dionyses-lorentzoss-imac:systrace dionysis_lorentzos$ mount -o rw,remount -t debugfs none /sys/kernel/debug
mount: realpath /sys: No such file or directory

我也尝试下面的命令并得到一个错误,但根据谷歌文档,只有在某些跟踪中才需要 root。

$ adb root
adbd cannot run as root in production builds

如何为视图或图形生成简单的 systrace?

手机中的调试已启用,并且“启用跟踪”也是(通过命令行或通过手机本身)。

4

1 回答 1

8

看起来您的手机正在运行不支持 systrace 的引导(内核)映像。

“打开 /sys/kernel/debug/tracing/options/overwrite 时出错:没有这样的文件或目录 (2)”

此错误消息意味着 adb 守护程序(在设备端运行的 adb 模块)在您设备的文件系统上找不到/sys/kernel/debug/tracing/options/overwrite 。systrace 在 adb 上工作,并通过/sys/kernel/debug/tracing下的 sysfs 节点与内核通信。如果这些节点由于某种原因没有暴露在您的手机上,那么 systrace 将无法正常工作。

所以你应该首先在你的设备上使用一个 shell:

亚行外壳

然后浏览以确认/sys是否存在以及/sys/kernel/debug/tracing是否存在。

如果它们在那里,这是极不可能的,您必须调试 systrace.py 以弄清楚 systrace 是如何认为节点不存在的。否则,您需要刷新具有 systrace 支持的不同引导映像,因为 sysfs 由内核(主要由编译时的配置)和 init.rc 控制,它们都是引导映像的一部分。

刷新不同的引导映像可能涉及解锁/生根设备。您可能必须访问像 xdadeveloper 这样的粉丝网站以获取信息和图像。另一种选择是为您的设备下载内核源代码,编译内核并自己制作引导映像。Linux 在 GPL 下,因此您的设备制造商有义务发布他们使用的专用内核的源代码。

于 2014-03-27T01:46:26.657 回答