From: Koine Yuusuke(koinec) Date: Wed, 16 Oct 2019 12:23:44 +0000 (+0900) Subject: (LibGoblin) X-Git-Url: http://git.osdn.net/view?p=drdeamon64%2Fdrdeamon64.git;a=commitdiff_plain;h=aa9f5bdb28e794a7ea2d0420b752713020e39723 (LibGoblin) * WorkBackup --- diff --git a/libgoblin/drd64_libgoblin_debug_objinfo.c b/libgoblin/drd64_libgoblin_debug_objinfo.c index aef5b61..915ef5d 100644 --- a/libgoblin/drd64_libgoblin_debug_objinfo.c +++ b/libgoblin/drd64_libgoblin_debug_objinfo.c @@ -47,12 +47,12 @@ static char gstr_type[256][9] = { "TYPE:MUL", // 0x06 "TYPE:SIG", // 0x07 - "FUNCTION", // 0x08 - "OBJECT", // 0x09 - "COMMON", // 0x0a - "TLS", // 0x0b + "TYPEDEF", // 0x08 + "FUNCTION", // 0x09 + "OBJECT", // 0x0a + "COMMON", // 0x0b + "TLS", // 0x0c "REL", // 0x0d - "", // 0x0d "", // 0x0e "", // 0x0f "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", @@ -505,6 +505,22 @@ void return; } +/*--------------------------------------------------------------------*/ +void + Debug_ObjectInfo_Print_Typedef( + LibGoblin_ObjectInfo *p_obj, + char *pstr_space, + Byte b_level ) +{ + printf(" %s\t\t[OBJINFO] Addr.Link(%3d <-> %3d) .debug_info=%8ph\n", + pstr_space, p_obj->addrlink.i_prev_id, p_obj->addrlink.i_next_id, + p_obj->dwarf.pb_info ); + printf(" %s\t\t[TYPEDEF] Link Addr= %8ph -> ObjID= %d\n", + pstr_space, p_obj->info.type.p_dwtype, p_obj->info.type.i_objid_type ); + + return; +} + /*====================================================================*/ /*--------------------------------------------------------------------*/ void @@ -566,6 +582,10 @@ void Debug_ObjectInfo_Print_Type_Multi( p_obj, pstr_space, b_level ); break; + case OBJINFO_TYPE_TYPEDEF: + Debug_ObjectInfo_Print_Typedef( p_obj, pstr_space, b_level ); + break; + case OBJINFO_TYPE_FUNCTION: Debug_ObjectInfo_Print_Function( p_obj, pstr_space, b_level ); break; diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_function.c b/libgoblin/drd64_libgoblin_dwarf_tag_function.c index 584e35e..d44c57a 100644 --- a/libgoblin/drd64_libgoblin_dwarf_tag_function.c +++ b/libgoblin/drd64_libgoblin_dwarf_tag_function.c @@ -222,7 +222,7 @@ int } //p_obj->i_srcid = p_srcfile->i_id; } - + /* p_bfile = BinaryFile_GetBinaryFile( p_binfo->i_binfile ); assert( NULL != p_bfile ); diff --git a/libgoblin/drd64_libgoblin_dwarf_tag_type.c b/libgoblin/drd64_libgoblin_dwarf_tag_type.c index ff297aa..821f99d 100644 --- a/libgoblin/drd64_libgoblin_dwarf_tag_type.c +++ b/libgoblin/drd64_libgoblin_dwarf_tag_type.c @@ -109,7 +109,7 @@ int pobj_now = ObjectInfo_InsetObject( p_pginfo, ptrval_start, (QWord)0, pobj_parent, - OBJINFO_INSETMODE_ADOPT, OBJINFO_TYPE_TYPE_SINGLE, NULL ); + OBJINFO_INSETMODE_ADOPT, OBJINFO_TYPE_TYPEDEF, NULL ); if( NULL == pobj_now ) { return -0x03; } diff --git a/libgoblin/drd64_libgoblin_objinfo.c b/libgoblin/drd64_libgoblin_objinfo.c index 078d5bf..176735f 100644 --- a/libgoblin/drd64_libgoblin_objinfo.c +++ b/libgoblin/drd64_libgoblin_objinfo.c @@ -398,14 +398,10 @@ LibGoblin_ObjectInfo * } if( ptr_value == p_objnow->addr.ptr_addr.value ) { -//printf("DEBUG: %s (%x) : size= %lxh, obj= %lxh (%s)\n", pstr_name, dw_hash, qw_size, p_objnow->addr.qw_size, p_objnow->pstr_name ); if( qw_size > p_objnow->addr.qw_size ) { break; } - else if( qw_size < p_objnow->addr.qw_size ) { - if( b_type < p_objnow->b_type ) { break; } - } - else { // qw_size == p_objnow->addr.qw_size -//printf("DEBUG: %s (%x) <=> %s (%x) is chkmode.\n", pstr_name, dw_hash, p_objnow->pstr_name, p_objnow->dw_hash ); + + else if( qw_size == p_objnow->addr.qw_size ) { if( b_type < p_objnow->b_type ) { break; } if( OBJINFO_INSETMODE_CHKNAME & b_mode ) { diff --git a/libgoblin/drd64_libgoblin_type.h b/libgoblin/drd64_libgoblin_type.h index e2ef0fd..817de1e 100644 --- a/libgoblin/drd64_libgoblin_type.h +++ b/libgoblin/drd64_libgoblin_type.h @@ -98,11 +98,12 @@ typedef struct { #define OBJINFO_TYPE_OBJFILE 0x05 #define OBJINFO_TYPE_TYPE_MULTI 0x06 #define OBJINFO_TYPE_TYPE_SINGLE 0x07 -#define OBJINFO_TYPE_FUNCTION 0x08 -#define OBJINFO_TYPE_OBJECT 0x09 -#define OBJINFO_TYPE_COMMON 0x0a -#define OBJINFO_TYPE_TLS 0x0b -#define OBJINFO_TYPE_REL 0x0c +#define OBJINFO_TYPE_TYPEDEF 0x08 +#define OBJINFO_TYPE_FUNCTION 0x09 +#define OBJINFO_TYPE_OBJECT 0x0a +#define OBJINFO_TYPE_COMMON 0x0b +#define OBJINFO_TYPE_TLS 0x0c +#define OBJINFO_TYPE_REL 0x0d #define OBJINFO_TYPE_NONE 0x7f typedef struct {