From 81102698ecc7e3129a4ef920667bb39137a2b502 Mon Sep 17 00:00:00 2001 From: "Koine Yuusuke(koinec)" Date: Tue, 20 Aug 2019 21:06:35 +0900 Subject: [PATCH] (LibGoblin) * WorkBackup --- libgoblin/drd64_libgoblin_debug_objinfo.c | 5 ++ libgoblin/drd64_libgoblin_dwarf_info.c | 90 +------------------------------ 2 files changed, 7 insertions(+), 88 deletions(-) diff --git a/libgoblin/drd64_libgoblin_debug_objinfo.c b/libgoblin/drd64_libgoblin_debug_objinfo.c index 8645673..1e5734b 100644 --- a/libgoblin/drd64_libgoblin_debug_objinfo.c +++ b/libgoblin/drd64_libgoblin_debug_objinfo.c @@ -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; } diff --git a/libgoblin/drd64_libgoblin_dwarf_info.c b/libgoblin/drd64_libgoblin_dwarf_info.c index 5a5d18e..49bd2ef 100644 --- a/libgoblin/drd64_libgoblin_dwarf_info.c +++ b/libgoblin/drd64_libgoblin_dwarf_info.c @@ -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; -- 2.11.0