Changeset 92

Show
Ignore:
Timestamp:
12/21/05 22:14:07 (3 years ago)
Author:
pragma
Message:

Sundy bugfixes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/buildutils.bat

    r85 r92  
    1111 
    1212echo UTILS:Packaging Win32 Binaries 
    13 rm ../downloads/ddl.beta.utils.1.0.win32.bin.zip 
    14 zip ../downloads/ddl.beta.utils.1.0.win32.bin.zip utils/*.exe 
     13rm ../downloads/ddl.beta.utils.1.1.win32.bin.zip 
     14zip ../downloads/ddl.beta.utils.1.1.win32.bin.zip utils/*.exe 
    1515 
    1616echo UTILS:Packaging Source 
    17 rm ../downloads/ddl.beta.utils.1.0.src.zip 
    18 zip ../downloads/ddl.beta.utils.1.0.src.zip utils/*.d 
     17rm ../downloads/ddl.beta.utils.1.1.src.zip 
     18zip ../downloads/ddl.beta.utils.1.1.src.zip utils/*.d 
     19 
     20copy utils\*.exe c:\dev\dmd\bin\ 
  • trunk/ddl/Utils.d

    r91 r92  
    5050        void load(char[] filename){ 
    5151            this.filename = filename; 
     52            debugLog(filename); 
    5253            assert(std.file.exists(filename)); 
    5354            buffer = cast(ubyte[])std.file.read(filename); 
     
    134135     
    135136    public ubyte peekByte(){ 
    136         return data[position+1]; 
     137        return data[position]; 
    137138    }    
    138139     
  • trunk/ddl/ddl/DDLBinary.d

    r85 r92  
    3434*/ 
    3535class DDLBinary{ 
    36     protected static const uint MagicBytes = ('D'<<24)|('D'<<16)|('L'<<8)|('!')
     36    protected static const char[] MagicBytes = "DDL!"
    3737    protected static const uint DDLVersion = 0x00010001; 
    3838    protected static const uint BufferSize = 4096; 
     
    6060     
    6161    protected void loadHeader(ReadCursor cursor){ 
    62         uint magic = cursor.getDWord(); 
    63         if(magic != MagicBytes){ 
     62        ubyte[] magic = cursor.getBytes(4); 
     63        if(magic != cast(ubyte[])MagicBytes){ 
    6464            throw new Exception("File is not a DDL library"); 
    6565        } 
     
    110110        uint binaryStart = 0;  
    111111     
    112         cursor.write(MagicBytes); 
     112        cursor.write(cast(ubyte[])MagicBytes); 
    113113        cursor.write(DDLVersion); 
    114114        cursor.write(binaryStart); // dummy argument, return here when finished 
     
    136136        cursor.write(binaryData); 
    137137         
    138         cursor.setPosition(4); 
     138        cursor.setPosition(8); 
    139139        cursor.write(binaryStart); // write it for real this time, at the start of the file 
    140140         
  • trunk/ddl/insitu/InSituLibBinary.d

    r85 r92  
    2525module ddl.insitu.InSituLibBinary; 
    2626 
    27 private import std.stream; 
    2827private import std.zlib; 
    2928 
     
    9796        // write the actual file 
    9897        cursor = new WriteCursor(); 
    99         cursor.write(magicString); 
     98        cursor.write(cast(ubyte[])magicString); 
    10099        cursor.write(InSituVersion); 
    101100        cursor.write(allSymbols.length); 
  • trunk/ddl/insitu/InSituLibrary.d

    r85 r92  
    3030private import ddl.insitu.InSituBinary; 
    3131private import ddl.insitu.InSituModule; 
    32 private import std.stream; 
    33  
    34 debug private import std.stdio; 
    3532 
    3633class InSituLibrary : DynamicLibrary{ 
  • trunk/ddl/insitu/InSituModule.d

    r85 r92  
    2828private import ddl.DynamicModule; 
    2929private import ddl.insitu.InSituModule; 
    30 private import std.stream; 
    3130 
    3231class InSituModule : DynamicModule{ 
  • trunk/ddl/omf/OMFBinary.d

    r85 r92  
    176176    protected void parseTHEADR(OMFRecordCursor cursor){ 
    177177        char[] name = cursor.getLString(); 
    178         debug writefln("Library Name: %s",name); 
     178        debug debugLog("Library Name: %s",name); 
    179179        this.libraryName = name; 
    180180        this.libraryName = std.string.replace(this.libraryName,"/","."); 
     
    225225    } 
    226226 
    227     private import std.stdio; 
    228227    /* 
    229228        Read in public names 
     
    232231        uint groupIndex = cursor.getIndex();  
    233232        uint segmentIndex = cursor.getIndex(); 
    234         debug printf("PUBDEF group: %d segment: %d\n",groupIndex,segmentIndex); 
     233        debug debugLog("PUBDEF group: %d segment: %d\n",groupIndex,segmentIndex); 
    235234         
    236235        ushort baseFrame = 0; 
     
    482481            ubyte[] result; 
    483482             
    484             //debug writefln("parseblock: repeat %d block count %d",repeatCount,blockCount); 
     483            //debug debugLog("parseblock: repeat %d block count %d",repeatCount,blockCount); 
    485484             
    486485            //build raw data using a repeated block 
     
    674673 
    675674    protected void parseRecords(OMFRecordCursor mainCursor){ 
    676         Stdout.println("parsing records: %s bytes",mainCursor.getData.length); 
     675        debug Stdout.println("parsing records: %s bytes",mainCursor.getData.length); 
    677676        while(mainCursor.hasMore()){ 
    678677            ubyte type; 
     
    704703                 
    705704             
    706             //debug writefln("Record: %0.2X %d bytes",type,length); 
     705            debug debugLog("Record: %0.2X %d bytes",type,length); 
    707706                     
    708707            //NOTE: there are *many* record types not supported in here, as they are not used in DMD .obj files 
  • trunk/ddl/omf/RecordCursor.d

    r14 r92  
    2424+/ 
    2525module ddl.omf.RecordCursor; 
    26  
    27 debug private import std.stdio; 
    2826 
    2927class RecordCursor{ 
  • trunk/utils/ddlinfo.d

    r85 r92  
    4242  ddlinfo <object file> { -switch } 
    4343   
    44   -r       raw output instead of friendly names/symbols. 
     44  -r    raw output instead of friendly names/symbols. 
     45  -a    attributes only 
     46  -s    symbols only 
    4547"; 
    4648 
     
    6466    // pick through the options (if any) 
    6567    bit rawOutput = false; 
     68    bit displayAttribs = false; 
     69    bit displaySymbols = false; 
    6670     
    6771    // get dash prefixed args 
     
    7276    }); 
    7377     
     78    parser.bind("a",delegate void(){ 
     79        displayAttribs=true; 
     80    }); 
     81     
     82    parser.bind("s",delegate void(){ 
     83        displaySymbols=true; 
     84    }); 
     85     
    7486    parser.parse(args[2..$]); 
     87     
     88    if(!displaySymbols && !displayAttribs){ 
     89        displaySymbols = true; 
     90        displayAttribs = true; 
     91    } 
    7592                 
    7693    // validate a few things 
     
    85102    // (attempt to) load the binary file 
    86103    DynamicLibrary lib = regsitry.load(file); 
     104     
     105    if(!lib){ 
     106        Stdout.println("file '%s' is not supported.",file.filename); 
     107        return 1; 
     108    } 
    87109 
    88110    Stdout.println("filename: '%s'",file.filename); 
    89111    Stdout.println("type: '%s'",lib.getType); 
    90112     
    91     if(lib.getAttributes.length > 0){ 
    92         Stdout.println("attributes: "); 
    93         foreach(char[] name,char[] value; lib.getAttributes){ 
    94             Stdout.println("%s - %s",name,value); 
     113    if(displayAttribs){ 
     114        if(lib.getAttributes.length > 0){ 
     115            Stdout.println("attributes: "); 
     116            foreach(char[] name,char[] value; lib.getAttributes){ 
     117                Stdout.println("%s - %s",name,value); 
     118            } 
    95119        } 
    96120    } 
    97      
    98     Stdout.println("\nModules (%d):",lib.getModules.length); 
    99     foreach(DynamicModule mod; lib.getModules()){ 
    100         Stdout.println("\n%s",mod.getName()); 
    101          
    102         Stdout.println("\nDependencies (%d):",mod.getDependencies.length); 
    103         foreach(char[] dep; mod.getDependencies){ 
    104             debug Stdout.println("%s",dep); 
    105             if(rawOutput){ 
    106                 Stdout.println("%s",dep); 
     121    if(displaySymbols){ 
     122        Stdout.println("\nModules (%d):",lib.getModules.length); 
     123        foreach(DynamicModule mod; lib.getModules()){ 
     124            Stdout.println("\n%s",mod.getName()); 
     125             
     126            Stdout.println("\nDependencies (%d):",mod.getDependencies.length); 
     127            foreach(char[] dep; mod.getDependencies){ 
     128                debug Stdout.println("%s",dep); 
     129                if(rawOutput){ 
     130                    Stdout.println("%s",dep); 
     131                } 
     132                else{ 
     133                    Stdout.println("%s",demangleSymbol(dep)); 
     134                } 
    107135            } 
    108             else{ 
    109                 Stdout.println("%s",demangleSymbol(dep)); 
    110             } 
    111         } 
    112          
    113         Stdout.println("\nExports (%d):",mod.getExports.length); 
    114         foreach(ExportSymbol sym; mod.getExports()){ 
    115             debug Stdout.println("%s",sym.name); 
    116             if(rawOutput){ 
    117                 Stdout.println("%s",sym.name); 
    118             } 
    119             else{ 
    120                 Stdout.println("%s",demangleSymbol(sym.name)); 
    121             } 
    122         }            
    123     }    
    124      
     136             
     137            Stdout.println("\nExports (%d):",mod.getExports.length); 
     138            foreach(ExportSymbol sym; mod.getExports()){ 
     139                debug Stdout.println("%s",sym.name); 
     140                if(rawOutput){ 
     141                    Stdout.println("%s",sym.name); 
     142                } 
     143                else{ 
     144                    Stdout.println("%s",demangleSymbol(sym.name)); 
     145                } 
     146            }            
     147        }    
     148    } 
     149 
    125150    return 0; 
    126151}