Android Binder 跟踪
Posted
技术标签:
【中文标题】Android Binder 跟踪【英文标题】:Android Binder Tracing 【发布时间】:2016-04-06 16:58:06 【问题描述】:在 android OS 源代码(路径:/drivers/staging/android/binder_trace.h
)中,我们有一个名为 binder_trace.h
的文件,并且在 /drivers/staging/android/binder.c
中也包含了 binder_trace
。正如我们在binder_trace.h
文件中看到的,binder 事务使用TP_printk
指令进行跟踪。
现在我的问题是如何使用 adb shell 在手机中查看这些内核日志?在/sys/kernel/debug/tracing
目录中也没有任何与活页夹跟踪相关的文件!
【问题讨论】:
【参考方案1】:$ cd /sys/kernel/debug/tracing
$ echo > set_event # clear all unrelated events
$ echo 1 > events/binder/enable
$ echo 1 > tracing_on
# .. do your test jobs ..
$ cat trace
请参阅https://android.googlesource.com/kernel/common/+/android-3.10.y/Documentation/trace/ftrace.txt 了解更多详细信息。
【讨论】:
该链接不再有效。这是一个更新的链接:android.googlesource.com/kernel/common/+/android-3.18/…【参考方案2】:要查看内核日志,请使用 dmesg 命令:
adb shell
# dmesg
【讨论】:
所以它应该在 debugfs 中。尝试 mount 命令以查看它是否已安装以及安装在何处。应该在 /sys/kernel/debug/tracing 中。对文件“trace”使用 cat 命令 我提到“/sys/kernel/debug/tracing 目录下没有任何与 binder tracking 相关的文件!” 是的。我看到应该有一个名为“trace”的文件,还有一个名为“current_tracer”和“available_traces”的文件。使用 cat 命令读取该文件并使用 echo 进行设置。您应该在跟踪文件的输出中看到活页夹跟踪 我监控了跟踪文件,但不幸的是没有任何活页夹跟踪! available_trace 文件的输出是什么?以上是关于Android Binder 跟踪的主要内容,如果未能解决你的问题,请参考以下文章
Binder 机制分析 Android 内核源码中的 Binder 驱动源码 binder.c ( googlesource 中的 Android 内核源码 | 内核源码下载 )