Rod*_*nde 7 linux android trace systrace
Systrace Android工具在内部调用一个名为atrace的工具,它是ftrace或strace(Linux工具)的扩展.
如果我们通过模拟器控制台(ADB shell)连接到Android Jelly Bean,我们可以执行strace工具,但是我们无法执行ftrace工具(命令未安装).
通过互联网进行一些研究我发现strace是ftrace的前身:http: //crtags.blogspot.de/2012/04/dtrace-ftrace-ltrace-strace-so-many-to.html
查看Android源代码,我找到的最" 内部 "引用是Trace.h文件:http: //androidxref.com/4.1.1/xref/frameworks/native/include/utils/Trace.h
我认为这个文件然后被解析为本机Linux驱动程序.
但是,我仍然无法知道此实现驱动程序是否属于strace或ftrace."通常",它应该是ftrace因为它更新,但在那种情况下我不知道为什么我们不能从模拟器运行ftrace.相比之下,strace完全可以从仿真器中获得.
那么,是否有人知道Systrace Android工具是否在非常低级别的strace或ftrace中使用?
谢谢!
我按照此处的说明进行操作,与ftrace相关,:http: //www.linuxforu.com/2010/11/kernel-tracing-with-ftrace-part-1/
一切都很完美.之前我无法执行ftrace,因为通过逻辑路径完成交互和检索数据.
要在正确配置(很多步骤......)之后执行ftrace,在adb shell中:
root@android:# cat /sys/kernel/debug/tracing/trace > mytracefile.txt
Run Code Online (Sandbox Code Playgroud)
atrace使配置过程更容易,因此我们可以通过以下方式访问跟踪信息:
root@android:# atrace -s -w -t 100 > mytracefile.txt
Run Code Online (Sandbox Code Playgroud)
另一方面,我在这里找到了关于执行strace的信息:http: //www.hokstad.com/5-simple-ways-to-troubleshoot-using-strace
使用adb shell在我的环境中成功执行了所有指示的示例.
两种工具的交互和访问结果都非常不同.
现在我可以说systrace Android工具基于atrace,而atrace又基于ftrace.
strace也受支持,但用于其他目的,与systrace无关.
问候,
| 归档时间: |
|
| 查看次数: |
6213 次 |
| 最近记录: |