Instrumenting C and other Native Programming Languages

We provide experimental C language support for Kieker. The current library supports all Kieker record types. In case you want to roll your own, you can use the C generator of the Kieker instrumentation record language (IRL).


Instrumentation with Compiler Hook

You can instrument C, C++ and Fortran application (or any other language supported by GCC) with the kieker-lang-pack-c. To enable instrumentation you have to specify -finstrument-functions as compiler option to instrument all functions, add libkieker to the library path and add -lkieker to the linker options.

To limit instrumentation you may use

-finstrument-functions-exclude-file-list -finstrument-functions-exclude-function-list

More details can be found here:

Depending on the configure and make setup used in your C, C++, Fortran project your setup could look like this:

export LIBS=-lkieker export LDFLAGS=-L/my/directory/lib/ export CFLAGS=-finstrument-functions

Kieker supports two environment variables: - KIEKER_HOSTNAME - KIEKER_PORT which must be set to a port (default 5678) and a hostname (e.g. localhost) specifying the computer receiving the monitoring data.

Use the Kieker collector to receive the data.

AspectC++ AOP

There is initial code using aspectC++ for instrumentation. We have incorporated that code in the source tree. You may find the aspect definitions under libkieker/include/aspectc++. However, we have not yet tested them.


The Kieker language pack can be found here:

After checkout, you may have to perform the following four operations before you can compile the library and the sample programs.


  • libtoolize

  • aclocal

  • automake –add-missing

  • autoconf


In case you can compile and place the library in its default location type:

./configure ; make ; make install

In case you want to set a different installation location call configure with the option –prefix=/my/directory

See ./configure –help for details.


Example instrumented programs can be found in examples.

  • basic-example shows a manual instrumentation.