Dr.Deamon64 Git-Repository
(2014/03/01- Main-Repository: migrate from cvs)
Révision | aa9f5bdb28e794a7ea2d0420b752713020e39723 (tree) |
---|---|
l'heure | 2019-10-16 21:23:44 |
Auteur | Koine Yuusuke(koinec) <koinec@user...> |
Commiter | Koine Yuusuke(koinec) |
@@ -47,12 +47,12 @@ static char gstr_type[256][9] = { | ||
47 | 47 | "TYPE:MUL", // 0x06 |
48 | 48 | "TYPE:SIG", // 0x07 |
49 | 49 | |
50 | - "FUNCTION", // 0x08 | |
51 | - "OBJECT", // 0x09 | |
52 | - "COMMON", // 0x0a | |
53 | - "TLS", // 0x0b | |
50 | + "TYPEDEF", // 0x08 | |
51 | + "FUNCTION", // 0x09 | |
52 | + "OBJECT", // 0x0a | |
53 | + "COMMON", // 0x0b | |
54 | + "TLS", // 0x0c | |
54 | 55 | "REL", // 0x0d |
55 | - "", // 0x0d | |
56 | 56 | "", // 0x0e |
57 | 57 | "", // 0x0f |
58 | 58 | "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", |
@@ -505,6 +505,22 @@ void | ||
505 | 505 | return; |
506 | 506 | } |
507 | 507 | |
508 | +/*--------------------------------------------------------------------*/ | |
509 | +void | |
510 | + Debug_ObjectInfo_Print_Typedef( | |
511 | + LibGoblin_ObjectInfo *p_obj, | |
512 | + char *pstr_space, | |
513 | + Byte b_level ) | |
514 | +{ | |
515 | + printf(" %s\t\t[OBJINFO] Addr.Link(%3d <-> %3d) .debug_info=%8ph\n", | |
516 | + pstr_space, p_obj->addrlink.i_prev_id, p_obj->addrlink.i_next_id, | |
517 | + p_obj->dwarf.pb_info ); | |
518 | + printf(" %s\t\t[TYPEDEF] Link Addr= %8ph -> ObjID= %d\n", | |
519 | + pstr_space, p_obj->info.type.p_dwtype, p_obj->info.type.i_objid_type ); | |
520 | + | |
521 | + return; | |
522 | +} | |
523 | + | |
508 | 524 | /*====================================================================*/ |
509 | 525 | /*--------------------------------------------------------------------*/ |
510 | 526 | void |
@@ -566,6 +582,10 @@ void | ||
566 | 582 | Debug_ObjectInfo_Print_Type_Multi( p_obj, pstr_space, b_level ); |
567 | 583 | break; |
568 | 584 | |
585 | + case OBJINFO_TYPE_TYPEDEF: | |
586 | + Debug_ObjectInfo_Print_Typedef( p_obj, pstr_space, b_level ); | |
587 | + break; | |
588 | + | |
569 | 589 | case OBJINFO_TYPE_FUNCTION: |
570 | 590 | Debug_ObjectInfo_Print_Function( p_obj, pstr_space, b_level ); |
571 | 591 | break; |
@@ -222,7 +222,7 @@ int | ||
222 | 222 | } |
223 | 223 | //p_obj->i_srcid = p_srcfile->i_id; |
224 | 224 | } |
225 | - | |
225 | + | |
226 | 226 | /* |
227 | 227 | p_bfile = BinaryFile_GetBinaryFile( p_binfo->i_binfile ); |
228 | 228 | assert( NULL != p_bfile ); |
@@ -109,7 +109,7 @@ int | ||
109 | 109 | |
110 | 110 | pobj_now = ObjectInfo_InsetObject( |
111 | 111 | p_pginfo, ptrval_start, (QWord)0, pobj_parent, |
112 | - OBJINFO_INSETMODE_ADOPT, OBJINFO_TYPE_TYPE_SINGLE, NULL ); | |
112 | + OBJINFO_INSETMODE_ADOPT, OBJINFO_TYPE_TYPEDEF, NULL ); | |
113 | 113 | if( NULL == pobj_now ) { |
114 | 114 | return -0x03; |
115 | 115 | } |
@@ -398,14 +398,10 @@ LibGoblin_ObjectInfo * | ||
398 | 398 | } |
399 | 399 | |
400 | 400 | if( ptr_value == p_objnow->addr.ptr_addr.value ) { |
401 | -//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 ); | |
402 | 401 | if( qw_size > p_objnow->addr.qw_size ) |
403 | 402 | { break; } |
404 | - else if( qw_size < p_objnow->addr.qw_size ) { | |
405 | - if( b_type < p_objnow->b_type ) { break; } | |
406 | - } | |
407 | - else { // qw_size == p_objnow->addr.qw_size | |
408 | -//printf("DEBUG: %s (%x) <=> %s (%x) is chkmode.\n", pstr_name, dw_hash, p_objnow->pstr_name, p_objnow->dw_hash ); | |
403 | + | |
404 | + else if( qw_size == p_objnow->addr.qw_size ) { | |
409 | 405 | if( b_type < p_objnow->b_type ) { break; } |
410 | 406 | |
411 | 407 | if( OBJINFO_INSETMODE_CHKNAME & b_mode ) { |
@@ -98,11 +98,12 @@ typedef struct { | ||
98 | 98 | #define OBJINFO_TYPE_OBJFILE 0x05 |
99 | 99 | #define OBJINFO_TYPE_TYPE_MULTI 0x06 |
100 | 100 | #define OBJINFO_TYPE_TYPE_SINGLE 0x07 |
101 | -#define OBJINFO_TYPE_FUNCTION 0x08 | |
102 | -#define OBJINFO_TYPE_OBJECT 0x09 | |
103 | -#define OBJINFO_TYPE_COMMON 0x0a | |
104 | -#define OBJINFO_TYPE_TLS 0x0b | |
105 | -#define OBJINFO_TYPE_REL 0x0c | |
101 | +#define OBJINFO_TYPE_TYPEDEF 0x08 | |
102 | +#define OBJINFO_TYPE_FUNCTION 0x09 | |
103 | +#define OBJINFO_TYPE_OBJECT 0x0a | |
104 | +#define OBJINFO_TYPE_COMMON 0x0b | |
105 | +#define OBJINFO_TYPE_TLS 0x0c | |
106 | +#define OBJINFO_TYPE_REL 0x0d | |
106 | 107 | #define OBJINFO_TYPE_NONE 0x7f |
107 | 108 | |
108 | 109 | typedef struct { |