<html>
<body>
Approved, but a couple of changes are needed:<br><br>
- whyAlive(1000) will display 1000 lines, even if there aren't 1000 lines
to display.<br><br>
- When viewing the leaks, if I click on the first clickable link on a
line (ex: 'global.LzIdle.onidle.delegateList.9'), the flash player
crashes. Clicking on the second link (ex: &lt;LzDelegate#13| LzSprite
...&gt;) works fine.<br><br>
- The wiki page is badly out of date:
<a href="http://wiki.openlaszlo.org/Embedded_Debugger" eudora="autourl">
http://wiki.openlaszlo.org/Embedded_Debugger</a>. At a minimum whyAlive()
should be documented that it now takes an optional argument.<br><br>
<br><br>
<br><br>
<blockquote type=cite class=cite cite="">Change 20071207-ptw-v by
<a href="mailto:ptw@dueling-banjos.local">ptw@dueling-banjos.local</a> on
2007-12-07<br>
22:50:21 EST<br>
&nbsp;&nbsp;&nbsp;&nbsp; in /Users/ptw/OpenLaszlo/ringding-2<br>
&nbsp;&nbsp;&nbsp;&nbsp; for
<a href="http://svn.openlaszlo.org/openlaszlo/trunk">
http://svn.openlaszlo.org/openlaszlo/trunk</a><br>
&nbsp;<br>
Summary: Bring memory tracing to the modern era<br>
&nbsp;<br>
Bugs Fixed:<br>
LPP-5205: 'Debug.whyAlive no longer shows reference keeping object
alive'<br>
&nbsp;<br>
Technical Reviewer:
<a href="mailto:philip@pbrdev.com">philip@pbrdev.com</a> (pending) QA
Reviewer:
<a href="mailto:yfang@laszlosystems.com">yfang@laszlosystems.com</a>
(pending)<br>
&nbsp;<br>
Details:<br>
&nbsp;&nbsp;&nbsp;&nbsp; LzMessage: fix error in concat observed in
passing, make<br>
&nbsp;&nbsp;&nbsp;&nbsp; appendInternal of another LzMessage concat, not
present the<br>
&nbsp;&nbsp;&nbsp;&nbsp; message<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp; LzMemory: Make some things classes.&nbsp; Stor
leaks as a new class<br>
&nbsp;&nbsp;&nbsp;&nbsp; that has a pretty descriptor and breaks out the
leak information<br>
&nbsp;&nbsp;&nbsp;&nbsp; for easy inspection.&nbsp; Use a stable sort on
leaks, sort the biggest<br>
&nbsp;&nbsp;&nbsp;&nbsp; leak to the front of the Array.&nbsp; Make
whyAlive describe the top<br>
&nbsp;&nbsp;&nbsp;&nbsp; leaks.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp; LzDebug: Use user toString methods, obey unique
flag.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp; LzFormatter: New formatting flag `=` takes the
next argument as<br>
&nbsp;&nbsp;&nbsp;&nbsp; the object to be represented by the format
(overriding the normal<br>
&nbsp;&nbsp;&nbsp;&nbsp; hot-linking that occurs in the debugger so you
can write a custom<br>
&nbsp;&nbsp;&nbsp;&nbsp; representation for an object).<br>
&nbsp;<br>
Tests:<br>
&nbsp;&nbsp;&nbsp;&nbsp; Debug.markObjects()<br>
&nbsp;&nbsp;&nbsp;&nbsp; Debug.findNewObjects()<br>
&nbsp;&nbsp;&nbsp;&nbsp; Debug.whyAlive()<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp; now yields useful information:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp; lzx&gt; Debug.whyAlive()<br>
&nbsp;&nbsp;&nbsp;&nbsp;
global.spriteroot.$m1.debugloader.loadmc1.reqobj: (£52) «Object#100|
{_dbg_check:...»<br>
&nbsp;&nbsp;&nbsp;&nbsp; global.LzFocus.csel.sprite.__LZtextclip.filters:
(£6) «Array(0)#102| []»<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
global.LzModeManager.__LZlastclick.sprite.__LZbuttonRef.but.filters:&nbsp;
<br>
(£6) «Array(0)#104| []»<br>
&nbsp;&nbsp;&nbsp;&nbsp; global.__offscreenkeyclip.filters: (£6)
«Array(0)#106| []»<br>
&nbsp;&nbsp;&nbsp;&nbsp; global.spriteroot.$m0.$m0.$m5.$LzText.filters:
(£6) «Array(0)#108| []»<br>
&nbsp;&nbsp;&nbsp;&nbsp; global.spriteroot.$m0.$m0.$mcB.but.filters: (£6)
«Array(0)#110| []»<br>
&nbsp;&nbsp;&nbsp;&nbsp; global.spriteroot.$m1.$m0.$m0.$mcB.but.filters:
(£6) «Array(0)#112| []»<br>
&nbsp;&nbsp;&nbsp;&nbsp;
global.spriteroot.$m1.$m0.$m1.$m0.$mcB.but.filters: (£6) «Array(0)#114|
[]»<br>
&nbsp;&nbsp;&nbsp;&nbsp;
global.spriteroot.$m1.$m0.$m1.$m1.$mcB.but.filters: (£6) «Array(0)#116|
[]»<br>
&nbsp;&nbsp;&nbsp;&nbsp;
global.spriteroot.$m1.$m0.$m1.$m2.$mcB.but.filters: (£6) «Array(0)#118|
[]»<br>
&nbsp;&nbsp;&nbsp;&nbsp; ...<br>
&nbsp;&nbsp;&nbsp;&nbsp; «__LzLeaks(28)#120| 208 smoots»<br>
&nbsp;&nbsp;&nbsp;&nbsp; lzx&gt;<br>
&nbsp;<br>
Files:<br>
M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
WEB-INF/lps/lfc/debugger/LzMessage.lzs<br>
M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
WEB-INF/lps/lfc/debugger/platform/swf/LzMemory.as<br>
M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
WEB-INF/lps/lfc/debugger/platform/swf/LzDebug.as<br>
M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
WEB-INF/lps/lfc/debugger/platform/dhtml/LzDebug.js<br>
M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
WEB-INF/lps/lfc/compiler/LzFormatter.lzs<br>
&nbsp;<br>
Changeset:
<a href="http://svn.openlaszlo.org/openlaszlo/patches/20071207-ptw-v.tar">
http://svn.openlaszlo.org/openlaszlo/patches/20071207-ptw-v.tar</a>
</blockquote></body>
</html>