我正在尝试将 Android systrace 工具与我的 Galaxy S3 一起使用,但我遇到了一些问题,似乎是内核问题。
我已经按照这篇文章中描述的步骤进行操作:Failed to use systrace in Jelly Bean
我能够“mount -t debugfs nodev /sys/kernel/debug”,这是“mount”命令的结果:
255|root@android:/ # mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,journal_async_commit,data=ordered,noauto_da_alloc,discard 0 0
/dev/block/platform/msm_sdcc.1/by-name/cache /cache ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/persist /persist ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/block/platform/msm_sdcc.1/by-name/modem /firmware vfat ro,relatime,gid=1000,fmask=0006,dmask=0006,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
/dev/block/platform/msm_sdcc.1/by-name/efs /efs ext4 rw,nosuid,nodev,relatime,user_xattr,barrier=1,data=ordered 0 0
/dev/fuse /storage/sdcard0 fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
nodev /sys/kernel/debug debugfs rw,relatime 0 0
所以我猜 debugfs 已安装到系统上。但是,我找不到 ftrace 应该所在的 /sys/kernel/debug/tracing 目录。所以这是我在 adb shell 中使用“atrace”命令时遇到的错误:
root@android:/ # atrace
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/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/events/workqueue/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/block/block_rq_issue/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/block/block_rq_complete/enable: 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)
error opening /sys/kernel/debug/tracing/events/workqueue/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_exit/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/block/block_rq_issue/enable: No such file or directory (2)
error opening /sys/kernel/debug/tracing/events/block/block_rq_complete/enable: 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)
我浏览了有关 stackoverflow 的几篇文章,在这篇文章中(Can't use Android shell atrace command because of write access)一个答案建议重新编译内核。我们真的必须这样做才能使用 systrace 工具吗?
这篇文章中的一个答案(Unable to run systrace tool on android emulator)提到三星 GS3 实际上可以使用 systrace。我想知道我是否在这里做错了什么。