Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
val read_chunk : Owee_buf.cursor -> (header * Owee_buf.cursor) option
read_chunk cursor
expects cursor to be pointing to the beginning of a DWARF linenumber program. Those are usually put in ".debug_line" section of an ELF binary. Iff such a program is found, the cursor
is advanced to the next one (or to the end) and Some (header, cursor')
is returned.
type state = {
mutable address : int;
mutable filename : string;
mutable file : int;
mutable line : int;
mutable col : int;
mutable is_statement : bool;
mutable basic_block : bool;
mutable end_sequence : bool;
mutable prologue_end : bool;
mutable epilogue_begin : bool;
mutable isa : int;
mutable discriminator : int;
}
State of the linenumber automaton
get_filename header state
get the filename associated to the row described by state
. Linenumber programs are allowed to store the filename as an index to a registry in the state.file
field. This function reads this registry if state.file
is valid, or returns state.filename
.
val fold_rows :
(header * Owee_buf.cursor) ->
(header -> state -> 'a -> 'a) ->
'a ->
'a
fold_rows (header, cursor) f init
will fold over the rows defined by the program described by (header, cursor)
, using the function f
and initial state init
.