#include "config.h"#include "dwarf_incl.h"#include <elf.h>#include <libelf/libelf.h>#include <stdio.h>#include <sys/stat.h>#include <sys/types.h>#include <string.h>#include <stdlib.h>#include <malloc.h>

Go to the source code of this file.
Defines | |
| #define | DWARF_DBG_ERROR(dbg, errval, retval) _dwarf_error(dbg, error, errval); return(retval); |
| #define | FALSE 0 |
| #define | TRUE 1 |
Functions/Subroutines | |
| Elf64_Ehdr * | elf64_getehdr (Elf *) |
| Elf64_Shdr * | elf64_getshdr (Elf_Scn *) |
| int | dwarf_set_stringcheck (int newval) |
| static int | _dwarf_setup (Dwarf_Debug dbg, dwarf_elf_handle elf, Dwarf_Error *error) |
| int | dwarf_init (int fd, Dwarf_Unsigned access, Dwarf_Handler errhand, Dwarf_Ptr errarg, Dwarf_Debug *ret_dbg, Dwarf_Error *error) |
| int | dwarf_elf_init (dwarf_elf_handle elf_file_pointer, Dwarf_Unsigned access, Dwarf_Handler errhand, Dwarf_Ptr errarg, Dwarf_Debug *ret_dbg, Dwarf_Error *error) |
| int | dwarf_finish (Dwarf_Debug dbg, Dwarf_Error *error) |
| int | dwarf_get_elf (Dwarf_Debug dbg, dwarf_elf_handle *elf, Dwarf_Error *error) |
| int | _dwarf_load_section (Dwarf_Debug dbg, Dwarf_Half section_index, Dwarf_Small **section_data, Dwarf_Error *error) |
Variables | |
| static Dwarf_Small | _dwarf_assume_string_bad |
| #define DWARF_DBG_ERROR | ( | dbg, | |||
| errval, | |||||
| retval | ) | _dwarf_error(dbg, error, errval); return(retval); |
Definition at line 74 of file dwarf_init_finish.c.
Referenced by _dwarf_load_section(), _dwarf_setup(), dwarf_elf_init(), dwarf_finish(), and dwarf_init().
| #define FALSE 0 |
Definition at line 77 of file dwarf_init_finish.c.
| #define TRUE 1 |
Definition at line 78 of file dwarf_init_finish.c.
| int _dwarf_load_section | ( | Dwarf_Debug | dbg, | |
| Dwarf_Half | section_index, | |||
| Dwarf_Small ** | section_data, | |||
| Dwarf_Error * | error | |||
| ) |
Definition at line 696 of file dwarf_init_finish.c.
References _dwarf_error(), Elf_Data::d_buf, Dwarf_Debug_s::de_elf, DW_DLE_MDE, DW_DLV_ERROR, DW_DLV_NO_ENTRY, DW_DLV_OK, DWARF_DBG_ERROR, elf_getdata(), elf_getscn(), and NULL.
Referenced by _dwarf_cie_section_offset(), _dwarf_fde_section_offset(), _dwarf_frame_address_offsets(), _dwarf_get_aranges_addr_offsets(), _dwarf_get_loclist_header_start(), _dwarf_internal_printlines(), _dwarf_internal_srclines(), _dwarf_load_debug_info(), dwarf_diename(), dwarf_formstring(), dwarf_get_aranges(), dwarf_get_fde_for_die(), dwarf_get_fde_list(), dwarf_get_fde_list_eh(), dwarf_get_funcs(), dwarf_get_globals(), dwarf_get_loclist_entry(), dwarf_get_macro_details(), dwarf_get_str(), dwarf_get_types(), dwarf_get_vars(), dwarf_get_weaks(), and dwarf_srcfiles().
| static int _dwarf_setup | ( | Dwarf_Debug | dbg, | |
| dwarf_elf_handle | elf, | |||
| Dwarf_Error * | error | |||
| ) | [static] |
Definition at line 147 of file dwarf_init_finish.c.
References _dwarf_assume_string_bad, _dwarf_memcpy_swap_bytes(), Dwarf_Debug_s::de_assume_string_in_bounds, Dwarf_Debug_s::de_big_endian_object, Dwarf_Debug_s::de_copy_word, Dwarf_Debug_s::de_debug_abbrev, Dwarf_Debug_s::de_debug_abbrev_index, Dwarf_Debug_s::de_debug_abbrev_size, Dwarf_Debug_s::de_debug_aranges_index, Dwarf_Debug_s::de_debug_aranges_size, Dwarf_Debug_s::de_debug_frame_eh_gnu_index, Dwarf_Debug_s::de_debug_frame_index, Dwarf_Debug_s::de_debug_frame_size, Dwarf_Debug_s::de_debug_frame_size_eh_gnu, Dwarf_Debug_s::de_debug_funcnames_index, Dwarf_Debug_s::de_debug_funcnames_size, Dwarf_Debug_s::de_debug_info, Dwarf_Debug_s::de_debug_info_index, Dwarf_Debug_s::de_debug_info_size, Dwarf_Debug_s::de_debug_line_index, Dwarf_Debug_s::de_debug_line_size, Dwarf_Debug_s::de_debug_loc_index, Dwarf_Debug_s::de_debug_loc_size, Dwarf_Debug_s::de_debug_macinfo_index, Dwarf_Debug_s::de_debug_macinfo_size, Dwarf_Debug_s::de_debug_pubnames_index, Dwarf_Debug_s::de_debug_pubnames_size, Dwarf_Debug_s::de_debug_str_index, Dwarf_Debug_s::de_debug_str_size, Dwarf_Debug_s::de_debug_typenames_index, Dwarf_Debug_s::de_debug_typenames_size, Dwarf_Debug_s::de_debug_varnames_index, Dwarf_Debug_s::de_debug_varnames_size, Dwarf_Debug_s::de_debug_weaknames_index, Dwarf_Debug_s::de_debug_weaknames_size, Dwarf_Debug_s::de_elf, Dwarf_Debug_s::de_length_size, Dwarf_Debug_s::de_pointer_size, Dwarf_Debug_s::de_same_endian, DW_DLE_DEBUG_ABBREV_DUPLICATE, DW_DLE_DEBUG_ABBREV_NULL, DW_DLE_DEBUG_ARANGES_DUPLICATE, DW_DLE_DEBUG_FRAME_DUPLICATE, DW_DLE_DEBUG_FUNCNAMES_DUPLICATE, DW_DLE_DEBUG_INFO_DUPLICATE, DW_DLE_DEBUG_INFO_NULL, DW_DLE_DEBUG_LINE_DUPLICATE, DW_DLE_DEBUG_LOC_DUPLICATE, DW_DLE_DEBUG_MACINFO_DUPLICATE, DW_DLE_DEBUG_PUBNAMES_DUPLICATE, DW_DLE_DEBUG_STR_DUPLICATE, DW_DLE_DEBUG_TYPENAMES_DUPLICATE, DW_DLE_DEBUG_VARNAMES_DUPLICATE, DW_DLE_DEBUG_WEAKNAMES_DUPLICATE, DW_DLE_ELF_GETEHDR_ERROR, DW_DLE_ELF_GETIDENT_ERROR, DW_DLE_ELF_GETSHDR_ERROR, DW_DLE_ELF_STRPTR_ERROR, DW_DLE_MDE, DW_DLV_ERROR, DW_DLV_NO_ENTRY, DW_DLV_OK, DWARF_DBG_ERROR, Elf64_Ehdr::e_ident, Elf32_Ehdr::e_machine, Elf64_Ehdr::e_machine, Elf64_Ehdr::e_shnum, Elf32_Ehdr::e_shnum, Elf64_Ehdr::e_shstrndx, Elf32_Ehdr::e_shstrndx, EI_CLASS, EI_DATA, elf32_getehdr(), elf32_getshdr(), elf64_getehdr(), elf64_getshdr(), elf_getident(), elf_getscn(), elf_strptr(), ELFCLASS64, ELFDATA2LSB, ELFDATA2MSB, EM_MIPS, FALSE, machine, memcpy, NULL, section_count, Elf32_Shdr::sh_name, Elf32_Shdr::sh_size, strcmp(), strncmp(), and TRUE.
Referenced by dwarf_elf_init(), and dwarf_init().
| int dwarf_elf_init | ( | dwarf_elf_handle | elf_file_pointer, | |
| Dwarf_Unsigned | access, | |||
| Dwarf_Handler | errhand, | |||
| Dwarf_Ptr | errarg, | |||
| Dwarf_Debug * | ret_dbg, | |||
| Dwarf_Error * | error | |||
| ) |
Definition at line 607 of file dwarf_init_finish.c.
References _dwarf_get_debug(), _dwarf_setup(), _dwarf_setup_debug(), dbg, Dwarf_Debug_s::de_access, Dwarf_Debug_s::de_elf_must_close, Dwarf_Debug_s::de_errarg, Dwarf_Debug_s::de_errhand, DW_DLC_READ, DW_DLE_DBG_ALLOC, DW_DLE_INIT_ACCESS_WRONG, DW_DLV_ERROR, DW_DLV_OK, DWARF_DBG_ERROR, free(), and NULL.
Referenced by _dwarf_addr_finder(), and process_one_file().
| int dwarf_finish | ( | Dwarf_Debug | dbg, | |
| Dwarf_Error * | error | |||
| ) |
Definition at line 648 of file dwarf_init_finish.c.
References _dwarf_free_all_of_one_debug(), Dwarf_Debug_s::de_elf, Dwarf_Debug_s::de_elf_must_close, DW_DLE_DBG_ALLOC, DW_DLV_ERROR, DW_DLV_OK, DWARF_DBG_ERROR, and elf_end().
Referenced by _dwarf_addr_finder(), and process_one_file().
| int dwarf_get_elf | ( | Dwarf_Debug | dbg, | |
| dwarf_elf_handle * | elf, | |||
| Dwarf_Error * | error | |||
| ) |
Definition at line 678 of file dwarf_init_finish.c.
References _dwarf_error(), Dwarf_Debug_s::de_elf, DW_DLE_DBG_NULL, DW_DLV_ERROR, DW_DLV_OK, and NULL.
Referenced by print_relocinfo().
| int dwarf_init | ( | int | fd, | |
| Dwarf_Unsigned | access, | |||
| Dwarf_Handler | errhand, | |||
| Dwarf_Ptr | errarg, | |||
| Dwarf_Debug * | ret_dbg, | |||
| Dwarf_Error * | error | |||
| ) |
Definition at line 527 of file dwarf_init_finish.c.
References _dwarf_get_debug(), _dwarf_setup(), _dwarf_setup_debug(), dbg, Dwarf_Debug_s::de_access, Dwarf_Debug_s::de_elf_must_close, Dwarf_Debug_s::de_errarg, Dwarf_Debug_s::de_errhand, DW_DLC_READ, DW_DLE_DBG_ALLOC, DW_DLE_ELF_BEGIN_ERROR, DW_DLE_FSTAT_ERROR, DW_DLE_FSTAT_MODE_ERROR, DW_DLE_INIT_ACCESS_WRONG, DW_DLE_MAF, DW_DLV_ERROR, DW_DLV_OK, DWARF_DBG_ERROR, elf_begin(), ELF_C_READ, elf_version(), EV_CURRENT, free(), fstat, NULL, S_ISREG, and stat::st_mode.
| int dwarf_set_stringcheck | ( | int | newval | ) |
| Elf64_Ehdr* elf64_getehdr | ( | Elf * | ) |
Referenced by _dwarf_setup(), main(), print_relocinfo_64(), Read_Elf_File(), xlate_init_elf(), and xlate_named_init_elf().
| Elf64_Shdr* elf64_getshdr | ( | Elf_Scn * | ) |
Referenced by _dwarf_setup(), Create_New_Section(), Em_Add_Address_To_Scn(), Em_Get_Section_Align(), Em_Get_Section_Entsize(), Em_Get_Section_Flags(), Em_Get_Section_Info(), Em_Get_Section_Name(), Em_Get_Section_Type(), Em_Set_sh_info(), Em_Set_sh_link(), print_relocinfo_64(), Read_Elf_File(), xlate_init_elf(), and xlate_named_init_elf().
Dwarf_Small _dwarf_assume_string_bad [static] |
Definition at line 98 of file dwarf_init_finish.c.
Referenced by _dwarf_setup(), and dwarf_set_stringcheck().
1.5.6