OSDN Git Service

(LibGoblin)
authorKoine Yuusuke(koinec) <koinec@users.osdn.me>
Tue, 29 Oct 2019 12:43:05 +0000 (21:43 +0900)
committerKoine Yuusuke(koinec) <koinec@users.osdn.me>
Tue, 29 Oct 2019 12:43:05 +0000 (21:43 +0900)
  * WorkBackup

libgoblin/drd64_libgoblin_dwarf_tag_struct.c

index be6c3fa..b1ffc41 100644 (file)
@@ -81,45 +81,31 @@ int
         LibGoblin_DWARF_Info_Ancestry  *p_ancestry,
                LibGoblin_DWARF_Info_CUHeader   *p_cuheader )
 {
-       LibGoblin_DWARF_DIEValue        *pval_name;
-       LibGoblin_DWARF_DIEValue        *pval_declfile;
-       LibGoblin_DWARF_DIEValue        *pval_declline;
-       LibGoblin_DWARF_DIEValue        *pval_byte_size;
-
-       // Data Extract
-       pval_name               = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_name );
-       pval_declfile   = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_decl_file );
-       pval_declline   = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_decl_line );
-       pval_byte_size  = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_byte_size );
-
-
-/*
-       Byte            *pb_link        = NULL;
        int                     i_obj_parent;
+       //Byte          *pb_link        = NULL;
        PtrValue        ptrval_start;
        LibGoblin_ObjectInfo            *pobj_now;
        LibGoblin_ObjectInfo            *pobj_parent;
        LibGoblin_ProgramInfo           *p_pginfo;
        LibGoblin_DWARF_DIEValue        *pval_name;
-       LibGoblin_DWARF_DIEValue        *pval_type;
        LibGoblin_DWARF_DIEValue        *pval_declfile;
        LibGoblin_DWARF_DIEValue        *pval_declline;
        LibGoblin_DWARF_DIEValue        *pval_byte_size;
+       LibGoblin_DWARF_DIEValue        *pval_declaration;
+       LibGoblin_DWARF_DIEValue        *pval_specification;
+       LibGoblin_DWARF_DIEValue        *pval_start_scope;
 
        // Data Extract
-       pval_type       = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_type );
-       pval_name       = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_name );
-       pval_declfile   = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_decl_file );
-       pval_declline   = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_decl_line );
-       pval_byte_size  = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_byte_size );
-
-
-       if( NULL != pval_type )
-               { pb_link       = pval_type->value.pb_link; }
+       pval_name                       = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_name );
+       pval_declfile           = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_decl_file );
+       pval_declline           = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_decl_line );
+       pval_byte_size          = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_byte_size );
+       pval_declaration        = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_declaration );
+       pval_specification      = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_specification );
+       pval_start_scope        = DWARF_AttrForm_GetDIEValue( p_binfo, DW_AT_start_scope );
 
        i_obj_parent    = p_ancestry[i_childlv - 1].i_objid;
-
-       p_pginfo        = ProgInfo_GetProgInfo( p_binfo->i_pginfo );
+       p_pginfo                = ProgInfo_GetProgInfo( p_binfo->i_pginfo );
        assert( NULL != p_pginfo );
 
        pobj_parent     = ObjectInfo_GetObjectInfo( p_pginfo, i_obj_parent );
@@ -127,7 +113,7 @@ int
 
        pobj_now        = ObjectInfo_InsetObject(
                                                p_pginfo, ptrval_start, (QWord)0, pobj_parent,
-                                               OBJINFO_INSETMODE_ADOPT, OBJINFO_TYPE_TYPEDEF, NULL );
+                                               OBJINFO_INSETMODE_ADOPT, OBJINFO_TYPE_TYPE_MULTI, NULL );
        if( NULL == pobj_now )  {
                return -0x03;
        }
@@ -148,6 +134,12 @@ int
        else
                { pobj_now->pstr_name   = NULL; }
 
+/*
+
+
+       if( NULL != pval_type )
+               { pb_link       = pval_type->value.pb_link; }
+
        pobj_now->dwarf.i_objid_type            = NO_OBJ;
        pobj_now->dwarf.pb_dwinfo_type          = pb_link;
        pobj_now->info.type.dw_size                     = 0;