EDR,Error Detection and Reporting,Vx6新加的一种调试机制,可以监测、记录系统错误
包含这个组件后,VxWorks就会在内存的最高位置分配一块区域,用于循环记录一些系统日志。而这块区域在系统热重启时,并不会清零。记录的这些日志,可以分为多种事件:内核、中断、进程、等等;还可以分为不同的严重程度:致命或警告等
具体到每条日志,包含了时间、事件类型和严重程度、OS版本、任务信息、进程信息、日志的创建位置等等。如果系统还包含其它一些相应组件,日志里还会包含更多的信息
要想查看这些日志,不建议直接查看EDR的地址,而是使用函数edrShow()
其它几个函数不太常用,有兴趣可以试试。edrClear()用于清除这些日志,否则当存储区域满了以后,新日志自动覆盖最老的日志
使用者还可以在EDR中添加一些钩子函数,当EDR生成日志会自动调用它们
使用者也可以手动生成日志
写个例子看看效果
使用edrShow()可以看到EDR_USER_WARNING_INJECT()插入的日志,以及任务的函数调用栈
这正是:
新型调试EDR,系统日志开外挂。
多种记录自动加,系统重启也不怕。