You can run tracelogger in several modes — depending on how and what you want to trace — by specifying the following command-line options:
In ring mode, tracelogger doesn't capture the events until it gets a SIGINT signal (e.g. you press CtrlC), or an application calls TraceEvent() with a command of _NTO_TRACE_STOP.
If you don't specify the -r option, tracelogger runs in linear mode; every filled-up buffer is captured and flushed immediately.
All of the above, except for daemon mode, constitute normal mode. In normal mode, you configure, start, and stop the tracing from the command line; in daemon (-d1) mode, your application must do everything from code. However, if you also use the -E option, you get the best of both modes: the command-line configuration of normal mode, and the full control of daemon mode.
Here's an outline of the strengths, weaknesses, and features of these modes:
Feature | Normal mode | Daemon mode | Extended daemon mode |
---|---|---|---|
tracelogger support | Full | Limited | Full |
Controllability | Limited | Full | Full |
Events recorded by default | All | None | All |
Configuration difficulty | Easy | Harder | Easy |
Configuration method | Command line only | User program, using calls to TraceEvent() | Command line and user program |
Logging starts | Instantaneously | Through a user program; also calls to TraceEvent() | Through a user program; also calls to TraceEvent() |
For a full description of the tracelogger utility and its options, see its entry in the QNX Neutrino Utilities Reference.