Kithara Kernel Tracer

多源实时追踪器

通过使用Kithara Kernel Tracer,能跟踪和记录实时应用程序的具体内部进程。在编程中开发中有效的工具是十分有必要的,例如程序调试工具。直到现在,调试工具多用于调试程序。但是一旦使用到多线程编程,因为调试器会影响进程,它的使用就受很大限制。如果你用到了多线程和多处理器的计算机(多处理器系统,超线程和双核/多核,如AMD速龙64 X2 或Intel酷睿双核)此时,程序运行的结果取决于各部分同步运行。而使用调试器不能保证这一点。这样的情况是由于一些众所周知的问题导致的:

  • 使用调试器,整个进程都挂起。
  • 程序运行并不像预期的一样,但使用调试器调试时一切都没问题。
  • 调试器不可以运行在实时上下文中。

对于这种情况下的解决方案是使用一种追踪工具,它能够记录仿真例程的真实过程并分析日志。

Kithara Kernel Tracer
Kernel trace of sample “TaskSimple”

Kernel trace of sample “TaskSimple”

Application trace of sample “TaskSimple”

Application trace of sample “TaskSimple”

Filter selection

Filter selection

Filter options

Filter options

Limitation of messages to be recorded

Limitation of messages to be recorded

Additional settings

Additional settings


简要介绍

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++来控制。