[M3devel] AMD64_NT failing on null def to RTAllocator__GetTracedObj

Jay K jay.krell at cornell.edu
Tue Oct 1 15:44:04 CEST 2013


It works now. I didn't really change anything.
I'm guessing it was the ScanTypes thing in m3front/src/misc/CG.m3.



I would encourage anyone at this time to try AMD64_NT.
But I haven't uploaded a distribution yet, sorry.
Cross building is required a short time longer. I mildly encourage that.
It could use testing/feedback from other than me.
There is a boot archive: https://modula3.elegosoft.com/cm3/uploaded-archives/cm3-boot-AMD64_NT-d5.9.0-20130921.zip

 - Jay

From: jay.krell at cornell.edu
To: m3devel at elegosoft.com
Date: Sun, 22 Sep 2013 09:53:54 +0000
Subject: Re: [M3devel] AMD64_NT failing on null def to RTAllocator__GetTracedObj




hm. indeed.

darwin @M3tracelinker shows a few PathnamePosix but nt never shows PathnameWin32.

 - Jay


From: jay.krell at cornell.edu
To: m3devel at elegosoft.com
Date: Sun, 22 Sep 2013 09:10:02 +0000
Subject: [M3devel] AMD64_NT failing on null def to RTAllocator__GetTracedObj




darn, AMD4_NT isn't working any longer.



It gets here:



0:000> k
Child-SP          RetAddr           Call Site
00000000`002bee90 00000001`3fac0f1f cm3!RTAllocator__GetTracedObj+0x91 [c:\dev2\src\runtime\common\rtallocator.m3 @ 221]
00000000`002bef10 00000001`3fa3fe96 cm3!RTHooks__AllocateTracedObj+0x2f [c:\dev2\src\runtime\common\rtallocator.m3 @ 123]
00000000`002bef60 00000001`3fa3f774 cm3!Pathname__Decompose+0x86 [c:\dev2\src\os\win32\pathnamewin32.m3 @ 40]
00000000`002beff0 00000001`3fa3f55f cm3!PathRepr__Root+0xb4 [c:\dev2\src\pathreprcommon.m3 @ 38]
00000000`002bf1c0 00000001`3fae37fc cm3!PathReprCommon_M3+0xcf [c:\dev2\src\pathreprcommon.m3 @ 46]
00000000`002bf380 00000001`3fae3653 cm3!RTLinker__RunMainBody+0x46c [c:\dev2\src\runtime\common\rtlinker.m3 @ 409]


0:000> dv /V
00000000`002bef10 @rsp+0x0080              def_L_96 = 0x00000000`00000000
...
0:000> u . -10
cm3!RTAllocator__GetTracedObj+0x81 [c:\dev2\src\runtime\common\rtallocator.m3 @217]:
...
00000001`3fac23b9 488b842480000000 mov     rax,qword ptr [rsp+80h]
00000001`3fac23c1 488b08          mov     rcx,qword ptr [rax]
0:000> u . l1
cm3!RTAllocator__GetTracedObj+0x91 [c:\dev2\src\runtime\common\rtallocator.m3 @
221]:
00000001`3fac23c1 488b08          mov     rcx,qword ptr [rax]
0:000> r rax
rax=0000000000000000


def is NULL.


It comes from here:


Pathname__Decompose:
...
RTHooks__AllocateTracedObj(
  (((ADDRESS)(*((ADDRESS*)(INT64_(192)+((ADDRESS)(&M_PathnameWin32_L_33))))))));


M_PathnameWin32_L_33 + 192 is NULL.
"_L_33" is an annoying uniquifier from the C backend, sprinkled on far more than needed.


 global data allocation for M_PathnameWin32
...
192    16  8  typecell ptr


Is that supposed to be statically initialized or filled in by RTLinker?


It noticably is not in the constants, but the writables.


Help?
Debug RTLinker?




 - Jay 		 	   		   		 	   		   		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20131001/dfcb9fe9/attachment-0001.html>


More information about the M3devel mailing list