***************** experimental DWARF reading ***********
debug
val my_debug : 'a -> unit
val my_debug2 : 'a -> unit
val my_debug3 : 'a -> unit
val my_debug4 : string -> unit
val my_debug5 : string -> unit
************************************************************
** dwarf representation types ****************************
************************************************************
type dwarf_attribute_classes =
| DWA_7_5_3
| DWA_address
| DWA_block
| DWA_constant
| DWA_dash
| DWA_exprloc
| DWA_flag
| DWA_lineptr
| DWA_loclistptr
| DWA_macptr
| DWA_rangelistptr
| DWA_reference
| DWA_string
type operation_argument_type =
| OAT_addr
| OAT_dwarf_format_t
| OAT_uint8
| OAT_uint16
| OAT_uint32
| OAT_uint64
| OAT_sint8
| OAT_sint16
| OAT_sint32
| OAT_sint64
| OAT_ULEB128
| OAT_SLEB128
| OAT_block
type 'a register_read_result =
| RRR_result of Nat_big_num.num
| RRR_not_currently_available
| RRR_bad_register_number
type 'a memory_read_result =
| MRR_result of Nat_big_num.num
| MRR_not_currently_available
| MRR_bad_address
type call_frame_argument_type =
| CFAT_address
| CFAT_delta1
| CFAT_delta2
| CFAT_delta4
| CFAT_delta_ULEB128
| CFAT_offset
| CFAT_sfoffset
| CFAT_register
| CFAT_block
type frame_info_element =
| FIE_cie of cie
| FIE_fde of fde
type line_number_argument_type =
| LNAT_address
| LNAT_ULEB128
| LNAT_SLEB128
| LNAT_uint16
| LNAT_string
type unpacked_file_entry = string option * string option * string
context for parsing and pp functions
type decl = {
decl_file : string option;
decl_line : Nat_big_num.num option;
}
type struct_union_type_kind =
| Atk_structure
| Atk_union
type sdt_unspecified_parameter = unit
type sdt_subroutine_kind =
| SSK_subprogram
| SSK_inlined_subroutine
************************************************************
** missing pervasives ************************************
************************************************************
************************************************************
** endianness ***************************************
************************************************************
************************************************************
** dwarf encodings ***************************************
************************************************************
************************************************************
** more missing pervasives and bits ***********************
************************************************************
val myconcat : string -> string list -> string
val myhead : 'a list -> 'a
val myfindNonPure : ('a -> bool) -> 'a list -> 'a
val myfindmaybe : ('a -> 'b option) -> 'a list -> 'b option
val myfind : ('a -> bool) -> 'a list -> 'a option
val myfiltermaybe : ('a -> 'b option) -> 'a list -> 'b list
val mytake' :
Nat_big_num.num ->
'a list ->
'a list ->
('a list * 'a list) option
basic pretty printing
val string_of_bytes : char list -> string
val just_one : string -> 'a list -> 'a
lookup of encodings
************************************************************
** parser combinators and primitives *********************
************************************************************
val pp_parse_result : ('a -> string) -> 'a parse_result -> string
************************************************************
** parsing and pretty printing of .debug_* sections ******
************************************************************
abbreviations table: pp and parsing
val pp_abbreviations_tables : dwarf -> string
debug_str entry
operations: pp and parsing
attribute values: pp and parsing
************************************************************
** finding things in the die tree
************************************************************
val find_maybe : ('a -> 'b option) -> 'a list -> 'b option
convert attribute values to usable Lem types
attribute find
val find_flag_attribute_value_of_die : string -> die -> bool option
val find_flag_attribute_value_of_die_default_false : string -> die -> bool
val find_flag_attribute_value_of_die_using_abstract_origin :
dwarf ->
string ->
cupdie ->
bool option
compilation unit header: pp and parsing
type unit header: pp and parsing
debugging information entries: pp and parsing
debugging information entries: pp and parsing
val has_attribute : string -> die -> bool
compilation units: pp and parsing
type units: pp and parsing
location lists, pp and parsing
range lists, pp and parsing
frame information, pp and parsing
val pp_cie : 'a -> 'b -> cie -> string
val pp_fde : 'a -> 'b -> fde -> string
line numbers .debug_line, pp and parsing
all dwarf info: pp and parsing
val pp_dwarf_like_objdump : dwarf -> string
val pp_dwarf : dwarf -> string
************************************************************
****** location evaluation ********************************
************************************************************
pp of locations
evaluation of location expressions
val initial_state : state
************************************************************
**** evaluation of frame information **********************
************************************************************
register maps
pp of evaluated cfa information from .debug_frame
val pad_rows : string list list -> string
evaluation of cfa information from .debug_frame
************************************************************
** pp of type info
************************************************************
val strict : (unit -> string) -> 'a option -> 'a
val pp_type_info_top : ('a -> string) -> 'a c_type_top -> string
val pp_type_info_deep : c_type -> string
val pp_struct_union_type_defn' : c_type -> string
val pp_all_struct_union_enum_types' : dwarf -> string
************************************************************
** analysis of location and frame data for reverse mapping
************************************************************
analysis
simple-minded analysis of location
more proper analysis of locations
**********************************************************************
** estimate source-file line extents of each (non-inlined) subprogram
**********************************************************************
************************************************************
** pull out subprograms
************************************************************
************************************************************
** evaluation of line-number info
************************************************************
************************************************************
** collecting all the statically calculated analysis info
************************************************************
************************************************************
** collect simple die tree view
************************************************************
val strict_mss : 'a option -> string -> ('b -> string) -> 'b -> 'a
val strict_mscu : 'a option -> string -> ('b -> string) -> 'b -> 'a
val pp_sdt_maybe : 'a option -> ('a -> string) -> string
val pp_sdt_maybe' : ('a -> string) -> 'a option -> string
val pp_sdt_list : 'a list -> ('a -> string) -> string
val pp_sdt_globals_dwarf : sdt_dwarf -> string
val pp_sdt_locals_dwarf : sdt_dwarf -> string
************************************************************
** analysis of inlined_subroutine data
************************************************************
val pp_inlined_subroutine_parents : die list -> string
************************************************************
** pp of text section
************************************************************
************************************************************
** top level for main_elf ********************************
************************************************************