Member of:

Kithara »Kernel Tracer«

tl_files/kithara_software_gmbh/img/software_boxen/kernelbox.jpg
Efficient tools are required during a program development e.g. for a troubleshooting. For such a case is it common to use a debugger. The usage is limited if you handle with multi-thread programming because it is influences the execution of the program.

If you use more than one thread and a PC with multiple CPUs (multi-processor systems, Hyperthreading and dual-core/multi-core, e.g. AMD Athlon 64 X2 or Intel Core Duo) simultaneously, the result of the program run is dependent on the execution of particular program parts at the same time. The debugger can not provide that.

 

 

Who has not experienced:

  • The whole program execution gets confused while using a debugger.
  • A program does not work like expected, but while using a debugger is it working.

The solution is a tracer tool. The real execution of parallel program parts will be logged and analyzed afterwards.

Introduction

The Kithara »Kernel Tracer« is a multi-source real-time message logger. It is used for troubleshooting, quality control and generally to detect contexts which are usually untraceable.

The »Kernel Tracer« allows incredible views in the real sequences of the internals of a PC, e.g. on the kernel level. Alongside all Kithara functions and all of their function arguments, the user can create their own messages which are shown with helpful information in the »Kernel Tracer«.

The characteristics of »Kernel Tracers« in particular:

  • Multi source: support of multiple thread and programs on application and kernel level
  • Multi core: time-correct association of messages for multiple CPUs (SMP, HyperThread, Dual-Core etc.)
  • User specific messages can be generated from tools of »RealTime Suite« (printf-like with C/C++)
  • Messages are shown in detail, inclusive system time in 0.1 microsesond resolution
  • Messages can be filtered, merged, saved and reloaded
  • Filtering allows: deleting or temporary hiding, message presentation in bold, italics and user colors

User specific messages

You can deliver messages to the tracer, e.g. to show variables contents or to signal special program states.

The tools of the »Realtime Suite« provide the function KS_logMessage and KS_vprintK. KS_logMessage supports every language, KS_vprintK uses a variable argument list therefore it is only usable for C/C++.

Hint: In the file _KitharaSmp.cpp of the sub directory smp\_KitharaSmp you will find a function KS_printK (without "v"), which you can insert into your project. It allows a print-like use. This procedure is necessary, because functions with cdecl are not compatible between different compilers. The result is the following:

Attention! If you trace from kernel level make sure that the format string is located in shared memory! (e.g. "TimerCallBackRT")