ReactOS 0.4.16-dev-303-g11d5cb8
|
#include <sys/types.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <assert.h>
#include <stdarg.h>
#include "windef.h"
#include "winternl.h"
#include "winbase.h"
#include "winuser.h"
#include "ole2.h"
#include "oleauto.h"
#include "dbghelp_private.h"
#include "image_private.h"
#include "zlib.h"
#include "wine/debug.h"
#include "dwarf.h"
Go to the source code of this file.
Classes | |
struct | dwarf2_abbrev_entry_attr_s |
struct | dwarf2_abbrev_entry_s |
struct | dwarf2_block |
struct | attribute |
struct | dwarf2_debug_info_s |
struct | dwarf2_section_s |
struct | dwarf2_traverse_context_s |
struct | dwarf2_parse_context_s |
struct | dwarf2_module_info_s |
struct | dwarf2_subprogram_s |
struct | frame_state |
struct | frame_info |
Macros | |
#define | NONAMELESSUNION |
#define | sc_void 0 |
#define | sc_int1 1 |
#define | sc_int2 2 |
#define | sc_int4 3 |
#define | sc_num 4 |
#define | loc_dwarf2_location_list (loc_user + 0) |
#define | loc_dwarf2_block (loc_user + 1) |
#define | Wine_DW_no_register 0x7FFFFFFF |
#define | NB_FRAME_REGS 64 |
#define | MAX_SAVED_STATES 16 |
Typedefs | |
typedef struct dwarf2_abbrev_entry_attr_s | dwarf2_abbrev_entry_attr_t |
typedef struct dwarf2_abbrev_entry_s | dwarf2_abbrev_entry_t |
typedef struct dwarf2_debug_info_s | dwarf2_debug_info_t |
typedef struct dwarf2_section_s | dwarf2_section_t |
typedef struct dwarf2_traverse_context_s | dwarf2_traverse_context_t |
typedef struct dwarf2_parse_context_s | dwarf2_parse_context_t |
typedef struct dwarf2_subprogram_s | dwarf2_subprogram_t |
Enumerations | |
enum | dwarf2_sections { section_debug , section_string , section_abbrev , section_line , section_ranges , section_max } |
enum | reg_rule { RULE_UNSET , RULE_UNDEFINED , RULE_SAME , RULE_CFA_OFFSET , RULE_OTHER_REG , RULE_EXPRESSION , RULE_VAL_EXPRESSION } |
Main Specs: http://www.eagercon.com/dwarf/dwarf3std.htm http://www.eagercon.com/dwarf/dwarf-2.0.0.pdf
dwarf2.h: http://www.hakpetzna.com/b/binutils/dwarf2_8h-source.html
example of projects who do dwarf2 parsing: http://www.x86-64.org/cgi-bin/cvsweb.cgi/binutils.dead/binutils/readelf.c?rev=1.1.1.2 http://elis.ugent.be/diota/log/ltrace_elf.c Parsers
typedef struct dwarf2_section_s dwarf2_section_t |
|
static |
Definition at line 3201 of file dwarf.c.
Referenced by dwarf2_virtual_unwind().
|
static |
Definition at line 655 of file dwarf.c.
Referenced by dwarf2_compute_location_attr(), dwarf2_location_compute(), and loc_compute_frame().
|
static |
Definition at line 3069 of file dwarf.c.
Referenced by apply_frame_state().
|
static |
Definition at line 380 of file dwarf.c.
Referenced by dwarf2_read_one_debug_info().
|
static |
Definition at line 885 of file dwarf.c.
Referenced by dwarf2_parse_subprogram(), dwarf2_parse_udt_member(), and dwarf2_parse_variable().
|
static |
Definition at line 367 of file dwarf.c.
Referenced by dwarf2_load_one_entry(), dwarf2_parse_array_type(), dwarf2_parse_base_type(), dwarf2_parse_const_type(), dwarf2_parse_enumeration_type(), dwarf2_parse_enumerator(), dwarf2_parse_inlined_subroutine(), dwarf2_parse_namespace(), dwarf2_parse_pointer_type(), dwarf2_parse_reference_type(), dwarf2_parse_subprogram(), dwarf2_parse_subprogram_block(), dwarf2_parse_subprogram_label(), dwarf2_parse_subroutine_type(), dwarf2_parse_typedef(), dwarf2_parse_udt_member(), dwarf2_parse_udt_type(), dwarf2_parse_unspecified_type(), dwarf2_parse_variable(), and dwarf2_parse_volatile_type().
|
static |
Definition at line 373 of file dwarf.c.
Referenced by dwarf2_parse_array_type(), dwarf2_parse_base_type(), dwarf2_parse_const_type(), dwarf2_parse_enumeration_type(), dwarf2_parse_enumerator(), dwarf2_parse_inlined_subroutine(), dwarf2_parse_namespace(), dwarf2_parse_pointer_type(), dwarf2_parse_reference_type(), dwarf2_parse_subprogram(), dwarf2_parse_subprogram_block(), dwarf2_parse_subprogram_label(), dwarf2_parse_subroutine_type(), dwarf2_parse_udt_member(), dwarf2_parse_udt_type(), dwarf2_parse_unspecified_type(), dwarf2_parse_variable(), and dwarf2_parse_volatile_type().
|
static |
Definition at line 362 of file dwarf.c.
Referenced by dwarf2_parse_abbrev_set(), and dwarf2_read_one_debug_info().
|
static |
Definition at line 486 of file dwarf.c.
Referenced by dwarf2_find_attribute().
|
static |
Definition at line 600 of file dwarf.c.
Referenced by dwarf2_compute_location_attr(), dwarf2_get_cpp_name(), dwarf2_get_di_children(), dwarf2_lookup_type(), dwarf2_parse_array_type(), dwarf2_parse_base_type(), dwarf2_parse_compilation_unit(), dwarf2_parse_enumeration_type(), dwarf2_parse_enumerator(), dwarf2_parse_pointer_type(), dwarf2_parse_subprogram(), dwarf2_parse_subprogram_label(), dwarf2_parse_typedef(), dwarf2_parse_udt_member(), dwarf2_parse_udt_type(), dwarf2_parse_unspecified_type(), dwarf2_parse_variable(), dwarf2_read_one_debug_info(), and dwarf2_read_range().
|
inlinestatic |
Definition at line 3496 of file dwarf.c.
Referenced by dwarf2_module_remove(), and dwarf2_parse().
Definition at line 336 of file dwarf.c.
Referenced by dwarf2_fill_attr(), dwarf2_lookup_loclist(), and dwarf2_parse_addr().
Definition at line 211 of file dwarf.c.
Referenced by dwarf2_fill_attr(), dwarf2_get_leb128_as_signed(), dwarf2_get_leb128_as_unsigned(), and dwarf2_parse_byte().
|
static |
Definition at line 2715 of file dwarf.c.
Referenced by dwarf2_virtual_unwind().
|
static |
Definition at line 970 of file dwarf.c.
Referenced by dwarf2_parse_subprogram(), dwarf2_parse_udt_type(), and dwarf2_parse_variable().
|
static |
Definition at line 1145 of file dwarf.c.
Referenced by dwarf2_parse_array_type(), dwarf2_parse_base_type(), dwarf2_parse_compilation_unit(), dwarf2_parse_const_type(), dwarf2_parse_enumeration_type(), dwarf2_parse_enumerator(), dwarf2_parse_inlined_subroutine(), dwarf2_parse_namespace(), dwarf2_parse_pointer_type(), dwarf2_parse_reference_type(), dwarf2_parse_subprogram(), dwarf2_parse_subprogram_block(), dwarf2_parse_subroutine_type(), dwarf2_parse_typedef(), dwarf2_parse_udt_member(), dwarf2_parse_udt_type(), dwarf2_parse_unspecified_type(), dwarf2_parse_variable(), and dwarf2_parse_volatile_type().
|
static |
Definition at line 287 of file dwarf.c.
Referenced by dwarf2_fill_attr(), and dwarf2_leb128_as_signed().
|
static |
Definition at line 259 of file dwarf.c.
Referenced by dwarf2_fill_attr(), and dwarf2_leb128_as_unsigned().
Definition at line 223 of file dwarf.c.
Referenced by dwarf2_fill_attr(), dwarf2_lookup_loclist(), and dwarf2_parse_u2().
Definition at line 235 of file dwarf.c.
Referenced by dwarf2_fill_attr(), dwarf2_get_addr(), and dwarf2_parse_u4().
Definition at line 247 of file dwarf.c.
Referenced by dwarf2_fill_attr(), dwarf2_get_addr(), and dwarf2_parse_u8().
|
inlinestatic |
Definition at line 3467 of file dwarf.c.
Referenced by dwarf2_parse().
|
inlinestatic |
Definition at line 3396 of file dwarf.c.
Referenced by dwarf2_init_section().
|
static |
Definition at line 312 of file dwarf.c.
Referenced by compute_location(), dwarf2_parse_augmentation_ptr(), dwarf2_parse_line_numbers(), eval_expression(), execute_cfa_instructions(), and parse_cie_details().
|
static |
Definition at line 276 of file dwarf.c.
Referenced by compute_location(), dwarf2_parse_abbrev_set(), dwarf2_parse_augmentation_ptr(), dwarf2_parse_line_numbers(), dwarf2_read_one_debug_info(), dwarf2_swallow_attribute(), dwarf2_virtual_unwind(), eval_expression(), execute_cfa_instructions(), and parse_cie_details().
|
static |
|
static |
Definition at line 2091 of file dwarf.c.
Referenced by dwarf2_lookup_type(), dwarf2_parse_compilation_unit(), and dwarf2_parse_namespace().
|
static |
Definition at line 3324 of file dwarf.c.
Referenced by dwarf2_parse().
|
static |
Definition at line 2480 of file dwarf.c.
Referenced by dwarf2_location_compute(), and loc_compute_frame().
|
static |
Definition at line 947 of file dwarf.c.
Referenced by dwarf2_parse_array_type(), dwarf2_parse_const_type(), dwarf2_parse_pointer_type(), dwarf2_parse_reference_type(), dwarf2_parse_subprogram(), dwarf2_parse_subroutine_type(), dwarf2_parse_typedef(), dwarf2_parse_udt_member(), dwarf2_parse_variable(), and dwarf2_parse_volatile_type().
Definition at line 644 of file dwarf.c.
Referenced by compute_location().
|
static |
Definition at line 3502 of file dwarf.c.
Referenced by dwarf2_parse().
BOOL dwarf2_parse | ( | struct module * | module, |
ULONG_PTR | load_offset, | ||
const struct elf_thunk_area * | thunks, | ||
struct image_file_map * | fmap | ||
) |
Definition at line 3509 of file dwarf.c.
Referenced by elf_load_debug_info_from_map(), macho_load_debug_info(), and pe_load_dwarf().
|
static |
Definition at line 387 of file dwarf.c.
Referenced by dwarf2_parse_compilation_unit().
|
static |
Definition at line 355 of file dwarf.c.
Referenced by compute_location(), dwarf2_parse_augmentation_ptr(), dwarf2_parse_line_numbers(), dwarf2_read_range(), and eval_expression().
|
static |
Definition at line 1255 of file dwarf.c.
Referenced by dwarf2_load_one_entry(), and dwarf2_parse_udt_type().
|
static |
Definition at line 2595 of file dwarf.c.
Referenced by dwarf2_get_cie(), dwarf2_virtual_unwind(), eval_expression(), execute_cfa_instructions(), and parse_cie_details().
|
static |
Definition at line 1161 of file dwarf.c.
Referenced by dwarf2_load_one_entry().
|
static |
Definition at line 216 of file dwarf.c.
Referenced by compute_location(), dwarf2_parse_abbrev_set(), dwarf2_parse_compilation_unit(), dwarf2_parse_line_numbers(), dwarf2_swallow_attribute(), eval_expression(), execute_cfa_instructions(), and parse_cie_details().
|
static |
Definition at line 2371 of file dwarf.c.
Referenced by dwarf2_parse().
|
static |
Definition at line 1303 of file dwarf.c.
Referenced by dwarf2_load_one_entry(), dwarf2_parse_subprogram(), dwarf2_parse_subprogram_block(), and dwarf2_parse_udt_type().
|
static |
Definition at line 1528 of file dwarf.c.
Referenced by dwarf2_load_one_entry(), and dwarf2_parse_udt_type().
|
static |
Definition at line 1512 of file dwarf.c.
Referenced by dwarf2_parse_enumeration_type().
|
static |
Definition at line 1754 of file dwarf.c.
Referenced by dwarf2_parse_inlined_subroutine(), dwarf2_parse_subprogram(), and dwarf2_parse_subprogram_block().
|
static |
Definition at line 2181 of file dwarf.c.
Referenced by dwarf2_parse_compilation_unit().
|
static |
Definition at line 2070 of file dwarf.c.
Referenced by dwarf2_load_one_entry().
|
static |
Definition at line 1234 of file dwarf.c.
Referenced by dwarf2_load_one_entry(), dwarf2_parse_subprogram(), and dwarf2_parse_subprogram_block().
|
static |
Definition at line 1368 of file dwarf.c.
Referenced by dwarf2_load_one_entry().
|
static |
Definition at line 1890 of file dwarf.c.
Referenced by dwarf2_load_one_entry(), and dwarf2_parse_udt_type().
|
static |
Definition at line 1808 of file dwarf.c.
Referenced by dwarf2_parse_inlined_subroutine(), dwarf2_parse_subprogram(), and dwarf2_parse_subprogram_block().
|
static |
Definition at line 1728 of file dwarf.c.
Referenced by dwarf2_parse_inlined_subroutine(), dwarf2_parse_subprogram(), and dwarf2_parse_subprogram_block().
|
static |
Definition at line 2028 of file dwarf.c.
Referenced by dwarf2_load_one_entry(), and dwarf2_parse_subprogram_block().
|
static |
Definition at line 1215 of file dwarf.c.
Referenced by dwarf2_load_one_entry().
|
static |
Definition at line 228 of file dwarf.c.
Referenced by compute_location(), dwarf2_parse_augmentation_ptr(), dwarf2_parse_compilation_unit(), dwarf2_parse_line_numbers(), dwarf2_swallow_attribute(), eval_expression(), and execute_cfa_instructions().
|
static |
Definition at line 240 of file dwarf.c.
Referenced by compute_location(), dwarf2_get_cie(), dwarf2_parse_augmentation_ptr(), dwarf2_parse_compilation_unit(), dwarf2_parse_line_numbers(), dwarf2_swallow_attribute(), eval_expression(), and execute_cfa_instructions().
|
static |
Definition at line 252 of file dwarf.c.
Referenced by compute_location(), dwarf2_parse_augmentation_ptr(), and eval_expression().
|
static |
Definition at line 1386 of file dwarf.c.
Referenced by dwarf2_parse_udt_type().
|
static |
Definition at line 1442 of file dwarf.c.
Referenced by dwarf2_load_one_entry().
|
static |
Definition at line 1343 of file dwarf.c.
Referenced by dwarf2_load_one_entry().
|
static |
Definition at line 1588 of file dwarf.c.
Referenced by dwarf2_load_one_entry(), dwarf2_parse_inlined_subroutine(), dwarf2_parse_subprogram(), and dwarf2_parse_subprogram_block().
|
static |