Kernel-tracer_new

Kithara »Kernel Tracer«

多源实时追踪器

通过使用"Kernel Tracer",能跟踪和记录实时应用程序的具体内部进程。

在编程中开发中有效的工具是十分有必要的,例如程序调试工具。直到现在,调试工具多用于调试程序。但是一旦使用到多线程编程,因为调试器会影响进程,它的使用就受很大限制。

如果你用到了多线程和多处理器的计算机(多处理器系统,超线程和双核/多核,如AMD速龙™64 X2 或Intel酷睿™双核)此时,程序运行的结果取决于各部分同步运行。而使用调试器不能保证这一定。

 

众所周知的问题:

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

该解决方案是一种追踪工具,它能够记录仿真例程的真实过程并分析日志 。

简要介绍:

“Kernel Tracer ”是一个多源的实时消息记录器。它支持调试,质量管理,关系检测,这在其他的调试器是不确定的。

“Kernel Tracer ”按消息出现的顺序,收集所有从不同的系统产生的消息。来自不同源的信息实际上出现在不同源头,但可以将它们合并。它每秒能够处理数千个消息。为了大量数据中找到重要信息 “Kernel Tracer ” 提供了几种机制来过滤和搜索信息 。

“Kernel Tracer ”有非常强大的观测能力让我们看到PC的真实运行过程。例如它使我们能够在内核级别,看到PC运行的实际过程。除了插入Kithara 提供的函数,您可以自己创建一些消息,通过这些消息能输出一些有用的额外信息。

“Kernel Tracer ”的详细特性:

  • 多源:支持的在应用层和内核层的任何数量的线程和例程(实时)
  • 多核心:能根据他们所产生的时间点顺序,精确输出多个CPU的信息(SMP,超线程,多核等)
  • 高处理速度(如果性能允许的话,能到几十万个消息每秒)
  • 调用 »实时套件« 的每个函数都由函数参数说明
  • 用户特定的信息可以通过 » 实时套件 « 工具生成(类似在C/C++中printf的使用)
  • 消息由很多详细信息说明:包括一个0.1微秒分辨率的系统时间
  • 可以过滤,合并,保存和重新加载信息
  • 筛选功能:可以对消息的说明进行设置包括:永久删除,短暂的隐藏,加粗,设置字体及其颜色颜色
  • 可以通过字体的颜色来 错误和警告突出
  • 更多上下文信息:逻辑CPU,线程和/或进程ID,实时任务-ID,连续的消息的数量和类型,线程和任务优先级,数据块的内容(d对于选择的信息)
  • 按文本,日期信息和所有其他方面来搜索信息
  • 消息遮蔽功能,可以阻止产生不需要的信息
  • 消息被保存在整个BSOD(崩溃后转储将自动扫描)
  • 为了更好的寻找,对于不同的进程,线程和任务都着以不同的颜色
  • 可以编制完文件之后改变消息(文字 ,前景色和背景色)
  • 能打开和关闭的程序滤器
  • 能显示和隐藏数据列
  • 能专门监视USB,UART,CAN和网络设备
  • 提供内存查看器以可视化物理内存
  • 提供PCI查看器用于分析PCI设备
  • 提供SDK便于编写自己的跟踪源

自定义消息

你可以转发自己的消息给追踪器,例如,显示变量内容或者标志程序特殊状态的出现 。
 »实时套件« 工具提供 KS_logMessage 和 KS_vprintK 函数。KS_logMessage 函数在所有支持的语言中使用; KS_vprintK 使用一个参数列表,因此可以用C/C++来控制。