1.debugfs文件系统挂载
Android启动过程中,在early_init阶段挂载debugfs文件系统到目录/sys/kernel/debug/,也有些平台挂载到目录/sys/kernel/。
2.常用节点说明
tracing目录内容如下所示:
README:trace event抓取方法说明
available_events:列出所有trace event
buffer_size_kb:每个CPU对应的ring buffer长度,以kb为单位,trace日志保存在ring buffer中,越大缓存的日志越多
buffer_total_size_kb:ring buffer总长度,等于CPU个数乘以buffer_size_kb
events:所有的trace event,目录关系详见《trace event框架简析》
set_event:使能trace event节点
tracing_on:ring buffer开关节点,如果不打开,没有地方保存trace日志
trace:打印ring buffer中缓存的trace日志,打印完后退出
trace_pipe:打印ring buffer中缓存的trace日志,打印完后不退,有新日志写入时,继续打印
trace_marker:用户空间向ring buffer写数据的接口
3.抓取操作
第一步,关闭ring buffer
第二步,enable跟踪的trace event,有两种方式。方式一,向events/<system>/<event>/enable节点写1。
方式二,写set_event节点,写入数据格式和含义如下:
system:event 使能event,例如:
system:* 使能events/<system>/目录下所有的event,例如:
system:event|system:* 使能多个event,用空格分开,例如:
第三步,打开ring buffer
第四步,cat节点trace_pipe或者trace,获取trace日志