我一直在努力使用systrace。
我的设备运行4.1.2(LT28i),我在Mac上。我正在回答类似问题的SO问题,但没有一个人有明确的答案。
我想让我们说跟踪views
和graphics
方法1,eclipse:
错误:
方法2,终端:
$ 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
我也尝试下面的命令并得到一个错误,但只有在一些跟踪中才需要根据google docs root。
$ adb root
adbd cannot run as root in production builds
如何为视图或图形生成简单的systrace?
手机中的调试已启用,并且“启用跟踪”(通过命令行或通过手机本身)。
答案 0 :(得分: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:
adb shell
然后浏览以确认是否存在 / sys 以及 / sys / kernel / debug / tracing 是否存在。
如果他们在那里极不可能,你必须调试systrace.py来弄清楚systrace如何认为节点不在那里。否则,您需要刷新具有systrace支持的不同启动映像,因为sysfs由内核(主要是编译时的配置)和init.rc控制,这两者都是启动映像的一部分。
闪烁其他启动映像可能涉及解锁/生根设备。您可能需要访问xdadeveloper等粉丝网站获取信息和图片。另一个选择是为您的设备下载内核源代码,编译内核并自己制作启动映像。 Linux属于GPL,因此您的设备制造商有义务发布他们使用的专用内核的源代码。