Kithara Kernel Tracer
多源实时追踪器
通过使用Kithara Kernel Tracer,能跟踪和记录实时应用程序的具体内部进程。在编程中开发中有效的工具是十分有必要的,例如程序调试工具。直到现在,调试工具多用于调试程序。但是一旦使用到多线程编程,因为调试器会影响进程,它的使用就受很大限制。如果你用到了多线程和多处理器的计算机(多处理器系统,超线程和双核/多核,如AMD速龙™64 X2 或Intel酷睿™双核)此时,程序运行的结果取决于各部分同步运行。而使用调试器不能保证这一点。这样的情况是由于一些众所周知的问题导致的:
- 使用调试器,整个进程都挂起。
- 程序运行并不像预期的一样,但使用调试器调试时一切都没问题。
- 调试器不可以运行在实时上下文中。
对于这种情况下的解决方案是使用一种追踪工具,它能够记录仿真例程的真实过程并分析日志。
简要介绍
Kithara Kernel Tracer是一个多源的实时消息记录器。它支持调试,质量管理,关系检测,这在其他的调试器是不确定的。Kithara Kernel Tracer按消息出现的顺序,收集所有从不同的系统产生的消息。来自不同源的信息实际上出现在不同源头,但可以将它们合并。
它每秒能够处理数千个消息。为了大量数据中找到重要信息,Kithara Kernel Tracer提供了几种机制来过滤和搜索信息。Kithara Kernel Tracer有非常强大的观测能力让我们看到PC的真实运行过程,例如它使我们能够在内核级别,看到PC运行的实际过程。除了插入Kithara提供的函数,您可以自己创建一些消息,通过这些消息能输出一些有用的额外信息。
Kithara Kernel Tracer的详细特性
- 多源:支持的在应用层和内核层的任何数量的线程和例程(实时)
- 多核:能根据他们所产生的时间点顺序,精确输出多个CPU的信息(SMP,超线程,多核等)
- 高处理速度(如果性能允许的话,能到几十万个消息每秒)
- Kithara RealTime Suite 的每个函数调用都由函数参数说明的
- 用户特定的信息可以通过 Kithara RealTime Suite 工具生成(类似在C,C++中printf的使用)
- 消息由很多详细信息说明:包括一个0.1微秒分辨率的系统时间
- 可以筛选,合并,保存和重新加载信息
- 筛选功能:永久删除,短暂的隐藏,加粗,设置字体及其颜色颜色
- 可以通过字体的颜色来突出错误和警告
- 更多上下文信息:逻辑CPU,线程和/或进程ID,实时任务-ID,连续的消息的数量和类型,线程和任务优先级,数据块的内容(选定信息的内容)
- 按文本,日期信息和所有其他方面来搜索信息
- 消息遮蔽功能,可以阻止产生不需要的信息
- 消息被保存在整个BSOD(崩溃后转储将自动扫描)
- 对于不同的进程,线程和任务都着以不同的颜色
- 可以编制完文件之后改变消息(文字 ,前景色和背景色)
- 能打开和关闭的程序过滤器
- 能显示和隐藏数据列
- 能专门监视USB,UART,CAN和网络设备
- 提供内存查看器以可视化物理内存
- 提供PCI查看器用于分析PCI设备
- 提供SDK便于编写自己的跟踪源
自定义消息
你可以转发自己的消息给追踪器,例如,显示变量内容或者标志程序特殊状态的出现。 Kithara RealTime Suite 工具提供KS_logMessage和KS_vprintK函数。KS_logMessage函数在所有支持的语言中使用; KS_vprintK 使用一个参数列表,因此可以用C,C++来控制。