OSDN Git Service

(LibGoblin)
authorKoine Yuusuke(koinec) <koinec@users.osdn.me>
Tue, 20 Aug 2019 12:06:35 +0000 (21:06 +0900)
committerKoine Yuusuke(koinec) <koinec@users.osdn.me>
Tue, 20 Aug 2019 12:06:35 +0000 (21:06 +0900)
  * WorkBackup

libgoblin/drd64_libgoblin_debug_objinfo.c
libgoblin/drd64_libgoblin_dwarf_info.c

index 8645673..1e5734b 100644 (file)
@@ -457,6 +457,11 @@ void
 {
        printf(" %s\t\t[OBJINFO] Addr.Link(%3d <-> %3d)\n",
                                pstr_space, p_obj->addrlink.i_prev_id, p_obj->addrlink.i_next_id );
+       printf(" %s\t\t[OBJFILE] Abbrev Nums=%3d (%8ph)  CU Header: size=%ld, ver=%d, pointer size=%d\n",
+                               pstr_space, p_obj->info.objfile.i_abbrevs, p_obj->info.objfile.p_abbrev,
+                               p_obj->info.objfile.t_cuheader.qw_unitsize,
+                               p_obj->info.objfile.t_cuheader.w_version,
+                               p_obj->info.objfile.t_cuheader.b_pointersize );
 
        return;
 }
index 5a5d18e..49bd2ef 100644 (file)
@@ -139,77 +139,6 @@ Byte *
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
-/*
-LibGoblin_SrcFile *
-       DWARF_Info_RegistSrcFile_fromTagCompileUnit(
-               LibGoblin_BinaryInfo    *p_binfo,
-               LibGoblin_BinaryFile    *p_bfile,
-               Byte                                    *pb_info,
-               DWARF_AbbrevEntry               *p_abbrev,
-               QWord                                   qw_size_cu,
-               LibGoblin_DWARF_Info_CUHeader   *pt_cuheader )
-{
-       int                                                     i_childlv;
-       char                                            *pstr_srcpath   = NULL;
-       char                                            str_temp[DRD64_MAX_PATH+1];
-       DWord                                           dw_arvid;
-       QWord                                           qw_temp;
-       DWARF_AbbrevEntry                       *p_arvnow;
-       LibGoblin_DWARF_DIEValue        *p_val;
-       LibGoblin_SrcFile                       *p_srcfile;
-
-       assert( NULL != p_binfo );
-       assert( NULL != p_bfile );
-
-       i_childlv       = 0;
-       do      {
-               // Read Reference Abbrev-ID ---
-               pb_info = DWARF_Common_DecodeULEB128( &qw_temp, pb_info, &qw_size_cu );
-               dw_arvid        = (DWord)qw_temp;
-
-               if( 0 == dw_arvid )     {
-                       i_childlv--;
-                       continue;
-               }
-
-               p_arvnow        = p_abbrev + (dw_arvid - 1);
-
-               // Read Debug Information Entry (DIE) ---
-               pb_info = DWARF_AttrForm_ReadDIEValue(
-                                               pb_info, &qw_size_cu, p_arvnow, p_binfo, pt_cuheader );
-
-               if( 0x00 != p_arvnow->b_children )      { i_childlv++; }
-
-               // Check compile unit tag ---
-               if( DW_TAG_compile_unit == p_arvnow->dw_tag )   { break; }
-
-       }while( 0 != qw_size_cu ); 
-
-       if( DW_TAG_compile_unit != p_arvnow->dw_tag )   {
-               return NULL;
-       }
-
-       p_val   = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_name );
-       if( NULL != p_val )     { pstr_srcpath  = p_val->value.pstr_value; }
-       if( NULL == pstr_srcpath )      {
-               return NULL;            
-       }
-
-       strncpy( str_temp, pstr_srcpath, DRD64_MAX_PATH );
-       p_srcfile       = SrcFile_DispenseSrcFile( p_bfile, basename( str_temp ) );
-       if( NULL == p_srcfile ) {
-               return NULL;
-       }
-
-       strncpy( p_srcfile->str_srcpath, dirname( str_temp ), DRD64_MAX_PATH );
-
-       return p_srcfile;
-}
-*/
-
-
-/*----------------------------------------------------------------------
-----------------------------------------------------------------------*/
 LIBGOBLIN_DWARF_INFO_EXTERN
 int
        DWARF_Info_Read(
@@ -235,7 +164,6 @@ int
        DWARF_AbbrevEntry                       *p_arvnow;
        LibGoblin_DWARF_Info_CUHeader   t_cuheader;
        LibGoblin_DWARF_Info_Ancestry   t_ancestry[DWARF_ANCESTRY_MAX];
-       //LibGoblin_SrcFile                     *p_srcfile;
 
        assert( NULL != p_binfo );
 
@@ -272,22 +200,6 @@ int
                                                                &p_abbrev, &i_abbrevs,
                                                                p_binfo, p_bfile, t_cuheader.qw_abbrev_offset );
 
-               // Read DW_TAG_compile_unit & Regist SrcFile struct. ---
-/*
-               p_srcfile       = DWARF_Info_RegistSrcFile_fromTagCompileUnit(
-                                                               p_binfo, p_bfile, pb_info, p_abbrev, qw_size_cu, &t_cuheader );
-               if( NULL != p_srcfile ) {
-                       p_srcfile->dwarf.i_abbrevs      = i_abbrevs;
-                       p_srcfile->dwarf.p_abbrev       = p_abbrev;
-
-                       //printf( "\n SrcFile: %s,  Orig.Path: %s\n", 
-                       //                              p_srcfile->str_filename, p_srcfile->str_srcpath );
-               }
-*/
-               //printf( "    size: %ld, ver:%d, abbrev off.:%ld, addr.size: %d\n",
-               //                                      t_cuheader.qw_unitsize, t_cuheader.w_version,
-               //                                      t_cuheader.qw_abbrev_offset, t_cuheader.b_pointersize);
-
                // Read & Process DWARF info TAG ---
                i_childlv       = 0;
                t_ancestry[0].pb_dwinfo = NULL;
@@ -322,6 +234,8 @@ int
 
                                p_obj->info.objfile.i_abbrevs   = i_abbrevs;
                                p_obj->info.objfile.p_abbrev    = p_abbrev;
+                               memcpy( &(p_obj->info.objfile.t_cuheader), &t_cuheader,
+                                                                                       sizeof( LibGoblin_DWARF_Info_CUHeader ) );
                        }
 
                        t_ancestry[i_childlv].pb_dwinfo = pb_now;