Android systrace工具,通过ADB 调用atrace工具.但是,我不太了解跟踪文件的格式.显然它与linux ftrace工具非常相似,但有些不同.主要区别在于它不使用System.Map文件,但它将所有信息包含在跟踪文件中.此外,还有一些特定于Android的新B | E条目.
Android源代码中有关于此格式的一些信息,请访问:http://androidxref.com/4.1.1/xref/external/chromium-trace/src/tracing/linux_perf_importer.js
但是,在该文档中,我们可以读到该格式属于Linux Perf Tool.我不这么认为,linux perf作为输出提供了一种非常不同的格式......(除非某些特殊配置是活动的......)
我的问题是:有谁知道我在哪里可以找到关于使用adb的atrace工具生成的android跟踪文件的官方文档?
这种格式对你来说很熟悉吗?
# tracer: nop
#
# entries-in-buffer/entries-written: 66427/66427 #P:2
#
# _-----=> irqs-off
# / _----=> need-resched
# | / _---=> hardirq/softirq
# || / _--=> preempt-depth
# ||| / delay
# TASK-PID CPU# |||| TIMESTAMP FUNCTION
# | | | |||| | |
atrace-1724 [000] d..3 14186.680000: sched_switch: prev_comm=atrace prev_pid=1724 prev_prio=120 prev_state=S ==> next_comm=swapper/0 next_pid=0 next_prio=120 …Run Code Online (Sandbox Code Playgroud) 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中使用?
谢谢!
我们正致力于扩展systrace工具,为我们的设备添加自定义信息.我们特别感兴趣的是知道android如何支持TRACE生成.跟踪事件,zigote,finders,jvm启动,android启动,linux调用,硬件调用等涉及的体系结构和机制是什么?
有人可以帮我们提供一些关于这些信息的链接或手册吗?
我们将特别感谢adb atrace工具和任何其他相关模块的技术文档.
跟踪文件格式的信息也是我们感兴趣的,我们在哪里可以找到这些跟踪文件,我们如何扩展它们以添加更多信息?
细节:
在systrace.py第81行,我们发现:
atrace_args = ['adb','shell','atrace',' - z']
我们知道这会在/ sys/kernel/debug/tracing /中生成一些跟踪文件
我们的主要兴趣是知道这些文件的生成位置,时间和方式?
非常感谢你 !