#include "config.h"#include "libdwarfdefs.h"#include <elf.h>#include <dwarf.h>#include <libdwarf.h>#include "dwarf_base_types.h"#include "dwarf_alloc.h"#include "dwarf_opaque.h"#include "dwarf_arange.h"#include "dwarf_line.h"#include "dwarf_frame.h"#include <cmplrs/dwarf_addr_finder.h>#include "dwarf_error.h"

Go to the source code of this file.
Definition at line 57 of file dwarf_addr_finder.c.
| int _dwarf_addr_finder | ( | dwarf_elf_handle | elf_file_ptr, | |
| Dwarf_addr_callback_func | cb_func, | |||
| int * | dwerr | |||
| ) |
Definition at line 76 of file dwarf_addr_finder.c.
References dbg, DW_DLC_READ, DW_DLV_ERROR, DW_DLV_NO_ENTRY, DW_DLV_OK, dwarf_elf_init(), dwarf_errno(), dwarf_finish(), err, handle_debug_aranges(), handle_debug_frame(), handle_debug_info(), handle_debug_loc(), int, and send_addr_note.
| static int do_this_die_and_dealloc | ( | Dwarf_Debug | dbg, | |
| Dwarf_Die | die, | |||
| int * | errval | |||
| ) | [static] |
Definition at line 503 of file dwarf_addr_finder.c.
References DW_DLA_DIE, DW_DLA_ERROR, DW_DLV_ERROR, DW_DLV_NO_ENTRY, DW_DLV_OK, dwarf_child(), dwarf_dealloc(), dwarf_errno(), dwarf_siblingof(), err, int, and process_this_die_attrs().
Referenced by handle_debug_info().
| static int handle_attr_addr | ( | Dwarf_Debug | dbg, | |
| Dwarf_Die | die, | |||
| Dwarf_Half | attrnum, | |||
| Dwarf_Error * | perr | |||
| ) | [static] |
Definition at line 254 of file dwarf_addr_finder.c.
References addr(), DW_DLA_ATTR, DW_DLV_ERROR, DW_DLV_NO_ENTRY, DW_DLV_OK, DW_FORM_addr, DW_FORM_ref_addr, DW_SECTION_INFO, dwarf_attr(), dwarf_attr_offset(), dwarf_dealloc(), dwarf_formaddr(), dwarf_whatform(), offset, and send_addr_note.
Referenced by process_this_die_attrs().
| static int handle_attr_locdesc | ( | Dwarf_Debug | dbg, | |
| Dwarf_Die | die, | |||
| Dwarf_Half | attrnum, | |||
| Dwarf_Error * | perr | |||
| ) | [static] |
Definition at line 311 of file dwarf_addr_finder.c.
References _dwarf_error(), count, DW_DLA_ATTR, DW_DLA_LOC_BLOCK, DW_DLA_LOCDESC, DW_DLE_LOCDESC_COUNT_WRONG, DW_DLV_ERROR, DW_DLV_OK, DW_FORM_block1, DW_FORM_block2, DW_FORM_block4, DW_OP_addr, DW_SECTION_INFO, dwarf_attr(), dwarf_attr_offset(), dwarf_dealloc(), dwarf_loclist(), dwarf_whatform(), i, Dwarf_Locdesc::ld_cents, Dwarf_Locdesc::ld_s, Dwarf_Loc::lr_atom, Dwarf_Loc::lr_number, Dwarf_Loc::lr_offset, offset, and send_addr_note.
Referenced by process_this_die_attrs().
| static int handle_debug_aranges | ( | Dwarf_Debug | dbg, | |
| Dwarf_addr_callback_func | cb_func, | |||
| int * | errval | |||
| ) | [static] |
Definition at line 616 of file dwarf_addr_finder.c.
References _dwarf_get_aranges_addr_offsets(), count, DW_DLA_ADDR, DW_DLV_ERROR, DW_DLV_NO_ENTRY, DW_DLV_OK, DW_SECTION_ARANGES, dwarf_dealloc(), dwarf_errno(), err, indx, and int.
Referenced by _dwarf_addr_finder().
| static int handle_debug_frame | ( | Dwarf_Debug | dbg, | |
| Dwarf_addr_callback_func | cb_func, | |||
| int * | errval | |||
| ) | [static] |
Definition at line 586 of file dwarf_addr_finder.c.
References _dwarf_frame_address_offsets(), count, DW_DLA_ADDR, DW_DLV_ERROR, DW_DLV_NO_ENTRY, DW_DLV_OK, DW_SECTION_FRAME, dwarf_dealloc(), dwarf_errno(), err, i, and int.
Referenced by _dwarf_addr_finder().
| static int handle_debug_info | ( | Dwarf_Debug | dbg, | |
| int * | errval | |||
| ) | [static] |
Definition at line 175 of file dwarf_addr_finder.c.
References do_this_die_and_dealloc(), DW_DLV_ERROR, DW_DLV_NO_ENTRY, DW_DLV_OK, dwarf_errno(), dwarf_next_cu_header(), dwarf_siblingof(), err, and int.
Referenced by _dwarf_addr_finder().
| static int handle_debug_line | ( | Dwarf_Debug | dbg, | |
| Dwarf_Die | cu_die, | |||
| Dwarf_addr_callback_func | cb_func, | |||
| int * | errval | |||
| ) | [static] |
Definition at line 649 of file dwarf_addr_finder.c.
References _dwarf_line_address_offsets(), count, DW_DLA_ADDR, DW_DLV_ERROR, DW_DLV_NO_ENTRY, DW_DLV_OK, DW_SECTION_LINE, dwarf_dealloc(), dwarf_errno(), err, i, and int.
Referenced by process_this_die_attrs().
| static int handle_debug_loc | ( | void | ) | [static] |
Definition at line 685 of file dwarf_addr_finder.c.
References DW_DLV_NO_ENTRY.
Referenced by _dwarf_addr_finder().
| static int process_this_die_attrs | ( | Dwarf_Debug | dbg, | |
| Dwarf_Die | newdie, | |||
| int * | errval | |||
| ) | [static] |
Definition at line 405 of file dwarf_addr_finder.c.
References DW_DLV_ERROR, DW_DLV_OK, DW_TAG_compile_unit, dwarf_dieoffset(), dwarf_errno(), dwarf_hasattr(), err, handle_attr_addr(), handle_attr_locdesc(), handle_debug_line(), i, int, might_have_addr, might_have_locdesc, and send_addr_note.
Referenced by do_this_die_and_dealloc().
int might_have_addr[] [static] |
Initial value:
{
DW_AT_high_pc,
DW_AT_low_pc,
}
Definition at line 233 of file dwarf_addr_finder.c.
Referenced by process_this_die_attrs().
int might_have_locdesc[] [static] |
Initial value:
{
DW_AT_segment,
DW_AT_return_addr,
DW_AT_frame_base,
DW_AT_static_link,
DW_AT_data_member_location,
DW_AT_string_length,
DW_AT_location,
DW_AT_use_location,
DW_AT_vtable_elem_location,
}
Definition at line 238 of file dwarf_addr_finder.c.
Referenced by process_this_die_attrs().
Dwarf_addr_callback_func send_addr_note [static] |
Definition at line 73 of file dwarf_addr_finder.c.
Referenced by _dwarf_addr_finder(), handle_attr_addr(), handle_attr_locdesc(), and process_this_die_attrs().
1.5.6