- publishing free software manuals
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
ISBN 0954612051
RRP £12.95 ($19.95)

Get a printed copy>>>

13.2.1 Grammar

ProfileDataFile := FormatVersion? Creator? PartData*
FormatVersion := "version:" Space* Number "\n"
Creator := "creator:" NoNewLineChar* "\n"
PartData := (HeaderLine "\n")+ (BodyLine "\n")+
HeaderLine := (empty line)
  | ('#' NoNewLineChar*)
  | PartDetail
  | Description
  | EventSpecification
  | CostLineDef
PartDetail := TargetCommand | TargetID
TargetCommand := "cmd:" Space* NoNewLineChar*
TargetID := ("pid"|"thread"|"part") ":" Space* Number
Description := "desc:" Space* Name Space* ":" NoNewLineChar*
EventSpecification := "event:" Space* Name InheritedDef?
  LongNameDef?
InheritedDef := "=" InheritedExpr
InheritedExpr := Name
  | Number Space* ("*" Space*)? Name
  | InheritedExpr Space* "+" Space* InheritedExpr
LongNameDef := ":" NoNewLineChar*
CostLineDef := "events:" Space* Name (Space+ Name)*
  | "positions:" "instr"? (Space+ "line")?
BodyLine := (empty line)
  | ('#' NoNewLineChar*)
  | CostLine
  | PositionSpecification
  | AssociationSpecification
CostLine := SubPositionList Costs?
SubPositionList := (SubPosition+ Space+)+
SubPosition := Number | "+" Number | "-" Number | "*"
Costs := (Number Space+)+
PositionSpecification := Position "=" Space* PositionName
Position := CostPosition | CalledPosition
CostPosition := "ob" | "fl" | "fi" | "fe" | "fn"
CalledPosition := " "cob" | "cfl" | "cfn"
PositionName := ( "(" Number ")" )? (Space* NoNewLineChar* )?
AssociationSpecification := CallSpecification
  | JumpSpecification
CallSpecification := CallLine "\n" CostLine
CallLine := "calls=" Space* Number Space+ SubPositionList
JumpSpecification := ...
Space := " " | "\t"
Number := HexNumber | (Digit)+
Digit := "0" | ... | "9"
HexNumber := "0x" (Digit | HexChar)+
HexChar := "a" | ... | "f" | "A" | ... | "F"
Name = Alpha (Digit | Alpha)*
Alpha = "a" | ... | "z" | "A" | ... | "Z"
NoNewLineChar := all characters without "\n"
ISBN 0954612051Valgrind 3.3 - Advanced Debugging and Profiling for GNU/Linux applicationsSee the print edition