dbghelp: Update/clarify dwarf definitions for 3/3f/4 standard versions.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Eric Pouech 2021-09-02 11:22:13 +02:00 committed by Alexandre Julliard
parent 598e577475
commit 1a2d1e1a8a
1 changed files with 39 additions and 3 deletions

View File

@ -167,8 +167,7 @@ typedef enum dwarf_attribute_e
DW_AT_allocated = 0x4e, DW_AT_allocated = 0x4e,
DW_AT_associated = 0x4f, DW_AT_associated = 0x4f,
DW_AT_data_location = 0x50, DW_AT_data_location = 0x50,
DW_AT_byte_stride = 0x51, DW_AT_byte_stride = 0x51, /* used to be DW_AT_stride in Dwarf3 (not final) */
DW_AT_stride = 0x51,
DW_AT_entry_pc = 0x52, DW_AT_entry_pc = 0x52,
DW_AT_use_UTF8 = 0x53, DW_AT_use_UTF8 = 0x53,
DW_AT_extension = 0x54, DW_AT_extension = 0x54,
@ -178,7 +177,7 @@ typedef enum dwarf_attribute_e
DW_AT_call_file = 0x58, DW_AT_call_file = 0x58,
DW_AT_call_line = 0x59, DW_AT_call_line = 0x59,
DW_AT_description = 0x5a, DW_AT_description = 0x5a,
/** Dwarf3 new values */ /** Dwarf3 (final) new values */
DW_AT_binary_scale = 0x5b, DW_AT_binary_scale = 0x5b,
DW_AT_decimal_scale = 0x5c, DW_AT_decimal_scale = 0x5c,
DW_AT_small = 0x5d, DW_AT_small = 0x5d,
@ -283,12 +282,15 @@ typedef enum dwarf_type_e
DW_ATE_unsigned_char = 0x8, DW_ATE_unsigned_char = 0x8,
/* Dwarf3 new values */ /* Dwarf3 new values */
DW_ATE_imaginary_float = 0x9, DW_ATE_imaginary_float = 0x9,
/* Dwarf3 (final) new values */
DW_ATE_packed_decimal = 0xa, DW_ATE_packed_decimal = 0xa,
DW_ATE_numeric_string = 0xb, DW_ATE_numeric_string = 0xb,
DW_ATE_edited = 0xc, DW_ATE_edited = 0xc,
DW_ATE_signed_fixed = 0xd, DW_ATE_signed_fixed = 0xd,
DW_ATE_unsigned_fixed = 0xe, DW_ATE_unsigned_fixed = 0xe,
DW_ATE_decimal_float = 0xf, DW_ATE_decimal_float = 0xf,
/* Dwarf4 new values */
DW_ATE_UTF = 0x10,
} dwarf_type_t; } dwarf_type_t;
typedef enum dwarf_operation_e typedef enum dwarf_operation_e
@ -443,6 +445,7 @@ typedef enum dwarf_operation_e
DW_OP_call2 = 0x98, DW_OP_call2 = 0x98,
DW_OP_call4 = 0x99, DW_OP_call4 = 0x99,
DW_OP_call_ref = 0x9a, DW_OP_call_ref = 0x9a,
/** Dwarf3 (final) new values */
DW_OP_form_tls_address = 0x9b, DW_OP_form_tls_address = 0x9b,
DW_OP_call_frame_cfa = 0x9c, DW_OP_call_frame_cfa = 0x9c,
DW_OP_bit_piece = 0x9d, DW_OP_bit_piece = 0x9d,
@ -497,6 +500,8 @@ enum dwarf_calling_convention
#define DW_LNE_define_file 0x03 #define DW_LNE_define_file 0x03
/* Dwarf4 new values */ /* Dwarf4 new values */
#define DW_LNE_set_discriminator 0x04 #define DW_LNE_set_discriminator 0x04
#define DW_LNE_lo_user 0x80
#define DW_LNE_hi_user 0xff
#define DW_CIE_ID ~(0x0) #define DW_CIE_ID ~(0x0)
@ -520,11 +525,13 @@ enum dwarf_call_frame_info
DW_CFA_def_cfa = 0x0c, DW_CFA_def_cfa = 0x0c,
DW_CFA_def_cfa_register = 0x0d, DW_CFA_def_cfa_register = 0x0d,
DW_CFA_def_cfa_offset = 0x0e, DW_CFA_def_cfa_offset = 0x0e,
/* Dwarf3 new values */
DW_CFA_def_cfa_expression = 0x0f, DW_CFA_def_cfa_expression = 0x0f,
DW_CFA_expression = 0x10, DW_CFA_expression = 0x10,
DW_CFA_offset_extended_sf = 0x11, DW_CFA_offset_extended_sf = 0x11,
DW_CFA_def_cfa_sf = 0x12, DW_CFA_def_cfa_sf = 0x12,
DW_CFA_def_cfa_offset_sf = 0x13, DW_CFA_def_cfa_offset_sf = 0x13,
/* Dwarf3 (final) new values */
DW_CFA_val_offset = 0x14, DW_CFA_val_offset = 0x14,
DW_CFA_val_offset_sf = 0x15, DW_CFA_val_offset_sf = 0x15,
DW_CFA_val_expression = 0x16, DW_CFA_val_expression = 0x16,
@ -554,3 +561,32 @@ enum dwarf_call_frame_info
#define DW_INL_inlined 0x01 #define DW_INL_inlined 0x01
#define DW_INL_declared_not_inlined 0x02 #define DW_INL_declared_not_inlined 0x02
#define DW_INL_declared_inlined 0x03 #define DW_INL_declared_inlined 0x03
/* DWARF languages */
enum
{
DW_LANG_C89 = 0x0001,
DW_LANG_C = 0x0002,
DW_LANG_Ada83 = 0x0003,
DW_LANG_C_plus_plus = 0x0004,
DW_LANG_Cobol74 = 0x0005,
DW_LANG_Cobol85 = 0x0006,
DW_LANG_Fortran77 = 0x0007,
DW_LANG_Fortran90 = 0x0008,
DW_LANG_Pascal83 = 0x0009,
DW_LANG_Modula2 = 0x000a,
/* Dwarf3 additions */
DW_LANG_Java = 0x000b,
DW_LANG_C99 = 0x000c,
DW_LANG_Ada95 = 0x000d,
DW_LANG_Fortran95 = 0x000e,
DW_LANG_PLI = 0x000f,
/* Dwarf3 (final) additions */
DW_LANG_ObjC = 0x0010,
DW_LANG_ObjC_plus_plus = 0x0011,
DW_LANG_UPC = 0x0012,
DW_LANG_D = 0x0013,
DW_LANG_lo_user = 0x8000,
DW_LANG_hi_user = 0xffff
};