Systrace - error truncating /sys/kernel/debug/tracing/set_ft



我目前正在做一个项目,旨在找出android UI上一系列用户交互背后的系统在做什么。例如,如果用户点击Facebook Messenger中的发送按钮,则该动作的测量响应时间为1.2秒。我的目标是弄清楚1.2秒是由什么组成的。我的朋友建议我去看看《斯特拉斯》。

然而,当我在我的HTC one M8上尝试系统时,我遇到了一些问题:首先,打开/sys/kernel/debug/tracing/options/overwrite时出错——没有这样的文件或目录。我通过建立对http://opensourceforu.com/2010/11/kernel-tracing-with-ftrace-part-1/和mount -t debugfs none/sys/kernel/debug下面的内核的支持来解决这个问题。然后我可以找到跟踪目录。此外,我在file default中设置了ro.debuggable=1。把拉姆迪克的道具烧掉。我在看我的手机

现在我遇到另一个问题:当我运行- python systemce .py——time=10 -o mynewtrace.html sched gfx view wm时,弹出以下错误(19):error truncating/sys/kernel/debug/tracing/set_ftrace_filter: No such device(19)。我不知道我为系统构建内核支持的方式是不正确的还是缺少了什么。

有谁能帮我解决这个问题吗?

我想我已经找到解决办法了。我的环境是Ubuntu 16.04 + HTC one M8。我将按照如下方式编写步骤:

  1. 打开终端,输入:$adb shell
  2. (1) $su (2) $mount -t debugfs none /sys/kernel/debug。现在您应该能够看到/sys/kernel/debug/下的许多目录。(你可以进入/sys/kernel/debug来确认)
  3. 新建一个终端,输入:dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=/sdcard/boot.img生成引导。
  4. 使用AndroidImageKitchen打开启动包。打开并找到默认值。在Ramdisk文件夹中的prop。然后将ro.debuggable=0修改为ro.debuggable=1。重新包装行李箱。
  5. 设备启动后,在终端下输入:adb root,可能会弹出:restart adbd as root的消息。断开USB连接并重新连接。
  6. cd到系统文件夹,例如~/androidSDK/platform-tools/systrace,然后使用:python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
  7. 现在你可以生成你自己的系统文件了。

最新更新