OSDN Git Service

(LibGoblin)
authorKoine Yuusuke(koinec) <koinec@users.osdn.me>
Wed, 21 Aug 2019 06:19:36 +0000 (15:19 +0900)
committerKoine Yuusuke(koinec) <koinec@users.osdn.me>
Wed, 21 Aug 2019 06:19:36 +0000 (15:19 +0900)
  * WorkBackup

libgoblin/drd64_libgoblin_dwarf_tag_compileunit.c
libgoblin/drd64_libgoblin_dwarf_tag_dispatch.h
libgoblin/drd64_libgoblin_dwarf_tag_function.c
libgoblin/drd64_libgoblin_dwarf_tag_function.h

index cfaf5ca..8f94b34 100644 (file)
@@ -62,6 +62,11 @@ int
 
 /*----------------------------------------------------------------------
   DW_TAG_compile_unit
+    (Not Used)
+      DW_AT_producer
+      DW_AT_language
+      DW_AT_comp_dir
+      (0x2134)
 ----------------------------------------------------------------------*/
 LIBGOBLIN_DWARF_TAG_COMPILEUNIT_EXTERN
 int
index b62de9d..9d202e5 100644 (file)
@@ -125,7 +125,7 @@ DWARF_TagFunction   dwarf_tag[LIBGOBLIN_DWARF_TAG_MAX]      = {
 { DW_TAG_namelist,                             DWARF_Tag_NotClang_UnImplement },       // 0x2b: notclang
 { DW_TAG_namelist_item,                        DWARF_Tag_NotClang_UnImplement },       // 0x2c: notclang
 { DW_TAG_packed_type,                  DWARF_Tag_NotClang_UnImplement },       // 0x2d: notclang
-{ DW_TAG_subprogram,                   DWARF_Tag_Function_UnImplement },       // 0x2e: function
+{ DW_TAG_subprogram,                   DWARF_Tag_Function_subprogram },        // 0x2e: function
 { DW_TAG_template_type_parameter,DWARF_Tag_Class_UnImplement },                // 0x2f: class
                                                                                        // = DW_TAG_template_type_param
 
index 26dadbb..a2da31f 100644 (file)
@@ -38,7 +38,6 @@ Comment:
 #include"drd64_libgoblin.h"
 
 /*----------------------------------------------------------------------
-DW_TAG_subprogram
 DW_TAG_inlined_subroutine
 DW_TAG_lexical_block
 DW_TAG_label
@@ -60,8 +59,39 @@ int
        return 0x00;
 }
 
+
 /*----------------------------------------------------------------------
+  DW_TAG_subprogram
+    (Not Used)
+      DW_AT_name
+      DW_AT_decl_file
+      DW_AT_decl_line
+      DW_AT_prototyped
+      DW_AT_inline
+
+      DW_AT_low_pc
+      DW_AT_high_pc
+      DW_AT_frame_base
+      DW_AT_external
+      DW_AT_type
 ----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_FUNCTION_EXTERN
+int
+       DWARF_Tag_Function_subprogram(
+               DWord                                   dw_tag,
+               LibGoblin_BinaryInfo    *p_binfo,
+               int                                             i_childlv,
+        LibGoblin_DWARF_Info_Ancestry  *p_ancestry,
+               LibGoblin_DWARF_Info_CUHeader   *p_cuheader )
+{
+
+
+
+       printf( "  UnImplement DW_TAG_subprogram: %s [%02xh]\n",
+                                                       Debug_DWARF_GetTAGname( dw_tag ), dw_tag );
+       return 0x00;
+}
+
 
 
 
index 73ed807..2907e3f 100644 (file)
@@ -51,6 +51,12 @@ LIBGOBLIN_DWARF_TAG_FUNCTION_EXTERN
                                int i_childlv, LibGoblin_DWARF_Info_Ancestry *p_ancestry,
                                LibGoblin_DWARF_Info_CUHeader *p_cuheader );
 
+LIBGOBLIN_DWARF_TAG_FUNCTION_EXTERN
+       int DWARF_Tag_Function_subprogram(
+                               DWord dw_tag, LibGoblin_BinaryInfo *p_binfo,
+                               int i_childlv, LibGoblin_DWARF_Info_Ancestry *p_ancestry,
+                               LibGoblin_DWARF_Info_CUHeader *p_cuheader );
+
 
 #endif /* DRD64_HEADER_LIBGOBLIN_BINFO */