package owee

  1. Overview
  2. Docs
OCaml library to work with DWARF format

Install

Dune Dependency

Authors

Maintainers

Sources

v0.3.tar.gz
md5=9fae9e98ce7a87380f22911fedb29d9a
sha512=90905485c93b350b8f601ff2dcc545a92badcf7dcb97c89ea18f479d6c08926e5cd68c74bd005d23d4396f057f66a1faa27f654bc2c4ac9d8030f143f197da9d

doc/owee/Owee_debug_line/index.html

Module Owee_debug_line

type header
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 = {
  1. mutable address : int;
  2. mutable filename : string;
  3. mutable file : int;
  4. mutable line : int;
  5. mutable col : int;
  6. mutable is_statement : bool;
  7. mutable basic_block : bool;
  8. mutable end_sequence : bool;
  9. mutable prologue_end : bool;
  10. mutable epilogue_begin : bool;
  11. mutable isa : int;
  12. mutable discriminator : int;
}

State of the linenumber automaton

val get_filename : header -> state -> string option

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.

OCaml

Innovation. Community. Security.