1. 资源状况监控
当前可用内存信息、最大分配内存信息、内存占用率信息可以通过调用memShow()函数获取,由于memShow()默认将内存信息打印到标准输出,因此获取内存信息的一种较为直观的方式就是通过将memShow()的打印信息输出重定向至指定的文件,然后从中提取系统需要的内存信息。
除此之外,VxWorks5.5内核中的内存分区结构体mem_part提供了内存分区信息,在程序中通过系统内存分区(ID为memSysPartId)引用该结构体的数据可以实时得到有关内存资源的信息,可通过调用memPartInfoGet获取。除此之外,mem_part结构体中与资源状况监控相关的信息还包括分区中内存总字数totalWords、内存累计分配字数cumWordsAllocated等。
2. 异常监控
VxWorks为用户提供了较为完备的异常处理机制。对于与体系结构相关的异常处理,可以使用VxWorks提供的接口函数来替换异常处理程序,直接获取异常硬件上下文;对于通用的异常处理,VxWorks 提供了处理异常的通用初始化工具库,用来捕获和报告由程序错误产生的异常。VxWorks的excLib库提供了excHookAdd()函数接口,用于将用户指定的异常处理钩子函数绑定到系统的异常处理流程中,当发生异常时由系统自动调用该函数。