Next: c_trace tracing with curses, Previous: Command-line options for c_trace, Up: The c_trace backend [Contents][Index]
c_trace
tracingWithout --curses,
c_trace
alters the generated C code
to write data like the following to the standard error device:
[TRACE] phys: 1 | virt: 1 | action: RECV | event: 1 / 44001 | lines: 18 - 18 [TRACE] phys: 0 | virt: 0 | action: RESET | event: 1 / 88023 | lines: 17 - 17 [TRACE] phys: 0 | virt: 0 | action: SEND | event: 2 / 88023 | lines: 18 - 18 [TRACE] phys: 0 | virt: 0 | action: RECV | event: 3 / 88023 | lines: 19 - 19 [TRACE] phys: 1 | virt: 1 | action: SEND | event: 2 / 44001 | lines: 19 - 19 [TRACE] phys: 1 | virt: 1 | action: RECV | event: 3 / 44001 | lines: 18 - 18 [TRACE] phys: 0 | virt: 0 | action: CODE | event: 4 / 88023 | lines: 20 - 21 [TRACE] phys: 0 | virt: 0 | action: RESET | event: 5 / 88023 | lines: 17 - 17 [TRACE] phys: 0 | virt: 0 | action: SEND | event: 6 / 88023 | lines: 18 - 18 [TRACE] phys: 0 | virt: 0 | action: RECV | event: 7 / 88023 | lines: 19 - 19 . . .
The format is designed to be easy to read and easy for a program to parse. Each line of trace data begins with the string ‘[TRACE]’ and lists the (physical) processor number, the (virtual) task ID, the action (a.k.a., event type) that is about to be performed, the current event number and total number of events that will execute on the given processor, and the range of lines of source code to which the current event corresponds. An “event” corresponds more-or-less to a statement in the coNCePTuaL language.3 Loops are unrolled at initialization time and therefore produce no events. Event types, lists and briefly describes the various event types.
A more precise correspondence is to a <simple_stmt> in the formal grammar presented in Grammar.
Next: c_trace tracing with curses, Previous: Command-line options for c_trace, Up: The c_trace backend [Contents][Index]