[Mono-list] invoke_trap

Ferguson, Neale Neale.Ferguson@SoftwareAG-USA.com
Tue, 15 Oct 2002 15:12:24 -0400


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C2747E.CB77E9D0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

I am trying to work out why S390 doesn't pass the thread5 test. I've =
found
that the variable frame->invoke_trap is 0 and so in ves_exec_method =
when a
throw is encountered. Tracing x86 I see that when ves_exec_method is =
entered
for MyThreadStart the following situation exists:
=20
Breakpoint 2, ves_exec_method (frame=3D0xbf5ff84c) at interp.c:1249
(gdb) p *frame
$2 =3D {parent =3D 0xbf5ff9e4, child =3D 0x0, method =3D 0x818c780,
  retval =3D 0xbf5ff9d8, obj =3D 0x0, locals =3D 0x0, args =3D 0x0,
  stack_args =3D 0xbf5ff9d8, stack =3D 0xbf5ff89c, invoke_trap =3D 0,
  ip =3D 0x80eb114 "=FC=AF\016\b8`\001@=C0=BC", ex =3D 0x0, ex_handler =
=3D 0x0}
(gdb) p *frame->parent
$3 =3D {parent =3D 0x0, child =3D 0x0, method =3D 0x818c958, retval =3D =
0xbf5ff9d8,
  obj =3D 0x8107c30, locals =3D 0x8107c00 "=C4c\022\b",
  args =3D 0x809eccd "[\201=C3G=C4\004", stack_args =3D 0xbf5ff9d8, =
stack =3D
0x8093b10,
  invoke_trap =3D -1084229080, ip =3D 0x80ca628 =
"\211=C0\211E=FC\213U=FC\211=D0=EB",
  ex =3D 0x0, ex_handler =3D 0x0}

Now the value -104229080 looks like an uninitialized area of storage. =
Within
the source, I can only find invoke_trap being set to 0 (in the =
INIT_FRAME
macro) or 1 (in interp_mono_runtime_invoke). So, is thread5's passing  =
due
to serendipity or am I missing something?
=20
=20
Neale

------_=_NextPart_001_01C2747E.CB77E9D0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">


<META content=3D"MSHTML 6.00.2713.1100" name=3DGENERATOR></HEAD>
<BODY>
<DIV><SPAN class=3D283130720-15102002><FONT face=3DArial size=3D2>I am =
trying to work=20
out why S390 doesn't pass the thread5 test. I've found that the =
variable<FONT=20
face=3D"Courier New" color=3D#0000ff> frame-&gt;invoke_trap</FONT> is 0 =
and so in=20
<FONT face=3D"Courier New" color=3D#0000ff>ves_exec_method</FONT> when =
a throw is=20
encountered. Tracing x86 I see that when <FONT face=3D"Courier New"=20
color=3D#0000ff>ves_exec_method</FONT> is entered for <FONT =
face=3D"Courier New"=20
color=3D#0000ff>MyThreadStart</FONT> the following situation=20
exists:</FONT></SPAN></DIV>
<DIV><SPAN class=3D283130720-15102002><FONT face=3DArial=20
size=3D2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=3D283130720-15102002><FONT face=3D"Courier New" =
size=3D2>Breakpoint=20
2, ves_exec_method (frame=3D0xbf5ff84c) at interp.c:1249<BR>(gdb) p =
*frame<BR>$2 =3D=20
{parent =3D 0xbf5ff9e4, child =3D 0x0, method =3D 0x818c780,<BR>&nbsp; =
retval =3D=20
0xbf5ff9d8, obj =3D 0x0, locals =3D 0x0, args =3D 0x0,<BR>&nbsp; =
stack_args =3D=20
0xbf5ff9d8, stack =3D 0xbf5ff89c, invoke_trap =3D 0,<BR>&nbsp; ip =3D =
0x80eb114=20
"=FC=AF\016\b8`\001@=C0=BC", ex =3D 0x0, ex_handler =3D 0x0}<BR>(gdb) p =

*frame-&gt;parent<BR>$3 =3D {parent =3D 0x0, child =3D 0x0, method =3D =
0x818c958, retval=20
=3D 0xbf5ff9d8,<BR>&nbsp; obj =3D 0x8107c30, locals =3D 0x8107c00=20
"=C4c\022\b",<BR>&nbsp; args =3D 0x809eccd "[\201=C3G=C4\004", =
stack_args =3D 0xbf5ff9d8,=20
stack =3D 0x8093b10,<BR>&nbsp; invoke_trap =3D <FONT=20
color=3D#ff0000>-<STRONG>1084229080</STRONG></FONT>, ip =3D 0x80ca628=20
"\211=C0\211E=FC\213U=FC\211=D0=EB",<BR>&nbsp; ex =3D 0x0, ex_handler =
=3D=20
0x0}</FONT></SPAN></DIV>
<DIV><SPAN class=3D283130720-15102002><FONT face=3DArial =
size=3D2><BR>Now the value=20
-104229080 looks like an uninitialized area of storage. Within the =
source, I can=20
only find <FONT face=3D"Courier New" color=3D#0000ff>invoke_trap</FONT> =
being set to=20
0 (in the&nbsp;<FONT face=3D"Courier New" =
color=3D#0000ff>INIT_FRAME</FONT>=20
macro)&nbsp;or 1 (in <FONT face=3D"Courier New"=20
color=3D#0000ff>interp_mono_runtime_invoke</FONT>). So, =
is&nbsp;thread5's passing=20
&nbsp;due to&nbsp;serendipity or am I missing =
something?</DIV></FONT></SPAN>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><SPAN class=3D283130720-15102002><FONT face=3DArial=20
size=3D2>Neale</FONT></SPAN></DIV></BODY></HTML>

------_=_NextPart_001_01C2747E.CB77E9D0--