OSDN Git Service

(LibGoblin)
authorKoine Yuusuke(koinec) <koinec@users.osdn.me>
Sat, 17 Aug 2019 11:27:12 +0000 (20:27 +0900)
committerKoine Yuusuke(koinec) <koinec@users.osdn.me>
Sat, 17 Aug 2019 11:27:12 +0000 (20:27 +0900)
  * WorkBackup

libgoblin/Makefile
libgoblin/drd64_libgoblin.h
libgoblin/drd64_libgoblin_dwarf_tag_array.c [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_array.h [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_class.c
libgoblin/drd64_libgoblin_dwarf_tag_dispatch.h
libgoblin/drd64_libgoblin_dwarf_tag_function.c
libgoblin/drd64_libgoblin_dwarf_tag_parameter.c
libgoblin/drd64_libgoblin_dwarf_tag_struct.c
libgoblin/drd64_libgoblin_dwarf_tag_type.c

index b2b184b..39476d8 100644 (file)
@@ -77,6 +77,7 @@ OBJS = drd64_libgoblin_api.o \
                drd64_libgoblin_dwarf_tag_struct.o \
                drd64_libgoblin_dwarf_tag_parameter.o \
                drd64_libgoblin_dwarf_tag_function.o \
+               drd64_libgoblin_dwarf_tag_array.o \
                drd64_libgoblin_dwarf_tag_class.o \
                drd64_libgoblin_dwarf_tag_exception.o \
                drd64_libgoblin_dwarf_tag_notclang.o \
@@ -119,6 +120,7 @@ HEADER = drd64_libgoblin.h \
                drd64_libgoblin_dwarf_tag_struct.h \
                drd64_libgoblin_dwarf_tag_parameter.h \
                drd64_libgoblin_dwarf_tag_function.h \
+               drd64_libgoblin_dwarf_tag_array.h \
                drd64_libgoblin_dwarf_tag_class.h \
                drd64_libgoblin_dwarf_tag_exception.h \
                drd64_libgoblin_dwarf_tag_notclang.h \
@@ -263,6 +265,10 @@ drd64_libgoblin_dwarf_tag_function.o: \
                drd64_libgoblin_dwarf_tag_function.c $(HEADER)
        $(CC) -c -o drd64_libgoblin_dwarf_tag_function.o $(FLAGS_DEBUG) \
                                drd64_libgoblin_dwarf_tag_function.c
+drd64_libgoblin_dwarf_tag_array.o: \
+               drd64_libgoblin_dwarf_tag_array.c $(HEADER)
+       $(CC) -c -o drd64_libgoblin_dwarf_tag_array.o $(FLAGS_DEBUG) \
+                               drd64_libgoblin_dwarf_tag_array.c
 drd64_libgoblin_dwarf_tag_class.o: \
                drd64_libgoblin_dwarf_tag_class.c $(HEADER)
        $(CC) -c -o drd64_libgoblin_dwarf_tag_class.o $(FLAGS_DEBUG) \
index b878eb3..0899323 100644 (file)
@@ -101,6 +101,7 @@ Comment:
 #include"drd64_libgoblin_dwarf_tag_struct.h"
 #include"drd64_libgoblin_dwarf_tag_parameter.h"
 #include"drd64_libgoblin_dwarf_tag_function.h"
+#include"drd64_libgoblin_dwarf_tag_array.h"
 #include"drd64_libgoblin_dwarf_tag_class.h"
 #include"drd64_libgoblin_dwarf_tag_exception.h"
 #include"drd64_libgoblin_dwarf_tag_notclang.h"
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_array.c b/libgoblin/drd64_libgoblin_dwarf_tag_array.c
new file mode 100644 (file)
index 0000000..5f0b52b
--- /dev/null
@@ -0,0 +1,66 @@
+/*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
+
+                         D r . D e a m o n  6 4
+                        for INTEL64(R), AMD64(R)
+       
+   Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
+
+/* File Info -----------------------------------------------------------
+File: drd64_.c
+Function: 
+Comment: 
+----------------------------------------------------------------------*/
+
+#define        DRD64_SRC_LIBGOBLIN_DWARF_TAG_ARRAY
+#include"drd64_libgoblin.h"
+
+/*----------------------------------------------------------------------
+DW_TAG_array_type
+DW_TAG_subrange_type
+DW_TAG_enumeration_type
+DW_TAG_enumerator
+----------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_ARRAY_EXTERN
+int
+       DWARF_Tag_Array_UnImplement(
+               DWord                                   dw_tag,
+               LibGoblin_BinaryInfo    *p_binfo )
+{
+       printf( "  UnImplement DWARF Tag(Array): %s [%02xh]\n",
+                                                       Debug_DWARF_GetTAGname( dw_tag ), dw_tag );
+
+       return 0x00;
+}
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+
+
+
+/* EOF of drd64_.c ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_array.h b/libgoblin/drd64_libgoblin_dwarf_tag_array.h
new file mode 100644 (file)
index 0000000..5f5598c
--- /dev/null
@@ -0,0 +1,54 @@
+/*DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64
+
+                         D r . D e a m o n  6 4
+                        for INTEL64(R), AMD64(R)
+       
+   Copyright(C) 2007-2009 Koine Yuusuke(koinec). All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY Koine Yuusuke(koinec) ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL Koine Yuusuke(koinec) OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
+DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64DrDeAmOn64*/
+
+/* File Info -----------------------------------------------------------
+File: drd64_.h
+Function: Header 
+Comment: 
+----------------------------------------------------------------------*/
+
+#ifndef DRD64_HEADER_LIBGOBLIN_DWARF_TAG_ARRAY
+#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG_ARRAY
+
+#include"drd64_libgoblin.h"
+
+#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_ARRAY
+       #define LIBGOBLIN_DWARF_TAG_ARRAY_EXTERN
+#else
+       #define LIBGOBLIN_DWARF_TAG_ARRAY_EXTERN        extern
+#endif
+
+LIBGOBLIN_DWARF_TAG_ARRAY_EXTERN
+       int DWARF_Tag_Array_UnImplement( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+
+
+#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
+
+/* EOF of drd64_.h ----------------------------------- */
index 68e419b..2598b94 100644 (file)
@@ -46,6 +46,8 @@ DW_TAG_access_declaration
 DW_TAG_template_type_parameter
 DW_TAG_template_value_parameter
 DW_TAG_imported_declaration
+DW_TAG_namespace
+DW_TAG_imported_module
 ----------------------------------------------------------------------*/
 
 /*----------------------------------------------------------------------
index 25c0726..050b1c8 100644 (file)
@@ -67,48 +67,48 @@ LIBGOBLIN_DWARF_TAG_DISPATCH_EXTERN
 #ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_DISPATCH
 DWARF_TagFunction      dwarf_tag[LIBGOBLIN_DWARF_TAG_MAX]      = {
                { 0x00,                                                 NULL },
-               { DW_TAG_array_type,                    NULL }, // 0x01
+               { DW_TAG_array_type,                    DWARF_Tag_Array_UnImplement },          // 0x01: array
                { DW_TAG_class_type,                    DWARF_Tag_Class_UnImplement },          // 0x02: class
                { DW_TAG_entry_point,                   DWARF_Tag_NotClang_UnImplement },       // 0x03: notclang
-               { DW_TAG_enumeration_type,              NULL }, // 0x04
+               { DW_TAG_enumeration_type,              DWARF_Tag_Array_UnImplement },          // 0x04: array
                { DW_TAG_formal_parameter,              DWARF_Tag_Parameter_UnImplement },      // 0x05: parameter
                { 0x06,                                                 NULL },
                { 0x07,                                                 NULL },
                { DW_TAG_imported_declaration,  DWARF_Tag_Class_UnImplement },          // 0x08: class
                { 0x09,                                                 NULL },
-               { DW_TAG_label,                                 NULL }, // 0x0a
-               { DW_TAG_lexical_block,                 NULL }, // 0x0b
+               { DW_TAG_label,                                 DWARF_Tag_Function_UnImplement },       // 0x0a: function
+               { DW_TAG_lexical_block,                 DWARF_Tag_Function_UnImplement },       // 0x0b: function
                { 0x0c,                                                 NULL },
-               { DW_TAG_member,                                NULL }, // 0x0d
+               { DW_TAG_member,                                DWARF_Tag_Struct_UnImplement },         // 0x0d: struct
                { 0x0e,                                                 NULL },
                { DW_TAG_pointer_type,                  DWARF_Tag_Type_UnImplement },           // 0x0f: type
 
-               { DW_TAG_reference_type,                NULL }, // 0x10
+               { DW_TAG_reference_type,                DWARF_Tag_Type_UnImplement },           // 0x10: type
                { DW_TAG_compile_unit,                  NULL }, // 0x11
                { DW_TAG_string_type,                   DWARF_Tag_NotClang_UnImplement },       // 0x12: notclang
                { DW_TAG_structure_type,                DWARF_Tag_Struct_UnImplement },         // 0x13: struct
                { 0x14,                                                 NULL },
-               { DW_TAG_subroutine_type,               NULL }, // 0x15:
-               { DW_TAG_typedef,                               NULL }, // 0x16
+               { DW_TAG_subroutine_type,               DWARF_Tag_Type_UnImplement },           // 0x15: type
+               { DW_TAG_typedef,                               DWARF_Tag_Type_UnImplement },           // 0x16: type
                { DW_TAG_union_type,                    DWARF_Tag_Struct_UnImplement },         // 0x17: struct
-               { DW_TAG_unspecified_parameters,NULL }, // 0x18
-               { DW_TAG_variant,                               NULL }, // 0x19
+               { DW_TAG_unspecified_parameters,DWARF_Tag_Parameter_UnImplement },      // 0x18: parameter
+               { DW_TAG_variant,                               DWARF_Tag_Struct_UnImplement },         // 0x19: struct
                { DW_TAG_common_block,                  DWARF_Tag_NotClang_UnImplement },       // 0x1a: notclang
                { DW_TAG_common_inclusion,              DWARF_Tag_NotClang_UnImplement },       // 0x1b: notclang
                { DW_TAG_inheritance,                   DWARF_Tag_Class_UnImplement },          // 0x1c: class
                { DW_TAG_inlined_subroutine,    DWARF_Tag_Function_UnImplement },       // 0x1d: function
                { DW_TAG_module,                                DWARF_Tag_NotClang_UnImplement },       // 0x1e: notclang
-               { DW_TAG_ptr_to_member_type,    NULL }, // 0x1f
+               { DW_TAG_ptr_to_member_type,    DWARF_Tag_Type_UnImplement },           // 0x1f: type
 
                { DW_TAG_set_type,                              DWARF_Tag_NotClang_UnImplement },       // 0x20: notclang
-               { DW_TAG_subrange_type,                 NULL }, // 0x21
+               { DW_TAG_subrange_type,                 DWARF_Tag_Array_UnImplement },          // 0x21: array
                { DW_TAG_with_stmt,                             DWARF_Tag_NotClang_UnImplement },       // 0x22: notclang
                { DW_TAG_access_declaration,    DWARF_Tag_Class_UnImplement },          // 0x23: class
                { DW_TAG_base_type,                             DWARF_Tag_Type_UnImplement },           // 0x24: type
                { DW_TAG_catch_block,                   DWARF_Tag_Exception_UnImplement },      // 0x25: exception
                { DW_TAG_const_type,                    DWARF_Tag_Type_UnImplement },           // 0x26: type
                { DW_TAG_constant,                              DWARF_Tag_Parameter_UnImplement },      // 0x27: parameter
-               { DW_TAG_enumerator,                    NULL }, // 0x28
+               { DW_TAG_enumerator,                    DWARF_Tag_Array_UnImplement },          // 0x28: array
                { 0x29,                                                 NULL },
                { DW_TAG_friend,                                DWARF_Tag_Class_UnImplement },          // 0x2a: class
                { DW_TAG_namelist,                              DWARF_Tag_NotClang_UnImplement },       // 0x2b: notclang
@@ -128,8 +128,8 @@ DWARF_TagFunction   dwarf_tag[LIBGOBLIN_DWARF_TAG_MAX]      = {
                { DW_TAG_dwarf_procedure,               NULL }, // 0x36
                { DW_TAG_restrict_type,                 DWARF_Tag_Type_UnImplement },           // 0x37: type
                { DW_TAG_interface_type,                DWARF_Tag_Class_UnImplement },          // 0x38: class
-               { DW_TAG_namespace,                             NULL }, // 0x39
-               { DW_TAG_imported_module,               NULL }, // 0x3a
+               { DW_TAG_namespace,                             DWARF_Tag_Class_UnImplement },          // 0x39: class
+               { DW_TAG_imported_module,               DWARF_Tag_Class_UnImplement },          // 0x3a: class
                { DW_TAG_unspecified_type,              DWARF_Tag_Type_UnImplement },           // 0x3b: type
                { DW_TAG_partial_unit,                  DWARF_Tag_NotClang_UnImplement },       // 0x3c: notclang
                { DW_TAG_imported_unit,                 DWARF_Tag_NotClang_UnImplement },       // 0x3d: notclang
index 62dade3..a2017ba 100644 (file)
@@ -40,6 +40,8 @@ Comment:
 /*----------------------------------------------------------------------
 DW_TAG_subprogram
 DW_TAG_inlined_subroutine
+DW_TAG_lexical_block
+DW_TAG_label
 ----------------------------------------------------------------------*/
 
 /*----------------------------------------------------------------------
index c1eb926..e1784b9 100644 (file)
@@ -41,6 +41,7 @@ Comment:
 DW_TAG_variable
 DW_TAG_formal_parameter
 DW_TAG_constant
+DW_TAG_unspecified_parameters
 ----------------------------------------------------------------------*/
 
 /*----------------------------------------------------------------------
index 0fc5d7e..3c4d459 100644 (file)
@@ -40,6 +40,8 @@ Comment:
 /*----------------------------------------------------------------------
 DW_TAG_structure_type
 DW_TAG_union_type
+DW_TAG_member
+DW_TAG_variant
 ----------------------------------------------------------------------*/
 
 /*----------------------------------------------------------------------
index 6ee8c4d..eadb0ce 100644 (file)
@@ -45,6 +45,9 @@ DW_TAG_pointer_type
 DW_TAG_reference_type
 DW_TAG_restrict_type
 DW_TAG_volatile_type
+DW_TAG_typedef
+DW_TAG_subroutine_type
+DW_TAG_ptr_to_member_type
 ----------------------------------------------------------------------*/
 
 /*----------------------------------------------------------------------