OSDN Git Service

(LibGoblin)
authorKoine Yuusuke(koinec) <koinec@users.osdn.me>
Sat, 17 Aug 2019 07:33:06 +0000 (16:33 +0900)
committerKoine Yuusuke(koinec) <koinec@users.osdn.me>
Sat, 17 Aug 2019 07:33:06 +0000 (16:33 +0900)
  * CreateFile: drd64_libgoblin_dwarf_tag_type.[ch]
  * CreateFile: drd64_libgoblin_dwarf_tag_class.[ch]
  * CreateFile: drd64_libgoblin_dwarf_tag_function.[ch]
  * CreateFile: drd64_libgoblin_dwarf_tag_exception.[ch]
  * CreateFile: drd64_libgoblin_dwarf_tag_struct.[ch]
  * CreateFile: drd64_libgoblin_dwarf_tag_notclang.[ch]
  * CreateFile: drd64_libgoblin_dwarf_tag_parameter.[ch]
  * rename: drd64_libgoblin_dwarf_tag.[ch] -> ...dispath.[ch]

19 files changed:
libgoblin/Makefile
libgoblin/drd64_libgoblin.h
libgoblin/drd64_libgoblin_dwarf_tag.h [deleted file]
libgoblin/drd64_libgoblin_dwarf_tag_class.c [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_class.h [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_dispatch.c [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_dispatch.h [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_exception.c [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_exception.h [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_function.c [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_function.h [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_notclang.c [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_notclang.h [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_parameter.c [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_parameter.h [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_struct.c [moved from libgoblin/drd64_libgoblin_dwarf_tag.c with 82% similarity]
libgoblin/drd64_libgoblin_dwarf_tag_struct.h [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_type.c [new file with mode: 0644]
libgoblin/drd64_libgoblin_dwarf_tag_type.h [new file with mode: 0644]

index 0a27f38..b2b184b 100644 (file)
@@ -73,7 +73,14 @@ OBJS = drd64_libgoblin_api.o \
                drd64_libgoblin_dwarf_attrform.o \
                drd64_libgoblin_dwarf_info.o \
                drd64_libgoblin_dwarf_line.o \
-               drd64_libgoblin_dwarf_tag.o \
+               drd64_libgoblin_dwarf_tag_type.o \
+               drd64_libgoblin_dwarf_tag_struct.o \
+               drd64_libgoblin_dwarf_tag_parameter.o \
+               drd64_libgoblin_dwarf_tag_function.o \
+               drd64_libgoblin_dwarf_tag_class.o \
+               drd64_libgoblin_dwarf_tag_exception.o \
+               drd64_libgoblin_dwarf_tag_notclang.o \
+               drd64_libgoblin_dwarf_tag_dispatch.o \
                drd64_libgoblin_dwarf_common.o \
                drd64_libgoblin_index_dwarfinfo.o \
                drd64_libgoblin_debug_elf.o \
@@ -108,7 +115,14 @@ HEADER = drd64_libgoblin.h \
                drd64_libgoblin_dwarf_attrform.h \
                drd64_libgoblin_dwarf_info.h \
                drd64_libgoblin_dwarf_line.h \
-               drd64_libgoblin_dwarf_tag.h \
+               drd64_libgoblin_dwarf_tag_type.h \
+               drd64_libgoblin_dwarf_tag_struct.h \
+               drd64_libgoblin_dwarf_tag_parameter.h \
+               drd64_libgoblin_dwarf_tag_function.h \
+               drd64_libgoblin_dwarf_tag_class.h \
+               drd64_libgoblin_dwarf_tag_exception.h \
+               drd64_libgoblin_dwarf_tag_notclang.h \
+               drd64_libgoblin_dwarf_tag_dispatch.h \
                drd64_libgoblin_dwarf_common.h \
                drd64_libgoblin_index_dwarfinfo.h \
                drd64_libgoblin_debug_elf.h \
@@ -233,10 +247,38 @@ drd64_libgoblin_dwarf_line.o: \
                drd64_libgoblin_dwarf_line.c $(HEADER)
        $(CC) -c -o drd64_libgoblin_dwarf_line.o $(FLAGS_DEBUG) \
                                drd64_libgoblin_dwarf_line.c
-drd64_libgoblin_dwarf_tag.o: \
-               drd64_libgoblin_dwarf_tag.c $(HEADER)
-       $(CC) -c -o drd64_libgoblin_dwarf_tag.o $(FLAGS_DEBUG) \
-                               drd64_libgoblin_dwarf_tag.c
+drd64_libgoblin_dwarf_tag_type.o: \
+               drd64_libgoblin_dwarf_tag_type.c $(HEADER)
+       $(CC) -c -o drd64_libgoblin_dwarf_tag_type.o $(FLAGS_DEBUG) \
+                               drd64_libgoblin_dwarf_tag_type.c
+drd64_libgoblin_dwarf_tag_struct.o: \
+               drd64_libgoblin_dwarf_tag_struct.c $(HEADER)
+       $(CC) -c -o drd64_libgoblin_dwarf_tag_struct.o $(FLAGS_DEBUG) \
+                               drd64_libgoblin_dwarf_tag_struct.c
+drd64_libgoblin_dwarf_tag_parameter.o: \
+               drd64_libgoblin_dwarf_tag_parameter.c $(HEADER)
+       $(CC) -c -o drd64_libgoblin_dwarf_tag_parameter.o $(FLAGS_DEBUG) \
+                               drd64_libgoblin_dwarf_tag_parameter.c
+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_class.o: \
+               drd64_libgoblin_dwarf_tag_class.c $(HEADER)
+       $(CC) -c -o drd64_libgoblin_dwarf_tag_class.o $(FLAGS_DEBUG) \
+                               drd64_libgoblin_dwarf_tag_class.c
+drd64_libgoblin_dwarf_tag_exception.o: \
+               drd64_libgoblin_dwarf_tag_exception.c $(HEADER)
+       $(CC) -c -o drd64_libgoblin_dwarf_tag_exception.o $(FLAGS_DEBUG) \
+                               drd64_libgoblin_dwarf_tag_exception.c
+drd64_libgoblin_dwarf_tag_notclang.o: \
+               drd64_libgoblin_dwarf_tag_notclang.c $(HEADER)
+       $(CC) -c -o drd64_libgoblin_dwarf_tag_notclang.o $(FLAGS_DEBUG) \
+                               drd64_libgoblin_dwarf_tag_notclang.c
+drd64_libgoblin_dwarf_tag_dispatch.o: \
+               drd64_libgoblin_dwarf_tag_dispatch.c $(HEADER)
+       $(CC) -c -o drd64_libgoblin_dwarf_tag_dispatch.o $(FLAGS_DEBUG) \
+                               drd64_libgoblin_dwarf_tag_dispatch.c
 drd64_libgoblin_dwarf_common.o: drd64_libgoblin_dwarf_common.c $(HEADER)
        $(CC) -c -o drd64_libgoblin_dwarf_common.o $(FLAGS_DEBUG) \
                                drd64_libgoblin_dwarf_common.c
index 0f63faf..b878eb3 100644 (file)
@@ -97,7 +97,14 @@ Comment:
 #include"drd64_libgoblin_dwarf_attrform.h"
 #include"drd64_libgoblin_dwarf_info.h"
 #include"drd64_libgoblin_dwarf_line.h"
-#include"drd64_libgoblin_dwarf_tag.h"
+#include"drd64_libgoblin_dwarf_tag_type.h"
+#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_class.h"
+#include"drd64_libgoblin_dwarf_tag_exception.h"
+#include"drd64_libgoblin_dwarf_tag_notclang.h"
+#include"drd64_libgoblin_dwarf_tag_dispatch.h"
 #include"drd64_libgoblin_dwarf.h"
 #include"drd64_libgoblin_index_dwarfinfo.h"
 #include"drd64_libgoblin_debug_dwarf_str.h"
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag.h b/libgoblin/drd64_libgoblin_dwarf_tag.h
deleted file mode 100644 (file)
index 80f3a13..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-/*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
-#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG
-
-#include"drd64_libgoblin.h"
-
-#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG
-       #define LIBGOBLIN_DWARF_TAG_EXTERN
-#else
-       #define LIBGOBLIN_DWARF_TAG_EXTERN      extern
-#endif
-
-#define        LIBGOBLIN_DWARF_TAG_MAX 91
-#define        LIBGOBLIN_DWARF_TAG_DEFAULT_MAX 0x4f
-
-typedef        struct  {
-       DWord   dw_tag;
-       int             (* DWARF_Tag_Proc)( LibGoblin_BinaryInfo *p_binfo );
-} DWARF_TagFunction;
-
-
-LIBGOBLIN_DWARF_TAG_EXTERN
-       int DWARF_Tag_Dispatch(
-        LibGoblin_BinaryInfo    *p_binfo,
-        LibGoblin_BinaryFile    *p_bfile,
-        LibGoblin_SrcFile       *p_srcfile,
-        DWARF_AbbrevEntry       *p_abbrev );
-
-
-#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG
-DWARF_TagFunction      dwarf_tag[LIBGOBLIN_DWARF_TAG_MAX]      = {
-               { 0x00, NULL },
-               { DW_TAG_array_type, NULL },    // 0x01
-               { DW_TAG_class_type, NULL },    // 0x02
-               { DW_TAG_entry_point, NULL },   // 0x03
-               { DW_TAG_enumeration_type, NULL },      // 0x04
-               { DW_TAG_formal_parameter, NULL },      // 0x05
-               { 0x06, NULL },
-               { 0x07, NULL },
-               { DW_TAG_imported_declaration, NULL },  // 0x08
-               { 0x09, NULL },
-               { DW_TAG_label, NULL }, // 0x0a
-               { DW_TAG_lexical_block, NULL }, // 0x0b
-               { 0x0c, NULL },
-               { DW_TAG_member, NULL },        // 0x0d
-               { 0x0e, NULL },
-               { DW_TAG_pointer_type, NULL },  // 0x0f
-
-               { DW_TAG_reference_type, NULL },        // 0x10
-               { DW_TAG_compile_unit, NULL },  // 0x11
-               { DW_TAG_string_type, NULL },   // 0x12
-               { DW_TAG_structure_type, NULL },        // 0x13
-               { 0x14, NULL },
-               { DW_TAG_subroutine_type, NULL },       // 0x15
-               { DW_TAG_typedef, NULL },       // 0x16
-               { DW_TAG_union_type, NULL },    // 0x17
-               { DW_TAG_unspecified_parameters, NULL },        // 0x18
-               { DW_TAG_variant, NULL },       // 0x19
-               { DW_TAG_common_block, NULL },  // 0x1a
-               { DW_TAG_common_inclusion, NULL },      // 0x1b
-               { DW_TAG_inheritance, NULL },   // 0x1c
-               { DW_TAG_inlined_subroutine, NULL },    // 0x1d
-               { DW_TAG_module, NULL },        // 0x1e
-               { DW_TAG_ptr_to_member_type, NULL },    // 0x1f
-
-               { DW_TAG_set_type, NULL },      // 0x20
-               { DW_TAG_subrange_type, NULL }, // 0x21
-               { DW_TAG_with_stmt, NULL },     // 0x22
-               { DW_TAG_access_declaration, NULL },    // 0x23
-               { DW_TAG_base_type, NULL },     // 0x24
-               { DW_TAG_catch_block, NULL },   // 0x25
-               { DW_TAG_const_type, NULL },    // 0x26
-               { DW_TAG_constant, NULL },      // 0x27
-               { DW_TAG_enumerator, NULL },    // 0x28
-               { 0x29, NULL },
-               { DW_TAG_friend, NULL },        // 0x2a
-               { DW_TAG_namelist, NULL },      // 0x2b
-               { DW_TAG_namelist_item, NULL }, // 0x2c
-               { DW_TAG_packed_type, NULL },   // 0x2d
-               { DW_TAG_subprogram, NULL },    // 0x2e
-               { DW_TAG_template_type_parameter, NULL },       // 0x2f = DW_TAG_template_type_param
-
-               { DW_TAG_template_value_parameter, NULL },      // 0x30 = DW_TAG_template_value_param
-               { DW_TAG_thrown_type, NULL },   // 0x31
-               { DW_TAG_try_block, NULL },     // 0x32
-               { DW_TAG_variant_part, NULL },  // 0x33
-               { DW_TAG_variable, NULL },      // 0x34
-               { DW_TAG_volatile_type, NULL }, // 0x35
-               { DW_TAG_dwarf_procedure, NULL },       // 0x36
-               { DW_TAG_restrict_type, NULL }, // 0x37
-               { DW_TAG_interface_type, NULL },        // 0x38
-               { DW_TAG_namespace, NULL },     // 0x39
-               { DW_TAG_imported_module, NULL },       // 0x3a
-               { DW_TAG_unspecified_type, NULL },      // 0x3b
-               { DW_TAG_partial_unit, NULL },  // 0x3c
-               { DW_TAG_imported_unit, NULL }, // 0x3d
-               { 0x3e, NULL },
-               { DW_TAG_condition, NULL },     // 0x3f
-
-               { DW_TAG_shared_type, NULL },   // 0x40
-               { DW_TAG_type_unit, NULL },     // 0x41
-               { DW_TAG_rvalue_reference_type, NULL }, // 0x42
-               { DW_TAG_template_alias, NULL },        // 0x43
-               { 0x44, NULL },
-               { 0x45, NULL },
-               { 0x46, NULL },
-               { 0x47, NULL },
-               { 0x48, NULL },
-               { 0x49, NULL },
-               { 0x4a, NULL },
-               { 0x4b, NULL },
-               { 0x4c, NULL },
-               { 0x4d, NULL },
-               { 0x4e, NULL },
-               { 0x4f, NULL },
-       // DW_TAG_lo_user 0x4080 ---- 11 items
-               { DW_TAG_format_label, NULL },  // 0x4101
-               { DW_TAG_function_template, NULL },     // 0x4102
-               { DW_TAG_class_template, NULL },        // 0x4103
-               { DW_TAG_GNU_BINCL, NULL },     // 0x4104
-               { DW_TAG_GNU_EINCL, NULL },     // 0x4105
-               { DW_TAG_GNU_template_template_parameter, NULL },       // 0x4106
-               { DW_TAG_GNU_template_template_param, NULL },   // 0x4106
-               { DW_TAG_GNU_template_parameter_pack, NULL },   // 0x4107
-               { DW_TAG_GNU_formal_parameter_pack, NULL },     // 0x4108
-               { DW_TAG_GNU_call_site, NULL }, // 0x4109
-               { DW_TAG_GNU_call_site_parameter, NULL }        // 0x410a
-       // DW_TAG_hi_user 0xffff ----
-};
-#else
-extern DWARF_TagFunction       dwarf_tag[LIBGOBLIN_DWARF_TAG_MAX];
-#endif
-
-#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
-
-/* EOF of drd64_.h ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_class.c b/libgoblin/drd64_libgoblin_dwarf_tag_class.c
new file mode 100644 (file)
index 0000000..68e419b
--- /dev/null
@@ -0,0 +1,70 @@
+/*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_CLASS
+#include"drd64_libgoblin.h"
+
+/*----------------------------------------------------------------------
+DW_TAG_class_type
+DW_TAG_interface_type
+DW_TAG_friend
+DW_TAG_inheritance
+DW_TAG_access_declaration
+DW_TAG_template_type_parameter
+DW_TAG_template_value_parameter
+DW_TAG_imported_declaration
+----------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_CLASS_EXTERN
+int
+       DWARF_Tag_Class_UnImplement(
+               DWord                                   dw_tag,
+               LibGoblin_BinaryInfo    *p_binfo )
+{
+       printf( "  UnImplement DWARF Tag(Class): %s [%02xh]\n",
+                                                       Debug_DWARF_GetTAGname( dw_tag ), dw_tag );
+
+       return 0x00;
+}
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+
+
+
+/* EOF of drd64_.c ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_class.h b/libgoblin/drd64_libgoblin_dwarf_tag_class.h
new file mode 100644 (file)
index 0000000..c5e168a
--- /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_CLASS
+#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG_CLASS
+
+#include"drd64_libgoblin.h"
+
+#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_CLASS
+       #define LIBGOBLIN_DWARF_TAG_CLASS_EXTERN
+#else
+       #define LIBGOBLIN_DWARF_TAG_CLASS_EXTERN        extern
+#endif
+
+LIBGOBLIN_DWARF_TAG_CLASS_EXTERN
+       int DWARF_Tag_Class_UnImplement( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+
+
+#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
+
+/* EOF of drd64_.h ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_dispatch.c b/libgoblin/drd64_libgoblin_dwarf_tag_dispatch.c
new file mode 100644 (file)
index 0000000..5f982c4
--- /dev/null
@@ -0,0 +1,91 @@
+/*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_DISPATCH
+#include"drd64_libgoblin.h"
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+int
+       DWARF_Tag_Dispatch_UnknownTag(
+               DWord dw_tag,
+               LibGoblin_BinaryInfo *p_binfo )
+{
+       // XXX 
+       printf( "  ERROR: Unknown DWARF Tag: %02xh\n", dw_tag);
+       return 0x00;
+}
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_DISPATCH_EXTERN
+int
+       DWARF_Tag_Dispatch(
+               LibGoblin_BinaryInfo    *p_binfo,
+               LibGoblin_BinaryFile    *p_bfile,
+               LibGoblin_SrcFile               *p_srcfile,
+               DWARF_AbbrevEntry               *p_abbrev )
+{
+       int             i_result;
+       DWord   dw_cnt;
+       DWord   dw_tag;
+       int     (* DWARF_Tag_Proc)( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+
+       DWARF_Tag_Proc  = NULL;
+       dw_tag                  = p_abbrev->dw_tag;
+
+       if( LIBGOBLIN_DWARF_TAG_DEFAULT_MAX >= dw_tag )
+               { DWARF_Tag_Proc        = dwarf_tag[dw_tag].DWARF_Tag_Proc; }
+       else    {
+               for( dw_cnt = (LIBGOBLIN_DWARF_TAG_DEFAULT_MAX + 1);
+                                                       dw_cnt < LIBGOBLIN_DWARF_TAG_MAX; dw_cnt++ )    {
+                       if( dwarf_tag[dw_cnt].dw_tag == dw_tag )
+                               { DWARF_Tag_Proc        = dwarf_tag[dw_cnt].DWARF_Tag_Proc; }
+               }
+       }
+
+       if( NULL == DWARF_Tag_Proc )
+               { DWARF_Tag_Proc        = DWARF_Tag_Dispatch_UnknownTag; }
+
+       assert( NULL != DWARF_Tag_Proc );
+       i_result        = DWARF_Tag_Proc( dw_tag, p_binfo );
+
+       return 0x00;
+}
+
+
+/* EOF of drd64_.c ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_dispatch.h b/libgoblin/drd64_libgoblin_dwarf_tag_dispatch.h
new file mode 100644 (file)
index 0000000..25c0726
--- /dev/null
@@ -0,0 +1,176 @@
+/*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_DISPATCH
+#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG_DISPATCH
+
+#include"drd64_libgoblin.h"
+
+#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_DISPATCH
+       #define LIBGOBLIN_DWARF_TAG_DISPATCH_EXTERN
+#else
+       #define LIBGOBLIN_DWARF_TAG_DISPATCH_EXTERN     extern
+#endif
+
+#define        LIBGOBLIN_DWARF_TAG_MAX 91
+#define        LIBGOBLIN_DWARF_TAG_DEFAULT_MAX 0x4f
+
+typedef        struct  {
+       DWord   dw_tag;
+       int             (* DWARF_Tag_Proc)( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+} DWARF_TagFunction;
+
+
+LIBGOBLIN_DWARF_TAG_DISPATCH_EXTERN
+       int DWARF_Tag_Dispatch(
+        LibGoblin_BinaryInfo    *p_binfo,
+        LibGoblin_BinaryFile    *p_bfile,
+        LibGoblin_SrcFile       *p_srcfile,
+        DWARF_AbbrevEntry       *p_abbrev );
+
+
+// DW_TAG_file_type (for PASCAL) is TagID unknown.
+
+#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_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_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
+               { 0x0c,                                                 NULL },
+               { DW_TAG_member,                                NULL }, // 0x0d
+               { 0x0e,                                                 NULL },
+               { DW_TAG_pointer_type,                  DWARF_Tag_Type_UnImplement },           // 0x0f: type
+
+               { DW_TAG_reference_type,                NULL }, // 0x10
+               { 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_union_type,                    DWARF_Tag_Struct_UnImplement },         // 0x17: struct
+               { DW_TAG_unspecified_parameters,NULL }, // 0x18
+               { DW_TAG_variant,                               NULL }, // 0x19
+               { 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_set_type,                              DWARF_Tag_NotClang_UnImplement },       // 0x20: notclang
+               { DW_TAG_subrange_type,                 NULL }, // 0x21
+               { 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
+               { 0x29,                                                 NULL },
+               { DW_TAG_friend,                                DWARF_Tag_Class_UnImplement },          // 0x2a: class
+               { 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_template_type_parameter,DWARF_Tag_Class_UnImplement },         // 0x2f: class
+                                                                                       // = DW_TAG_template_type_param
+
+               { DW_TAG_template_value_parameter,DWARF_Tag_Class_UnImplement },        // 0x30: class
+                                                                                       // = DW_TAG_template_value_param
+               { DW_TAG_thrown_type,                   DWARF_Tag_Exception_UnImplement },      // 0x31: exception
+               { DW_TAG_try_block,                             DWARF_Tag_Exception_UnImplement },      // 0x32: exception
+               { DW_TAG_variant_part,                  DWARF_Tag_NotClang_UnImplement },       // 0x33: notclang
+               { DW_TAG_variable,                              DWARF_Tag_Parameter_UnImplement },      // 0x34: parameter
+               { DW_TAG_volatile_type,                 DWARF_Tag_Type_UnImplement },           // 0x35: type
+               { 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_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
+               { 0x3e, NULL },
+               { DW_TAG_condition,                             DWARF_Tag_NotClang_UnImplement },       // 0x3f: notclang
+
+               { DW_TAG_shared_type,                   DWARF_Tag_NotClang_UnImplement },       // 0x40: notclang
+               { DW_TAG_type_unit,                             NULL }, // 0x41
+               { DW_TAG_rvalue_reference_type, NULL }, // 0x42
+               { DW_TAG_template_alias,                NULL }, // 0x43
+               { 0x44,                                                 NULL },
+               { 0x45,                                                 NULL },
+               { 0x46,                                                 NULL },
+               { 0x47,                                                 NULL },
+               { 0x48,                                                 NULL },
+               { 0x49,                                                 NULL },
+               { 0x4a,                                                 NULL },
+               { 0x4b,                                                 NULL },
+               { 0x4c,                                                 NULL },
+               { 0x4d,                                                 NULL },
+               { 0x4e,                                                 NULL },
+               { 0x4f,                                                 NULL },
+
+       // DW_TAG_lo_user 0x4080 ---- 11 items
+               { DW_TAG_format_label, NULL },  // 0x4101
+               { DW_TAG_function_template, NULL },     // 0x4102
+               { DW_TAG_class_template, NULL },        // 0x4103
+               { DW_TAG_GNU_BINCL, NULL },     // 0x4104
+               { DW_TAG_GNU_EINCL, NULL },     // 0x4105
+               { DW_TAG_GNU_template_template_parameter, NULL },       // 0x4106
+               { DW_TAG_GNU_template_template_param, NULL },   // 0x4106
+               { DW_TAG_GNU_template_parameter_pack, NULL },   // 0x4107
+               { DW_TAG_GNU_formal_parameter_pack, NULL },     // 0x4108
+               { DW_TAG_GNU_call_site, NULL }, // 0x4109
+               { DW_TAG_GNU_call_site_parameter, NULL }        // 0x410a
+       // DW_TAG_hi_user 0xffff ----
+};
+#else
+extern DWARF_TagFunction       dwarf_tag[LIBGOBLIN_DWARF_TAG_MAX];
+#endif
+
+#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
+
+/* EOF of drd64_.h ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_exception.c b/libgoblin/drd64_libgoblin_dwarf_tag_exception.c
new file mode 100644 (file)
index 0000000..6dd8fec
--- /dev/null
@@ -0,0 +1,64 @@
+/*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_EXCEPTION
+#include"drd64_libgoblin.h"
+
+/*----------------------------------------------------------------------
+DW_TAG_thrown_type
+DW_TAG_try_block
+DW_TAG_catch_block
+----------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_EXCEPTION_EXTERN
+int
+       DWARF_Tag_Exception_UnImplement(
+               DWord                                   dw_tag,
+               LibGoblin_BinaryInfo    *p_binfo )
+{
+       printf( "  UnImplement DWARF Tag(Exception): %s [%02xh]\n",
+                                                       Debug_DWARF_GetTAGname( dw_tag ), dw_tag );
+       return 0x00;
+}
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+
+
+
+/* EOF of drd64_.c ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_exception.h b/libgoblin/drd64_libgoblin_dwarf_tag_exception.h
new file mode 100644 (file)
index 0000000..97925cd
--- /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_EXCEPTION
+#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG_EXCEPTION
+
+#include"drd64_libgoblin.h"
+
+#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_EXCEPTION
+       #define LIBGOBLIN_DWARF_TAG_EXCEPTION_EXTERN
+#else
+       #define LIBGOBLIN_DWARF_TAG_EXCEPTION_EXTERN    extern
+#endif
+
+LIBGOBLIN_DWARF_TAG_EXCEPTION_EXTERN
+       int DWARF_Tag_Exception_UnImplement( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+
+
+#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
+
+/* EOF of drd64_.h ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_function.c b/libgoblin/drd64_libgoblin_dwarf_tag_function.c
new file mode 100644 (file)
index 0000000..62dade3
--- /dev/null
@@ -0,0 +1,63 @@
+/*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_FUNCTION
+#include"drd64_libgoblin.h"
+
+/*----------------------------------------------------------------------
+DW_TAG_subprogram
+DW_TAG_inlined_subroutine
+----------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_FUNCTION_EXTERN
+int
+       DWARF_Tag_Function_UnImplement(
+               DWord                                   dw_tag,
+               LibGoblin_BinaryInfo    *p_binfo )
+{
+       printf( "  UnImplement DWARF Tag(Function): %s [%02xh]\n",
+                                                       Debug_DWARF_GetTAGname( dw_tag ), dw_tag );
+       return 0x00;
+}
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+
+
+
+/* EOF of drd64_.c ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_function.h b/libgoblin/drd64_libgoblin_dwarf_tag_function.h
new file mode 100644 (file)
index 0000000..2d14ca6
--- /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_FUNCTION
+#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG_FUNCTION
+
+#include"drd64_libgoblin.h"
+
+#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_FUNCTION
+       #define LIBGOBLIN_DWARF_TAG_FUNCTION_EXTERN
+#else
+       #define LIBGOBLIN_DWARF_TAG_FUNCTION_EXTERN     extern
+#endif
+
+LIBGOBLIN_DWARF_TAG_FUNCTION_EXTERN
+       int DWARF_Tag_Function_UnImplement( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+
+
+#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
+
+/* EOF of drd64_.h ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_notclang.c b/libgoblin/drd64_libgoblin_dwarf_tag_notclang.c
new file mode 100644 (file)
index 0000000..95f639a
--- /dev/null
@@ -0,0 +1,82 @@
+/*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_NOTCLANG
+#include"drd64_libgoblin.h"
+
+/*----------------------------------------------------------------------
+<for Fortran>
+  DW_TAG_entry_point
+  DW_TAG_string_type
+  DW_TAG_common_block
+  DW_TAG_common_inclusion
+  DW_TAG_namelist
+  DW_TAG_namelist_item
+<for any Lang. excpet C/C++/Fortran>
+  DW_TAG_module                        (for modula2)
+  DW_TAG_set_type              (for Pascal and etc.)
+  DW_TAG_with_stmt             (for Pascal / Modula2)
+  DW_TAG_packed_type   (for Pascal / Ada)
+  DW_TAG_condition             (for COBOL)
+
+  DW_TAG_file_type             (for Pascal)
+
+<for ??? lang.>
+  DW_TAG_shared_type
+  DW_TAG_variant_part
+  DW_TAG_partial_unit
+  DW_TAG_imported_unit
+----------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_NOTCLANG_EXTERN
+int
+       DWARF_Tag_NotClang_UnImplement(
+               DWord                                   dw_tag,
+               LibGoblin_BinaryInfo    *p_binfo )
+{
+       printf( "  UnImplement DWARF Tag(Not C/C++ Lang.): %s [%02xh]\n",
+                                                       Debug_DWARF_GetTAGname( dw_tag ), dw_tag );
+       return 0x00;
+}
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+
+
+
+/* EOF of drd64_.c ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_notclang.h b/libgoblin/drd64_libgoblin_dwarf_tag_notclang.h
new file mode 100644 (file)
index 0000000..c8b6774
--- /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_NOTCLANG
+#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG_NOTCLANG
+
+#include"drd64_libgoblin.h"
+
+#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_NOTCLANG
+       #define LIBGOBLIN_DWARF_TAG_NOTCLANG_EXTERN
+#else
+       #define LIBGOBLIN_DWARF_TAG_NOTCLANG_EXTERN     extern
+#endif
+
+LIBGOBLIN_DWARF_TAG_NOTCLANG_EXTERN
+       int DWARF_Tag_NotClang_UnImplement( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+
+
+#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
+
+/* EOF of drd64_.h ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_parameter.c b/libgoblin/drd64_libgoblin_dwarf_tag_parameter.c
new file mode 100644 (file)
index 0000000..c1eb926
--- /dev/null
@@ -0,0 +1,64 @@
+/*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_PARAMETER
+#include"drd64_libgoblin.h"
+
+/*----------------------------------------------------------------------
+DW_TAG_variable
+DW_TAG_formal_parameter
+DW_TAG_constant
+----------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_PARAMETER_EXTERN
+int
+       DWARF_Tag_Parameter_UnImplement(
+               DWord                                   dw_tag,
+               LibGoblin_BinaryInfo    *p_binfo )
+{
+       printf( "  UnImplement DWARF Tag(Parameter): %s [%02xh]\n",
+                                                       Debug_DWARF_GetTAGname( dw_tag ), dw_tag );
+       return 0x00;
+}
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+
+
+
+/* EOF of drd64_.c ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_parameter.h b/libgoblin/drd64_libgoblin_dwarf_tag_parameter.h
new file mode 100644 (file)
index 0000000..31e1439
--- /dev/null
@@ -0,0 +1,53 @@
+/*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_PARAMETER
+#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG_PARAMETER
+
+#include"drd64_libgoblin.h"
+
+#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_PARAMETER
+       #define LIBGOBLIN_DWARF_TAG_PARAMETER_EXTERN
+#else
+       #define LIBGOBLIN_DWARF_TAG_PARAMETER_EXTERN    extern
+#endif
+
+LIBGOBLIN_DWARF_TAG_PARAMETER_EXTERN
+       int DWARF_Tag_Parameter_UnImplement( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+
+#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
+
+/* EOF of drd64_.h ----------------------------------- */
similarity index 82%
rename from libgoblin/drd64_libgoblin_dwarf_tag.c
rename to libgoblin/drd64_libgoblin_dwarf_tag_struct.c
index 49aef77..0fc5d7e 100644 (file)
@@ -34,19 +34,25 @@ Function:
 Comment: 
 ----------------------------------------------------------------------*/
 
-#define        DRD64_SRC_LIBGOBLIN_DWARF_TAG
+#define        DRD64_SRC_LIBGOBLIN_DWARF_TAG_STRUCT
 #include"drd64_libgoblin.h"
 
 /*----------------------------------------------------------------------
+DW_TAG_structure_type
+DW_TAG_union_type
 ----------------------------------------------------------------------*/
-LIBGOBLIN_DWARF_TAG_EXTERN
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_STRUCT_EXTERN
 int
-       DWARF_Tag_Dispatch(
-               LibGoblin_BinaryInfo    *p_binfo,
-               LibGoblin_BinaryFile    *p_bfile,
-               LibGoblin_SrcFile               *p_srcfile,
-               DWARF_AbbrevEntry               *p_abbrev )
+       DWARF_Tag_Struct_UnImplement(
+               DWord                                   dw_tag,
+               LibGoblin_BinaryInfo    *p_binfo )
 {
+       printf( "  UnImplement DWARF Tag(Struct): %s [%02xh]\n",
+                                                       Debug_DWARF_GetTAGname( dw_tag ), dw_tag );
+
        return 0x00;
 }
 
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_struct.h b/libgoblin/drd64_libgoblin_dwarf_tag_struct.h
new file mode 100644 (file)
index 0000000..8d3aae7
--- /dev/null
@@ -0,0 +1,55 @@
+/*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_STRUCT
+#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG_STRUCT
+
+#include"drd64_libgoblin.h"
+
+#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_STRUCT
+       #define LIBGOBLIN_DWARF_TAG_STRUCT_EXTERN
+#else
+       #define LIBGOBLIN_DWARF_TAG_STRUCT_EXTERN       extern
+#endif
+
+LIBGOBLIN_DWARF_TAG_STRUCT_EXTERN
+       int DWARF_Tag_Struct_UnImplement( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+
+
+
+#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
+
+/* EOF of drd64_.h ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_type.c b/libgoblin/drd64_libgoblin_dwarf_tag_type.c
new file mode 100644 (file)
index 0000000..6ee8c4d
--- /dev/null
@@ -0,0 +1,69 @@
+/*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_TYPE
+#include"drd64_libgoblin.h"
+
+/*----------------------------------------------------------------------
+DW_TAG_base_type
+DW_TAG_unspecified_type
+DW_TAG_const_type
+DW_TAG_pointer_type
+DW_TAG_reference_type
+DW_TAG_restrict_type
+DW_TAG_volatile_type
+----------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DWARF_TAG_TYPE_EXTERN
+int
+       DWARF_Tag_Type_UnImplement(
+               DWord                                   dw_tag,
+               LibGoblin_BinaryInfo    *p_binfo )
+{
+       printf( "  UnImplement DWARF Tag(Type): %s [%02xh]\n",
+                                       Debug_DWARF_GetTAGname( dw_tag ), dw_tag );
+
+       return 0x00;
+}
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+
+
+
+/* EOF of drd64_.c ----------------------------------- */
diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_type.h b/libgoblin/drd64_libgoblin_dwarf_tag_type.h
new file mode 100644 (file)
index 0000000..a1c8815
--- /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_TYPE
+#define DRD64_HEADER_LIBGOBLIN_DWARF_TAG_TYPE
+
+#include"drd64_libgoblin.h"
+
+#ifdef DRD64_SRC_LIBGOBLIN_DWARF_TAG_TYPE
+       #define LIBGOBLIN_DWARF_TAG_TYPE_EXTERN
+#else
+       #define LIBGOBLIN_DWARF_TAG_TYPE_EXTERN extern
+#endif
+
+LIBGOBLIN_DWARF_TAG_TYPE_EXTERN
+       int DWARF_Tag_Type_UnImplement( DWord dw_tag, LibGoblin_BinaryInfo *p_binfo );
+
+
+#endif /* DRD64_HEADER_LIBGOBLIN_BINFO */
+
+/* EOF of drd64_.h ----------------------------------- */