在线模式需要配合IDE使用,实时将trace frame记录发送给IDE,IDE端进行解析并可视化展示 更多...
函数 | |
UINT32 | OsTraceGetMaskTid (UINT32 taskId) |
VOID | OsTraceSendHead (VOID) |
发送头信息 更多... | |
VOID | OsTraceSendNotify (UINT32 type, UINT32 value) |
发送通知类信息(启动,停止 trace 等通知) 更多... | |
STATIC VOID | OsTraceSendObj (const LosTaskCB *tcb) |
向串口发送一个类型为对象的trace 更多... | |
VOID | OsTraceSendObjTable (VOID) |
发送所有任务对象至串口 更多... | |
VOID | OsTraceObjAdd (UINT32 eventType, UINT32 taskId) |
添加一个对象(任务) trace 更多... | |
VOID | OsTraceWriteOrSendEvent (const TraceEventFrame *frame) |
在线模式下发送数据给 IDE, Trace模块会对输入信息进行封装,添加Trace帧头信息,包含事件类型、运行的cpuid、运行的任务id、运行的相对时间戳等信息 更多... | |
OfflineHead * | OsTraceRecordGet (VOID) |
在线模式需要配合IDE使用,实时将trace frame记录发送给IDE,IDE端进行解析并可视化展示
Trace调测旨在帮助开发者获取内核的运行流程,各个模块、任务的执行顺序,从而可以辅助开发者定位一些时序问题或者了解内核的代码运行过程。 内核提供一套Hook框架,将Hook点预埋在各个模块的主要流程中, 在内核启动初期完成Trace功能的初始化,并注册Trace的处理函数到Hook中。 当系统触发到一个Hook点时,Trace模块会对输入信息进行封装,添加Trace帧头信息,包含事件类型、运行的cpuid、运行的任务id、运行的相对时间戳等信息; Trace提供2种工作模式,离线模式和在线模式。 本文件为 在线模式
在文件 trace_online.c 中定义.
添加一个对象(任务) trace
添加一个任务
在文件 trace_online.c 第 101 行定义.
OfflineHead * OsTraceRecordGet | ( | VOID | ) |
VOID OsTraceSendHead | ( | VOID | ) |
发送头信息
在文件 trace_online.c 第 58 行定义.
STATIC VOID OsTraceSendObj | ( | const LosTaskCB * | tcb | ) |
VOID OsTraceSendObjTable | ( | VOID | ) |
VOID OsTraceWriteOrSendEvent | ( | const TraceEventFrame * | frame | ) |
在线模式下发送数据给 IDE, Trace模块会对输入信息进行封装,添加Trace帧头信息,包含事件类型、运行的cpuid、运行的任务id、运行的相对时间戳等信息
离线模式下保存帧数据 @note_thinking 此处未封装好,会懵逼,文件名中体现了对离线模式的保存或对在线模式的发送这样真的好吗? .
在文件 trace_online.c 第 108 行定义.