<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>clarification -- RTLinker still crashes. I put in C code to dump, since it crashes before its own printing would work.<BR>A bunch works and then:<BR>
<BR>
<BR><BR>Module 00682020 ..\src\runtime\common\RTHeapInfo.m3 Imports 006820C0{Import 0000<BR>0000, Binder 00000000, Next 00603FD0}<BR>
<BR>
and then the dumper AV's because the next pointer is bad.<BR>
<BR>
0:000> dc 00603FD0<BR>00603fd0 8be58955 c0b80845 c900682a 909090c3 U...E...*h......<BR>00603fe0 8be58955 80b80845 c900682b e58955c3 U...E...+h...U..<BR>00603ff0 ec835657 08458b20 8904c083 2be8a1c2 WV.. .E........+<BR>00604000 f4050068 8b000000 dc7d8d00 b8fcc689 h.........}.....<BR>00604010 00000007 a5f3c189 758dd789 07b8fcdc ...........u....<BR>00604020 89000000 83a5f3c1 5f5e20c4 9090c3c9 ......... ^_....<BR>00604030 8be58955 60b80845 c900682c 909090c3 U...E..`,h......<BR>00604040 8be58955 00b80845 c900682d 909090c3 U...E...-h......<BR>
<BR>
anything over 0x80000000, or depending on configuration, 0xc0000000, is an invalid user mode pointer on 32bit NT.<BR>
The address space is usually split 2gig/2gig, the upper 2gig is the kernel memory, the same mappings system side.<BR>
There is an option to make it 3gig/1gig.<BR>
<BR>
If anyone has any hints, please tell me, thanks.<BR>
<BR>
If anyone else can build this stuff...?<BR>
I can commit the printing to be only on this platform...<BR>
<BR>
The assembly code output by cm3cg is much harder to read than it should be, even for assembly language.. :(<BR>
Attached.<BR>
<BR>
- Jay<BR><BR>
<BLOCKQUOTE>
<HR id=EC_stopSpelling>
From: jayk123@hotmail.com<BR>To: m3devel@elegosoft.com<BR>Subject: RE: [M3devel] more assembly symbols please?<BR>Date: Sat, 19 Jan 2008 11:32:21 +0000<BR><BR>
<META content="Microsoft SafeHTML" name=Generator>
<STYLE>
.ExternalClass .EC_hmmessage P
{padding:0px;}
.ExternalClass EC_body.hmmessage
{font-size:10pt;font-family:Tahoma;}
</STYLE>
duh, finally, got it. parameters being passed in the wrong order -- left to right instead of right to left.<BR>should have read the assembly of some multi parameter function calls...<BR> <BR>PROCEDURE RTLinker_PutInt (i: INTEGER; width := 0) =<BR> VAR<BR> num : ARRAY [0..30] OF CHAR;<BR><STRONG> len := FromInt (ADR (num[0]), i, 10);<BR></STRONG> BEGIN<BR> FOR i := 1 TO width - len DO PutChar (' ') END;<BR> PutChars (ADR (num[0]), len);<BR> END RTLinker_PutInt;<BR><BR><BR>Dump of assembler code for function RTLinker__RTLinker_PutInt:<BR>0x005de25f <RTLinker__RTLinker_PutInt+0>: push %ebp<BR>0x005de260 <RTLinker__RTLinker_PutInt+1>: mov %esp,%ebp<BR>0x005de262 <RTLinker__RTLinker_PutInt+3>: sub $0x38,%esp<BR>0x005de265 <RTLinker__RTLinker_PutInt+6>: mov 0x8(%ebp),%edx<BR>0x005de268 <RTLinker__RTLinker_PutInt+9>: sub $0x4,%esp<BR>0x005de26b <RTLinker__RTLinker_PutInt+12>: lea 0xffffffd9(%ebp),%eax<BR>0x005de26e <RTLinker__RTLinker_PutInt+15>: push %eax<BR>0x005de26f <RTLinker__RTLinker_PutInt+16>: push %edx<BR><STRONG>0x005de270 <RTLinker__RTLinker_PutInt+17>: push $0xa<BR></STRONG>0x005de272 <RTLinker__RTLinker_PutInt+19>: call 0x5de345 <RTLinker__FromI<BR>nt><BR> <BR>and I AVed writing to the address 0xA..<BR> <BR> - Jay<BR><BR>
<HR>
Connect and share in new ways with Windows Live. <A href="http://www.windowslive.com/share.html?ocid=TXT_TAGHM_Wave2_sharelife_012008" target=_blank>Get it now!</A> </BLOCKQUOTE><br /><hr />Climb to the top of the charts! Play the word scramble challenge with star power. <a href='http://club.live.com/star_shuffle.aspx?icid=starshuffle_wlmailtextlink_jan' target='_new'>Play now!</a></body>
</html>