TRACE is yet another logging (time stamp) tool, but it allows fast and/or slow logging (or tracing) - dynamically (you choose).
There are, as with other loggers, several different logging macros that can be used.
There are streamer style macros for C++ and printf style macros for C/C++.
Trace is header-only -- you can include the header and insert TRACEs into your code and that's it (no library to link against as the default).
Fast tracing is accomplished by writing the message and parameters to a circular memory buffer, along with timing and system information, without using any system calls.
This can be orders of magnitude faster times than the slow logging (writing to standard out, by default), and because it does not use system calls, it unlikely to
effect program flow.
Tracing can be controlled via environment variables and dynamically from outside the program so no extra command line parsing code is needed. TRACE includes a linux kernel module which will send scheduling and interrupt events to a circular memory buffer so that these events can be correlated with TRACEs from users' programs.
For the fast memory logging, the package includes a utility to display the logging and a "trace_delta.pl" script which can be used to get delta times between events with min, max, and average statistics.
See the Wiki for more information.
- Availability Hours:
|NOvA Simulation Request||0||0||0|
|Nova Simulation Problem||0||0||0|