Ignore:
Timestamp:
Aug 22, 2002, 9:45:41 PM (23 years ago)
Author:
umoeller
Message:

Misc changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/helpers/debug.c

    r142 r212  
    1 
    21/*
    32 *@@sourcefile debug.c:
     
    4443 *      GNU General Public License for more details.
    4544 */
     45
     46//#define DEBUG_SYMDUMP // enable to dump sym file to log V0.9.21 (2002-08-21) [paperino]
    4647
    4748#define OS2EMX_PLAIN_CHAR
     
    15361537
    15371538    // open .SYM file
     1539#ifdef DEBUG_SYMDUMP    // V0.9.21 (2002-08-21) [paperino]
     1540    fprintf(LogFile,"Dump of '%s' for object %d\n",SymFileName,Object);
     1541#endif
    15381542    SymFile = fopen(SymFileName, "rb");
    15391543    if (SymFile == 0)
     
    15421546    // read in first map definition
    15431547    fread(&MapDef, sizeof(MAPDEF), 1, SymFile);
     1548#ifdef DEBUG_SYMDUMP
     1549    Buffer[0] = MapDef.achModName[0];
     1550    fread(&Buffer[1], 1, MapDef.cbModName-1, SymFile);
     1551    Buffer[MapDef.cbModName] = 0x00;
     1552    fprintf(LogFile,"Module name '%s'\n",Buffer);
     1553#endif
    15441554
    15451555    SegOffset = SEGDEFOFFSET(MapDef);
     1556#ifdef DEBUG_SYMDUMP
     1557    fprintf(LogFile,"SegOffset %0x\n",SegOffset);
     1558#endif
    15461559
    15471560    // go thru all segments
     
    15501563         SegNum++)
    15511564    {
    1552         // printf("Scanning segment #%d Offset %4.4hX\n",SegNum+1,SegOffset);
     1565#ifdef DEBUG_SYMDUMP
     1566        fprintf(LogFile,"Scanning segment #%d Offset %08X\n",SegNum,SegOffset);
     1567#endif
    15531568        if (fseek(SymFile, SegOffset, SEEK_SET))
    15541569            // seek error
     
    15571572        // read in segment definition
    15581573        fread(&SegDef, sizeof(SEGDEF), 1, SymFile);
     1574        Buffer[0] = SegDef.achSegName[0];
     1575        fread(&Buffer[1], 1, SegDef.cbSegName-1, SymFile);
     1576        Buffer[SegDef.cbSegName] = 0x00;
     1577#ifdef DEBUG_SYMDUMP
     1578        fprintf(LogFile,"Segment name '%s', number %d, flags %02x\n",Buffer,SegNum,SegDef.bFlags);
     1579#endif
     1580
    15591581        if (SegNum == Object)
    15601582        {
     
    15641586
    15651587            // go thru all symbols in this object
     1588#ifdef DEBUG_SYMDUMP
     1589            fprintf(LogFile,"Scanning #%d symbols\n",SegDef.cSymbols);
     1590#endif
    15661591            for (SymNum = 0; SymNum < SegDef.cSymbols; SymNum++)
    15671592            {
    1568 
    1569                 // read in symbol offset USHORT
    1570                 SymPtrOffset = SYMDEFOFFSET(SegOffset, SegDef, SymNum);
    1571                 fseek(SymFile, SymPtrOffset, SEEK_SET);
    1572                 fread(&SymOffset, sizeof(unsigned short int), 1, SymFile);
    1573 
    1574                 // go to symbol definition
    1575                 fseek(SymFile, SymOffset + SegOffset, SEEK_SET);
    1576 
     1593                // fixed syms > 64 K V0.9.21 (2002-08-21) [paperino]
    15771594                if (SegDef.bFlags & 0x01)
    15781595                {
     
    15941611                    LastVal = SymDef32.wSymVal;
    15951612                    Buffer[0] = SymDef32.achSymName[0];
    1596                     fread(&Buffer[1], 1, SymDef32.cbSymName, SymFile);
     1613                    fread(&Buffer[1], 1, SymDef32.cbSymName-1, SymFile);
    15971614                    Buffer[SymDef32.cbSymName] = 0x00;
     1615#ifdef DEBUG_SYMDUMP
     1616                    fprintf(LogFile,"32 Bit Symbol Address %08p <%s> \n",SymDef32.wSymVal,Buffer);
     1617#endif
    15981618
    15991619                    if (SymDef32.wSymVal > TrapOffset)
     
    16081628                        break;
    16091629                    }
    1610                     /*printf("32 Bit Symbol <%s> Address %p\n",Buffer,SymDef32.wSymVal); */
    16111630                }
    16121631                else
     
    16231642                    LastVal = SymDef16.wSymVal;
    16241643                    Buffer[0] = SymDef16.achSymName[0];
    1625                     fread(&Buffer[1], 1, SymDef16.cbSymName, SymFile);
     1644                    fread(&Buffer[1], 1, SymDef16.cbSymName-1, SymFile);
    16261645                    Buffer[SymDef16.cbSymName] = 0x00;
    16271646                    if (SymDef16.wSymVal > TrapOffset)
     
    16341653                        break;
    16351654                    }
    1636                     /*printf("16 Bit Symbol <%s> Address %p\n",Buffer,SymDef16.wSymVal); */
     1655#ifdef DEBUG_SYMDUMP
     1656                    fprintf(LogFile,"16 Bit Symbol <%s> Address %p\n",Buffer,SymDef16.wSymVal);
     1657#endif
    16371658                }               // endif
    16381659            }
Note: See TracChangeset for help on using the changeset viewer.