FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

scanOptLink parse problems

 
Post new topic   Reply to topic     Forum Index -> Flectioned
View previous topic :: View next topic  
Author Message
ilm



Joined: 11 Jun 2007
Posts: 1

PostPosted: Mon Jun 11, 2007 7:51 pm    Post subject: scanOptLink parse problems Reply with quote

it looks like insertRawSymbol isnt de-mangling names right.

the test environment is Windows XPsp2 DMD 1.10, 1.14, 1.15 (phobos). the same test program works fine when using debug symbols instead of a map file.

test program:
Code:

module sample;

class MyException : TracedException{
   this(){
      super("a message");
      writefln("\tMyException: this()");
      print();
   }

   new(size_t size){
      writefln("\tMyException: new(size_t)");
      return (new byte[size]).ptr;
   }
}

class AA {
   int i = 0x12_34_56_AB;
}

class BB : AA
{
   this(){i = 0xdeadbeef; }
}

class CC : BB
{
   this(){ i = 0x01; }
}


resulting types table (sample.* missing):

Code:

       util.flectioned.PrimitiveTypeSymbol!(long).PrimitiveTypeSymbol
       double
       uint
       cdouble
       util.flectioned.PrimitiveTypeSymbol!(ulong).PrimitiveTypeSymbol
       util.flectioned.PrimitiveTypeSymbol!(ifloat).PrimitiveTypeSymbol
       util.flectioned.PrimitiveTypeSymbol!(float).PrimitiveTypeSymbol
       dchar
       idouble
       util.flectioned.PrimitiveTypeSymbol!(uint).PrimitiveTypeSymbol
       util.flectioned.PrimitiveTypeSymbol!(bool).PrimitiveTypeSymbol
       creal
       util.flectioned.PrimitiveTypeSymbol!(ushort).PrimitiveTypeSymbol
       float
       util.flectioned.PrimitiveTypeSymbol!(cfloat).PrimitiveTypeSymbol
       char
       util.flectioned.PrimitiveTypeSymbol!(wchar).PrimitiveTypeSymbol
       real
       util.flectioned.PrimitiveTypeSymbol!(double).PrimitiveTypeSymbol
       aaA.BB
       util.flectioned.PrimitiveTypeSymbol!(byte).PrimitiveTypeSymbol
       util.flectioned.PrimitiveTypeSymbol!(void).PrimitiveTypeSymbol
       short
       util.flectioned.PrimitiveTypeSymbol!(short).PrimitiveTypeSymbol
       void
       util.flectioned.PrimitiveTypeSymbol!(int).PrimitiveTypeSymbol
       util.flectioned.PrimitiveTypeSymbol!(ubyte).PrimitiveTypeSymbol
       util.flectioned.PrimitiveTypeSymbol!(creal).PrimitiveTypeSymbol
       ubyte
       int
       ulong
       util.flectioned.PrimitiveTypeSymbol!(ireal).PrimitiveTypeSymbol
       util.flectioned.PrimitiveTypeSymbol!(idouble).PrimitiveTypeSymbol
       util.flectioned.PrimitiveTypeSymbol!(dchar).PrimitiveTypeSymbol
       ifloat
       aaA.aaA
       byte
       ireal
       bool
       ushort
       util.flectioned.PrimitiveTypeSymbol!(real).PrimitiveTypeSymbol
       cfloat
       util.flectioned.PrimitiveTypeSymbol!(cdouble).PrimitiveTypeSymbol
       util.flectioned.PrimitiveTypeSymbol!(char).PrimitiveTypeSymbol
       long
       wchar



debug printfs() to show args being passed to insertRawSymbol:


Code:
name=_D6sample11MyException5_ctorMFZC6sample11MyException address=00402010 size=0000003e
name=_D6sample2BB5_ctorMFZC6sample2BB address=00402050 size=00000008
name=_D6sample2CC5_ctorMFZC6sample2CC address=00402058 size=00000018
name=__Dmain address=00402070 size=000001fe
name=_D6sample7__arrayZ address=00402270 size=00000013
name=_D4util10flectioned9getStringFC6ObjectZAa address=00402284 size=00000006
name=_D4util10flectioned15SymbolException5_ctorMFAaZC4util10flectioned15SymbolException address=0040228c size=00000027
name=_D4util10flectioned15SymbolException11__invariantMFZv address=004022b4 size=00000011
name=_D4util10flectioned19ReflectionException5_ctorMFAaZC4util10flectioned19ReflectionException address=004022c8 size=00000027
name=_D4util10flectioned19ReflectionException11__invariantMFZv address=004022f0 size=00000011
name=_D4util10flectioned17OverloadException11__invariantMFZv address=00402304 size=00000011
name=_D4util10flectioned26IllegalReflectionException5_ctorMFAaZC4util10flectioned26IllegalReflectionException address=00402318 size=00000027
name=_D4util10flectioned26IllegalReflectionException11__invariantMFZv address=00402340 size=00000011
name=_D4util10flectioned17ManglingException11__invariantMFZv address=00402354 size=00000011
name=_D4util10flectioned6Symbol11__invariantMFZv address=00402368 size=0000003b
name=_D4util10flectioned6Symbol5_ctorMFPvkAaC8TypeInfoZC4util10flectioned6Symbol address=004023a4 size=0000003b
name=_D4util10flectioned6Symbol8toStringMFZAa address=004023e0 size=0000005a
name=_D4util10flectioned6Symbol7cleanupMFZv address=0040243c size=0000002b
name=_D4util10flectioned6Symbol15insertRawSymbolFPaPvkbZC4util10flectioned6Symbol address=00402468 size=000000d8
name=_D4util10flectioned6Symbol14scanOptlinkMapFAaPFPaPvkbZC4util10flectioned6SymbolZv address=00402540 size=0000016f
... snip



and the input map file:

Code:

 Start         Length     Name                   Class
 0002:00000000 0001BB9BH  _TEXT                  CODE 32-bit
Type=Public  Base Address=00402000
00402000H 0040200FH 00010H   Module=sample.obj(sample)
00402010H 00402010H 00000H   Module=sample.obj(sample)
00402010H 0040204DH 0003EH   Module=sample.obj(sample) [_D6sample11MyException5_ctorMFZC6sample11MyException]
00402050H 00402057H 00008H   Module=sample.obj(sample) [_D6sample2BB5_ctorMFZC6sample2BB]
00402058H 0040206FH 00018H   Module=sample.obj(sample) [_D6sample2CC5_ctorMFZC6sample2CC]
00402070H 0040226DH 001FEH   Module=sample.obj(sample) [__Dmain]
00402270H 00402282H 00013H   Module=sample.obj(sample) [_D6sample7__arrayZ]
00402284H 00402284H 00000H   Module=flectioned.obj(flectioned)


... snip
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> Flectioned All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group