From: Koine Yuusuke(koinec) Date: Sat, 17 Aug 2019 07:33:06 +0000 (+0900) Subject: (LibGoblin) X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=d95ea38037fa1604f5cf6d47b6c0b603746e1e49;p=drdeamon64%2Fdrdeamon64.git (LibGoblin) * 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] --- diff --git a/libgoblin/Makefile b/libgoblin/Makefile index 0a27f38..b2b184b 100644 --- a/libgoblin/Makefile +++ b/libgoblin/Makefile @@ -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 diff --git a/libgoblin/drd64_libgoblin.h b/libgoblin/drd64_libgoblin.h index 0f63faf..b878eb3 100644 --- a/libgoblin/drd64_libgoblin.h +++ b/libgoblin/drd64_libgoblin.h @@ -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 index 80f3a13..0000000 --- a/libgoblin/drd64_libgoblin_dwarf_tag.h +++ /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 index 0000000..68e419b --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_class.c @@ -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 index 0000000..c5e168a --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_class.h @@ -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 index 0000000..5f982c4 --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_dispatch.c @@ -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 index 0000000..25c0726 --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_dispatch.h @@ -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 index 0000000..6dd8fec --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_exception.c @@ -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 index 0000000..97925cd --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_exception.h @@ -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 index 0000000..62dade3 --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_function.c @@ -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 index 0000000..2d14ca6 --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_function.h @@ -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 index 0000000..95f639a --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_notclang.c @@ -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" + +/*---------------------------------------------------------------------- + + DW_TAG_entry_point + DW_TAG_string_type + DW_TAG_common_block + DW_TAG_common_inclusion + DW_TAG_namelist + DW_TAG_namelist_item + + 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) + + + 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 index 0000000..c8b6774 --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_notclang.h @@ -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 index 0000000..c1eb926 --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_parameter.c @@ -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 index 0000000..31e1439 --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_parameter.h @@ -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 ----------------------------------- */ diff --git a/libgoblin/drd64_libgoblin_dwarf_tag.c b/libgoblin/drd64_libgoblin_dwarf_tag_struct.c similarity index 82% rename from libgoblin/drd64_libgoblin_dwarf_tag.c rename to libgoblin/drd64_libgoblin_dwarf_tag_struct.c index 49aef77..0fc5d7e 100644 --- a/libgoblin/drd64_libgoblin_dwarf_tag.c +++ b/libgoblin/drd64_libgoblin_dwarf_tag_struct.c @@ -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 index 0000000..8d3aae7 --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_struct.h @@ -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 index 0000000..6ee8c4d --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_type.c @@ -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 index 0000000..a1c8815 --- /dev/null +++ b/libgoblin/drd64_libgoblin_dwarf_tag_type.h @@ -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 ----------------------------------- */