SkyEye日志系统的功能考虑

在SkyEye虚拟开发平台上,一个强大的日志系统是调试过程中必不可少的调试手段之一,单步跟踪调试很难直观的反应一个大范围的系统状态变化,而且也不能有效过滤的一些无用信息。而且对于跟踪一个连续的系统状态变化,单步跟踪效率比较低。


我对日志系统的功能初步考虑如下:

 

1、触发条件,就是什么时候开始进行日志记录。目前想到的有两种

* PC触发:即当程序的PC等于某一预设定值的时候,开始记录在这之后每一指令执行时的必要的状态信息

* Steps触发:即当程序运行到某一预设定的step,开始记录

* 异常触发:当发生某一异常的时候进行记录

 

2、日志结束条件

和上面的触发条件基本上相对应

 

3、过滤条件

日志记录的内容往往很大,需要对日志进行过滤,以免一些没有的信息会干扰我们对日志的分析。

* 包含条件:记录一地址范围的程序执行信息

* 排除条件:跳过某一地址范围的程序执行信息,不予记录

 

4、记录什么

我们在PC执行到某一特定地址,需要检查的条件和关心的信息往往是某一特定部分,而不是所有的状态信息。一般来说,有如下分类:

* CPU的某些寄存器

* 某些内存的数据

* 页表或者TLB的变化

 

你可能感兴趣的:(平台)