OSDN Git Service

(LibGoblin)
authorKoine Yuusuke(koinec) <koinec@users.osdn.me>
Sun, 20 Oct 2019 13:04:20 +0000 (22:04 +0900)
committerKoine Yuusuke(koinec) <koinec@users.osdn.me>
Sun, 20 Oct 2019 13:04:20 +0000 (22:04 +0900)
  * WorkBackup

libgoblin/drd64_libgoblin_debug_objinfo.c
libgoblin/drd64_libgoblin_dwarf_tag_function.c
libgoblin/drd64_libgoblin_elf_symtab.c
libgoblin/drd64_libgoblin_type.h

index 5d3e8f7..d2f0c3d 100644 (file)
@@ -199,7 +199,19 @@ void
                        char    *pstr_space,
                        Byte    b_level )
 {
-       Debug_ObjectInfo_Print_SymbolCommon( p_obj, pstr_space, b_level );
+       //Debug_ObjectInfo_Print_SymbolCommon( p_obj, pstr_space, 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[TYPE(Single)] size= %u, encoding= %xh, BitOffset=%d, BitSize=%d, Endianity=%x\n",
+                               pstr_space, p_obj->info.type.dw_size, p_obj->info.type.b_encoding,
+                               p_obj->info.type.b_bit_offset, p_obj->info.type.b_bit_size,
+                               p_obj->info.type.b_endianity );
+*/
+       printf(" %s\t\t[FUNCTION] ReturnType: Link Addr= %8ph  -> ObjID= %d\n",
+                               pstr_space, p_obj->dwarf.pb_dwinfo_type, p_obj->dwarf.i_objid_type );
        return;
 }
 
index 636a08c..ddeabc8 100644 (file)
@@ -98,22 +98,14 @@ int
        int                                                     i_result;
        int                                                     i_cnt;
        int                                                     i_srcid                 = NO_SRC;
-       int                                                     i_objid                 = NO_OBJ;
        int                                                     i_objid_parent  = NO_OBJ;
-       char                                            *pstr_filepath  = NULL;
-       char                                            *pstr_path              = NULL;
-       char                                            *pstr_filename;
-       char                                            str_filename[DRD64_MAX_PATH+1];
-       char                                            str_path[DRD64_MAX_PATH+1];
        Byte                                            *pb_link                = NULL;
        DWord                                           dw_srcline              = 0;
-       DWord                                           dw_lineoffset;
        QWord                                           qw_low_pc;
        QWord                                           qw_high_pc;
-       LibGoblin_SrcFile                       *p_srcfile;
-       LibGoblin_BinaryFile            *p_bfile;
        LibGoblin_ProgramInfo           *p_pginfo;
        LibGoblin_ObjectInfo            *pobj_parent;
+       LibGoblin_ObjectInfo            *pobj_master    = NULL;
        LibGoblin_ObjectInfo            *pobj_now;
 
        LibGoblin_DWARF_Ranges          t_ranges;
@@ -260,16 +252,16 @@ int
                }
 
                if( 0 == i_cnt )        {
-                       pobj_parent     = pobj_now;
-                       pobj_now->info.function.i_objid_parent  = NO_OBJ;
+                       pobj_master     = pobj_now;
+                       pobj_now->info.function.i_objid_master  = NO_OBJ;
                }
                else    {
-                       pobj_now->info.function.i_objid_parent  = pobj_parent->i_id;
+                       pobj_now->info.function.i_objid_master  = pobj_master->i_id;
                }
        }
 
 goto_DWARF_Tag_Function_subprogram_post:
-       return  i_objid_parent
+       return  pobj_master->i_id
 }
 
 
index fd546bd..76b3293 100644 (file)
@@ -123,7 +123,7 @@ LibGoblin_ObjectInfo *
                { p_obj->dw_status      |=      OBJINFO_STATUS_DYNAMIC; }
 
        if( b_objtype == OBJINFO_TYPE_FUNCTION )
-               { p_obj->info.function.i_objid_parent   = NO_OBJ; }
+               { p_obj->info.function.i_objid_master   = NO_OBJ; }
 
 goto_ELF64_Symtab_RegistSymbol_toObjectInfo_post:
        return  p_obj;
index 32178ba..65b641b 100644 (file)
@@ -200,7 +200,7 @@ typedef     struct  {
                } type;
 
                struct  {
-                       int             i_objid_parent;
+                       int             i_objid_master;
 
                        DWord   dw_sz_frame_base;
                        DWord   dw_sz_return_addr;