Changeset 227

Show
Ignore:
Timestamp:
08/02/06 19:07:04 (2 years ago)
Author:
pragma
Message:

Various Tweaks

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ddl/Utils.d

    r216 r227  
    9393alias ExtSprintClassT!(char) ExtSprintClass; 
    9494 
     95char[] dataDumper(void* data,uint length){ 
     96    char[] result = ""; 
     97    char[] buf2 = ""; 
     98    ubyte* ptr = cast(ubyte*)(cast(uint)data&0xFFFFFFF0); // start at nearest page 
     99    ExtSprintClass sprint = new ExtSprintClass(1024); 
     100     
     101    for(uint idx=0; idx<length; idx++,ptr++){ 
     102        ubyte b = *ptr; 
     103        if(idx % 16 == 0){ 
     104             result ~= sprint(" |  %s\n  [%0.8X] ",buf2,ptr); 
     105             buf2 = ""; 
     106        } 
     107         
     108        if(ptr == data){ 
     109            result ~= "*"; 
     110        } 
     111        else{ 
     112            result ~= " "; 
     113        } 
     114         
     115        if(b < 16) result ~= "0"; //HACK: sprint doesn't left-pad correctly 
     116        result ~= sprint("%0.2X",b); 
     117                 
     118        if(b >= 32 && b <= 126){ 
     119            buf2 ~= cast(char)b; 
     120        } 
     121        else{ 
     122            buf2 ~= "."; 
     123        } 
     124    } 
     125    result ~= " | " ~ buf2 ~ "\n";   
     126    return result; 
     127} 
     128 
    95129/* 
    96130debug{    
  • trunk/ddl/omf/OMFBinary.d

    r224 r227  
    473473            if((fixDataByte & 0b00000100) == 0){ 
    474474                reader.get(targetDisplacement); 
     475                //debug debugLog("targetDisplacement: %d for %d (%d)",cast(uint)targetDisplacement,fixupData.destNameIndex,offset); 
    475476            } 
    476477             
  • trunk/ddl/omf/OMFModule.d

    r224 r227  
    116116                fixupValue = cast(uint)(segmentImages[targetIndex].data.ptr); 
    117117            } 
    118             debug debugLog("fixup dest [%0.8X] = fixupValue [%0.8X] rel:%d",destAddress,fixupValue,cast(uint)isSegmentRelative); 
     118            debug debugLog("fixup dest [%0.8X] (%0.8X) = fixupValue [%0.8X] rel:%d",destAddress,*cast(uint*)destAddress,fixupValue,cast(uint)isSegmentRelative); 
    119119             
    120120            // apply the fixup value 
     
    125125                *cast(uint*)destAddress = fixupValue; 
    126126            } 
    127             else if(!isSegmentRelative){ 
    128                 *cast(uint*)destAddress = fixupValue - cast(uint)destAddress - 4; // relative fixup, offset by width of field 
    129             } 
    130             else{ // self relative 
     127            else if(!isSegmentRelative){ // relative fixup, offset by width of field 
     128                *cast(uint*)destAddress = fixupValue - destAddress - 4;  
     129            } 
     130            else{ // segment relative 
    131131                *cast(uint*)destAddress += fixupValue;       
    132132            } 
     
    480480                } 
    481481            } 
    482             result ~= "\n"; 
     482            result ~= buf2 ~ "\n"; 
    483483        } 
    484484