📄 cfi_annotations.patch
字号:
+ DW_OP_lit0 = 0x30,+ DW_OP_lit1 = 0x31,+ DW_OP_lit2 = 0x32,+ DW_OP_lit3 = 0x33,+ DW_OP_lit4 = 0x34,+ DW_OP_lit5 = 0x35,+ DW_OP_lit6 = 0x36,+ DW_OP_lit7 = 0x37,+ DW_OP_lit8 = 0x38,+ DW_OP_lit9 = 0x39,+ DW_OP_lit10 = 0x3a,+ DW_OP_lit11 = 0x3b,+ DW_OP_lit12 = 0x3c,+ DW_OP_lit13 = 0x3d,+ DW_OP_lit14 = 0x3e,+ DW_OP_lit15 = 0x3f,+ DW_OP_lit16 = 0x40,+ DW_OP_lit17 = 0x41,+ DW_OP_lit18 = 0x42,+ DW_OP_lit19 = 0x43,+ DW_OP_lit20 = 0x44,+ DW_OP_lit21 = 0x45,+ DW_OP_lit22 = 0x46,+ DW_OP_lit23 = 0x47,+ DW_OP_lit24 = 0x48,+ DW_OP_lit25 = 0x49,+ DW_OP_lit26 = 0x4a,+ DW_OP_lit27 = 0x4b,+ DW_OP_lit28 = 0x4c,+ DW_OP_lit29 = 0x4d,+ DW_OP_lit30 = 0x4e,+ DW_OP_lit31 = 0x4f,+ DW_OP_reg0 = 0x50,+ DW_OP_reg1 = 0x51,+ DW_OP_reg2 = 0x52,+ DW_OP_reg3 = 0x53,+ DW_OP_reg4 = 0x54,+ DW_OP_reg5 = 0x55,+ DW_OP_reg6 = 0x56,+ DW_OP_reg7 = 0x57,+ DW_OP_reg8 = 0x58,+ DW_OP_reg9 = 0x59,+ DW_OP_reg10 = 0x5a,+ DW_OP_reg11 = 0x5b,+ DW_OP_reg12 = 0x5c,+ DW_OP_reg13 = 0x5d,+ DW_OP_reg14 = 0x5e,+ DW_OP_reg15 = 0x5f,+ DW_OP_reg16 = 0x60,+ DW_OP_reg17 = 0x61,+ DW_OP_reg18 = 0x62,+ DW_OP_reg19 = 0x63,+ DW_OP_reg20 = 0x64,+ DW_OP_reg21 = 0x65,+ DW_OP_reg22 = 0x66,+ DW_OP_reg23 = 0x67,+ DW_OP_reg24 = 0x68,+ DW_OP_reg25 = 0x69,+ DW_OP_reg26 = 0x6a,+ DW_OP_reg27 = 0x6b,+ DW_OP_reg28 = 0x6c,+ DW_OP_reg29 = 0x6d,+ DW_OP_reg30 = 0x6e,+ DW_OP_reg31 = 0x6f,+ DW_OP_breg0 = 0x70,+ DW_OP_breg1 = 0x71,+ DW_OP_breg2 = 0x72,+ DW_OP_breg3 = 0x73,+ DW_OP_breg4 = 0x74,+ DW_OP_breg5 = 0x75,+ DW_OP_breg6 = 0x76,+ DW_OP_breg7 = 0x77,+ DW_OP_breg8 = 0x78,+ DW_OP_breg9 = 0x79,+ DW_OP_breg10 = 0x7a,+ DW_OP_breg11 = 0x7b,+ DW_OP_breg12 = 0x7c,+ DW_OP_breg13 = 0x7d,+ DW_OP_breg14 = 0x7e,+ DW_OP_breg15 = 0x7f,+ DW_OP_breg16 = 0x80,+ DW_OP_breg17 = 0x81,+ DW_OP_breg18 = 0x82,+ DW_OP_breg19 = 0x83,+ DW_OP_breg20 = 0x84,+ DW_OP_breg21 = 0x85,+ DW_OP_breg22 = 0x86,+ DW_OP_breg23 = 0x87,+ DW_OP_breg24 = 0x88,+ DW_OP_breg25 = 0x89,+ DW_OP_breg26 = 0x8a,+ DW_OP_breg27 = 0x8b,+ DW_OP_breg28 = 0x8c,+ DW_OP_breg29 = 0x8d,+ DW_OP_breg30 = 0x8e,+ DW_OP_breg31 = 0x8f,+ DW_OP_regx = 0x90,+ DW_OP_fbreg = 0x91,+ DW_OP_bregx = 0x92,+ DW_OP_piece = 0x93,+ DW_OP_deref_size = 0x94,+ DW_OP_xderef_size = 0x95,+ DW_OP_nop = 0x96,+ /* DWARF 3 extensions. */+ DW_OP_push_object_address = 0x97,+ DW_OP_call2 = 0x98,+ DW_OP_call4 = 0x99,+ DW_OP_call_ref = 0x9a,+ /* GNU extensions. */+ DW_OP_GNU_push_tls_address = 0xe0,+ /* HP extensions. */+ DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */+ DW_OP_HP_is_value = 0xe1,+ DW_OP_HP_fltconst4 = 0xe2,+ DW_OP_HP_fltconst8 = 0xe3,+ DW_OP_HP_mod_range = 0xe4,+ DW_OP_HP_unmod_range = 0xe5,+ DW_OP_HP_tls = 0xe6+ };++#define DW_OP_lo_user 0xe0 /* Implementation-defined range start. */+#define DW_OP_hi_user 0xff /* Implementation-defined range end. */++/* Type encodings. */+enum dwarf_type+ {+ DW_ATE_void = 0x0,+ DW_ATE_address = 0x1,+ DW_ATE_boolean = 0x2,+ DW_ATE_complex_float = 0x3,+ DW_ATE_float = 0x4,+ DW_ATE_signed = 0x5,+ DW_ATE_signed_char = 0x6,+ DW_ATE_unsigned = 0x7,+ DW_ATE_unsigned_char = 0x8,+ /* DWARF 3. */+ DW_ATE_imaginary_float = 0x9,+ /* HP extensions. */+ DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */+ DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */+ DW_ATE_HP_float128 = 0x82, /* Floating-point (128 bit). */+ DW_ATE_HP_complex_float128 = 0x83, /* Complex floating-point (128 bit). */+ DW_ATE_HP_floathpintel = 0x84, /* Floating-point (82 bit IA64). */+ DW_ATE_HP_imaginary_float80 = 0x85,+ DW_ATE_HP_imaginary_float128 = 0x86+ };++#define DW_ATE_lo_user 0x80+#define DW_ATE_hi_user 0xff++/* Array ordering names and codes. */+enum dwarf_array_dim_ordering+ {+ DW_ORD_row_major = 0,+ DW_ORD_col_major = 1+ };++/* Access attribute. */+enum dwarf_access_attribute+ {+ DW_ACCESS_public = 1,+ DW_ACCESS_protected = 2,+ DW_ACCESS_private = 3+ };++/* Visibility. */+enum dwarf_visibility_attribute+ {+ DW_VIS_local = 1,+ DW_VIS_exported = 2,+ DW_VIS_qualified = 3+ };++/* Virtuality. */+enum dwarf_virtuality_attribute+ {+ DW_VIRTUALITY_none = 0,+ DW_VIRTUALITY_virtual = 1,+ DW_VIRTUALITY_pure_virtual = 2+ };++/* Case sensitivity. */+enum dwarf_id_case+ {+ DW_ID_case_sensitive = 0,+ DW_ID_up_case = 1,+ DW_ID_down_case = 2,+ DW_ID_case_insensitive = 3+ };++/* Calling convention. */+enum dwarf_calling_convention+ {+ DW_CC_normal = 0x1,+ DW_CC_program = 0x2,+ DW_CC_nocall = 0x3+ };++#define DW_CC_lo_user 0x40+#define DW_CC_hi_user 0xff++/* Inline attribute. */+enum dwarf_inline_attribute+ {+ DW_INL_not_inlined = 0,+ DW_INL_inlined = 1,+ DW_INL_declared_not_inlined = 2,+ DW_INL_declared_inlined = 3+ };++/* Discriminant lists. */+enum dwarf_discrim_list+ {+ DW_DSC_label = 0,+ DW_DSC_range = 1+ };++/* Line number opcodes. */+enum dwarf_line_number_ops+ {+ DW_LNS_extended_op = 0,+ DW_LNS_copy = 1,+ DW_LNS_advance_pc = 2,+ DW_LNS_advance_line = 3,+ DW_LNS_set_file = 4,+ DW_LNS_set_column = 5,+ DW_LNS_negate_stmt = 6,+ DW_LNS_set_basic_block = 7,+ DW_LNS_const_add_pc = 8,+ DW_LNS_fixed_advance_pc = 9,+ /* DWARF 3. */+ DW_LNS_set_prologue_end = 10,+ DW_LNS_set_epilogue_begin = 11,+ DW_LNS_set_isa = 12+ };++/* Line number extended opcodes. */+enum dwarf_line_number_x_ops+ {+ DW_LNE_end_sequence = 1,+ DW_LNE_set_address = 2,+ DW_LNE_define_file = 3,+ /* HP extensions. */+ DW_LNE_HP_negate_is_UV_update = 0x11,+ DW_LNE_HP_push_context = 0x12,+ DW_LNE_HP_pop_context = 0x13,+ DW_LNE_HP_set_file_line_column = 0x14,+ DW_LNE_HP_set_routine_name = 0x15,+ DW_LNE_HP_set_sequence = 0x16,+ DW_LNE_HP_negate_post_semantics = 0x17,+ DW_LNE_HP_negate_function_exit = 0x18,+ DW_LNE_HP_negate_front_end_logical = 0x19,+ DW_LNE_HP_define_proc = 0x20+ };++/* Call frame information. */+enum dwarf_call_frame_info+ {+ DW_CFA_advance_loc = 0x40,+ DW_CFA_offset = 0x80,+ DW_CFA_restore = 0xc0,+ DW_CFA_nop = 0x00,+ DW_CFA_set_loc = 0x01,+ DW_CFA_advance_loc1 = 0x02,+ DW_CFA_advance_loc2 = 0x03,+ DW_CFA_advance_loc4 = 0x04,+ DW_CFA_offset_extended = 0x05,+ DW_CFA_restore_extended = 0x06,+ DW_CFA_undefined = 0x07,+ DW_CFA_same_value = 0x08,+ DW_CFA_register = 0x09,+ DW_CFA_remember_state = 0x0a,+ DW_CFA_restore_state = 0x0b,+ DW_CFA_def_cfa = 0x0c,+ DW_CFA_def_cfa_register = 0x0d,+ DW_CFA_def_cfa_offset = 0x0e,+ /* DWARF 3. */+ DW_CFA_def_cfa_expression = 0x0f,+ DW_CFA_expression = 0x10,+ DW_CFA_offset_extended_sf = 0x11,+ DW_CFA_def_cfa_sf = 0x12,+ DW_CFA_def_cfa_offset_sf = 0x13,+ /* SGI/MIPS specific. */+ DW_CFA_MIPS_advance_loc8 = 0x1d,+ /* GNU extensions. */+ DW_CFA_GNU_window_save = 0x2d,+ DW_CFA_GNU_args_size = 0x2e,+ DW_CFA_GNU_negative_offset_extended = 0x2f+ };++#define DW_CIE_ID 0xffffffff+#define DW_CIE_VERSION 1++#define DW_CFA_extended 0+#define DW_CFA_lo_user 0x1c+#define DW_CFA_hi_user 0x3f++#define DW_CHILDREN_no 0x00+#define DW_CHILDREN_yes 0x01++#define DW_ADDR_none 0++/* Source language names and codes. */+enum dwarf_source_language+ {+ 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,+ DW_LANG_Java = 0x000b,+ /* DWARF 3. */+ DW_LANG_C99 = 0x000c,+ DW_LANG_Ada95 = 0x000d,+ DW_LANG_Fortran95 = 0x000e,+ /* MIPS. */+ DW_LANG_Mips_Assembler = 0x8001,+ /* UPC. */+ DW_LANG_Upc = 0x8765+ };++#define DW_LANG_lo_user 0x8000 /* Implementation-defined range start. */+#define DW_LANG_hi_user 0xffff /* Implementation-defined range start. */++/* Names and codes for macro information. */+enum dwarf_macinfo_record_type+ {+ DW_MACINFO_define = 1,+ DW_MACINFO_undef = 2,+ DW_MACINFO_start_file = 3,+ DW_MACINFO_end_file = 4,+ DW_MACINFO_vendor_ext = 255+ };++/* @@@ For use with GNU frame unwind information. */++#define DW_EH_PE_absptr 0x00+#define DW_EH_PE_omit 0xff++#define DW_EH_PE_uleb128 0x01+#define DW_EH_PE_udata2 0x02+#define DW_EH_PE_udata4 0x03+#define DW_EH_PE_udata8 0x04+#define DW_EH_PE_sleb128 0x09+#define DW_EH_PE_sdata2 0x0A+#define DW_EH_PE_sdata4 0x0B+#define DW_EH_PE_sdata8 0x0C+#define DW_EH_PE_signed 0x08++#define DW_EH_PE_pcrel 0x10+#define DW_EH_PE_textrel 0x20+#define DW_EH_PE_datarel 0x30+#define DW_EH_PE_funcrel 0x40+#define DW_EH_PE_aligned 0x50++#define DW_EH_PE_indirect 0x80++#endif /* _ELF_DWARF2_H */Index: linux-2.6.16/include/linux/dwarf2-lang.h===================================================================--- linux-2.6.16.orig/include/linux/dwarf2-lang.h 2006-04-25 10:59:23.506518750 +0530+++ linux-2.6.16/include/linux/dwarf2-lang.h 2006-04-25 11:42:37.000000000 +0530@@ -0,0 +1,300 @@+#ifndef DWARF2_LANG+#define DWARF2_LANG++/*+ * This is free software; you can redistribute it and/or modify it under+ * the terms of the GNU General Public License as published by the Free+ * Software Foundation; either version 2, or (at your option) any later+ * version.+ */+/*+ * This file defines macros that allow generation of DWARF debug records+ * for asm files. This file is platform independent. Register numbers+ * (which are about the only thing that is platform dependent) are to be+ * supplied by a platform defined file.+ */+/*+ * We need this to work for both asm and C. In asm we are using the+ * old comment trick to concatenate while C uses the new ANSI thing.+ * Here we have concat macro... The multi level thing is to allow and+ * macros used in the names to be resolved prior to the cat (at which+ * time they are no longer the same string).+ */+#define CAT3(a,b,c) _CAT3(a,b,c)+#define _CAT3(a,b,c) __CAT3(a,b,c)+#ifndef __STDC__+#define __CAT3(a,b,c) a/**/b/**/c+#else+#define __CAT3(a,b,c) a##b##c+#endif+#ifdef __ASSEMBLY__+#define IFC(a)+#define IFN_C(a) a+#define NL ;+#define QUOTE_THIS(a) a+#define DWARF_preamble .section .debug_frame,"",%progbits;+#else+#define IFC(a) a+#define IFN_C(a)+#define NL \n\t+#define QUOTE_THIS(a) _QUOTE_THIS(a)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -