OSDN Git Service

(LibGoblin)
authorKoine Yuusuke(koinec) <koinec@users.osdn.me>
Sun, 3 Nov 2019 17:48:12 +0000 (02:48 +0900)
committerKoine Yuusuke(koinec) <koinec@users.osdn.me>
Sun, 3 Nov 2019 17:48:12 +0000 (02:48 +0900)
  * WorkBackup

libgoblin/drd64_libgoblin_api.c
libgoblin/drd64_libgoblin_debug_srcfile.c
libgoblin/drd64_libgoblin_debug_srcfile.h

index 77fa5ca..5cb5810 100644 (file)
@@ -103,7 +103,7 @@ int
 
        // XXX: for DEBUG!
        Debug_ObjectInfo_Print_AllGroupLink( p_pginfo, 0xff );
-       Debug_SrcFile_PrintSrcFileTable( p_binfo, 0xff );
+       Debug_SrcFile_PrintSrcFileTable( p_pginfo, 0xff );
 
        return  i_result;
 }
index 41798c8..46a0ba4 100644 (file)
@@ -40,9 +40,40 @@ Comment:
 
 /*----------------------------------------------------------------------
 ----------------------------------------------------------------------*/
+int
+       Debug_SrcFile_PrintSrcFile_inBianryFile(
+                       LibGoblin_BinaryFile    *p_bfile,
+                       Byte            b_level )
+{
+       int             i_srcid;
+       LibGoblin_SrcFile               *p_srcfile;
+
+       assert( NULL != p_bfile );
+
+       printf("  BinaryFile: %s\n", p_bfile->str_filename );
+       if( 0 == p_bfile->srcfile.i_max )       {
+               printf( "    (Unread .debug_line section within Src.FileTable)\n");
+               return 0x00;
+       }
+
+       for( i_srcid = 0; i_srcid < p_bfile->srcfile.i_max; i_srcid++ ) {
+               p_srcfile       = SrcFile_GetSrcFile( p_bfile, i_srcid );
+               if( NULL == p_srcfile ) { continue; }
+
+               printf( "    [%3d] %s/%s\n",
+                               p_srcfile->i_id, p_srcfile->str_srcpath, p_srcfile->str_filename );
+       }
+
+
+       return 0x00;
+}
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
 LIBGOBLIN_DEBUG_SRCFILE_EXTERN
 int
-       Debug_SrcFile_PrintSrcFileTable(
+       Debug_SrcFile_PrintSrcFileTable_inBinaryInfo(
                        LibGoblin_BinaryInfo    *p_binfo,
                        Byte            b_level )
 {
@@ -55,14 +86,46 @@ int
 
        if( 0x00 < b_level )
                { puts("[DEBUG] SrcFile Table --------------------------------------------------"); }
+       Debug_SrcFile_PrintSrcFile_inBianryFile( p_bfile, b_level );
 
-       for( i_srcid = 0; i_srcid < p_bfile->srcfile.i_max; i_srcid++ ) {
-               p_srcfile       = SrcFile_GetSrcFile( p_bfile, i_srcid );
-               if( NULL == p_srcfile ) { continue; }
-
-               printf( "  [%3d] %s/%s\n", p_srcfile->i_id, p_srcfile->str_srcpath, p_srcfile->str_filename );
+       if( 0x00 < b_level )    {
+               puts("-----------------------------------------------------------------------");
+               puts("");
        }
 
+       return 0x00;
+}
+
+
+/*----------------------------------------------------------------------
+----------------------------------------------------------------------*/
+LIBGOBLIN_DEBUG_SRCFILE_EXTERN
+int
+       Debug_SrcFile_PrintSrcFileTable(
+                       LibGoblin_ProgramInfo   *p_pginfo,
+                       Byte            b_level )
+{
+       int             i_srcid;
+       LibGoblin_BinaryInfo    *p_binfo;
+       LibGoblin_BinaryFile    *p_bfile;
+
+       assert( NULL != p_pginfo );
+
+       if( 0x00 < b_level )
+               { puts("[DEBUG] SrcFile Table --------------------------------------------------"); }
+       
+       p_binfo = BinaryInfo_GetBinInfo( p_pginfo->i_binfo_id );
+       assert( NULL != p_binfo );
+
+       do      {
+               p_bfile = BinaryFile_GetBinaryFile( p_binfo->i_binfile );
+               assert( NULL != p_bfile );
+
+               Debug_SrcFile_PrintSrcFile_inBianryFile( p_bfile, b_level );
+
+               p_binfo = BinaryInfo_GetBinInfo( p_binfo->i_binfo_next );
+       }while( NULL != p_binfo );
+
        if( 0x00 < b_level )    {
                puts("-----------------------------------------------------------------------");
                puts("");
index d91b4c7..2bdd8be 100644 (file)
@@ -46,8 +46,11 @@ Comment:
 #endif
 
 LIBGOBLIN_DEBUG_SRCFILE_EXTERN
-       int Debug_SrcFile_PrintSrcFileTable(
+       int Debug_SrcFile_PrintSrcFileTable_inBinaryInfo(
                                LibGoblin_BinaryInfo *p_binfo, Byte b_level );
+LIBGOBLIN_DEBUG_SRCFILE_EXTERN
+       int Debug_SrcFile_PrintSrcFileTable(
+                               LibGoblin_ProgramInfo *p_pginfo, Byte b_level );
 
 
 #endif /* DRD64_HEADER_XXX */