|Valgrind 3.3 - Advanced Debugging and Profiling for GNU/Linux applications|
by J. Seward, N. Nethercote, J. Weidendorfer and the Valgrind Development Team
Paperback (6"x9"), 164 pages
RRP £12.95 ($19.95)
13.2.2 Description of Header Lines
The header has an arbitrary number of lines of the format “key: value”. Possible key values for the header are:
- ‘version: number’ [Callgrind] This is used to distinguish future profile data formats. A major version of 0 or 1 is supposed to be upwards compatible with Cachegrind's format. It is optional; if not appearing, version 1 is supposed. Otherwise, this has to be the first header line.
- ‘pid: process id’ [Callgrind] This specifies the process ID of the supervised application for which this profile was generated.
- ‘cmd: program name + args’ [Cachegrind] This specifies the full command line of the supervised application for which this profile was generated.
- ‘part: number’ [Callgrind] This specifies a sequentially incremented number for each dump generated, starting at 1.
- ‘desc: type: value’ [Cachegrind] This specifies various information for this dump. For some types, the semantic is defined, but any description type is allowed. Unknown types should be ignored. There are the types “I1 cache”, “D1 cache”, “L2 cache”, which specify parameters used for the cache simulator. These are the only types originally used by Cachegrind. Additionally, Callgrind uses the following types: “Timerange” gives a rough range of the basic block counter, for which the cost of this dump was collected. Type “Trigger” states the reason of why this trace was generated. E.g. program termination or forced interactive dump.
- ‘positions: [instr] [line]’ [Callgrind] For cost lines, this defines the semantic of the first numbers. Any combination of “instr”, “bb” and “line” is allowed, but has to be in this order which corresponds to position numbers at the start of the cost lines later in the file. If “instr” is specified, the position is the address of an instruction whose execution raised the events given later on the line. This address is relative to the offset of the binary/shared library file to not have to specify relocation info. For “line”, the position is the line number of a source file, which is responsible for the events raised. Note that the mapping of “instr” and “line” positions are given by the debugging line information produced by the compiler. This field is optional. If not specified, “line” is supposed only.
‘events: event type abbreviations’ [Cachegrind]
A list of short names of the event types logged in this file.
The order is the same as in cost lines. The first event type is the
second or third number in a cost line, depending on the value of
“positions”. Callgrind does not add additional cost types. Specify
Cost types from original Cachegrind are:
Ir: Instruction read access
I1mr: Instruction Level 1 read cache miss
I2mr: Instruction Level 2 read cache miss
- ‘summary: costs’ [Callgrind] ‘totals: costs’ [Cachegrind] The value or the total number of events covered by this trace file. Both keys have the same meaning, but the “totals:” line happens to be at the end of the file, while “summary:” appears in the header. This was added to allow postprocessing tools to know in advance to total cost. The two lines always give the same cost counts.
|ISBN 0954612051||Valgrind 3.3 - Advanced Debugging and Profiling for GNU/Linux applications||See the print edition|