<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><div style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">NT/amd64 & likely all NT architectures except x86: The pdata gives function boundaries and the xdata provides information to restore nonvolatile registers, including rsp and return address. Locals may be enregistered across function calls in nonvolatile registers. </div><div style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "><br></div><div style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); "><br></div><div style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">There is no linked list.</div>There is a reliable stack walker including restoring nonvolatile registers provided by ther operating system (RtlUnwind, RtlVirtualUnwind).</div><div><br></div><div><br> - Jay</div><div><br>On Jul 19, 2015, at 5:02 AM, Elmar Stellnberger <<a href="mailto:estellnb@elstel.org">estellnb@elstel.org</a>> wrote:<br><br></div><blockquote type="cite"><div>
<meta content="text/html; charset=windows-1252" http-equiv="Content-Type">
<br>
<div class="moz-cite-prefix">Am 2015-07-19 um 12:19 schrieb Jay K:<br>
</div>
<blockquote cite="mid:COL130-W98F71B1447317E3FAF027E6860@phx.gbl" type="cite">
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style>
<div dir="ltr">
<div>And all the other NT platforms are faster.</div>
</div>
</blockquote>
<blockquote cite="mid:COL130-W98F71B1447317E3FAF027E6860@phx.gbl" type="cite">
<div dir="ltr">
<div>They don't link/unlink anything.</div>
<div>They have metadata describing prologs.</div>
<div>The runtime can use that to restore nonvolatile registers
(including</div>
<div>the stack) at any point.</div>
</div>
</blockquote>
<br>
including NT-AMD64 or not? - <br>
but PowerPC, MIPS, Alpha, Itanium and ARM?<br>
<br>
interesting. What happens if I have a variable being kept in a
register<br>
like register int x? These registers would still need to be saved as
<br>
a prolog could never tell us (i.e. we would then again need a linked
<br>
list) ...<br>
<br>
... and then if we have prologues we would not need to pin down<br>
any word that could refer as a refany to the traced heap in our <br>
locales area but only those which really do (The question is of<br>
course what data is in these prologues and what data is not.).<br>
<br>
<br>
<br>
</div></blockquote></body></html>