<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: <LzDelegate#13| LzSprite
...>) 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>
in /Users/ptw/OpenLaszlo/ringding-2<br>
for
<a href="http://svn.openlaszlo.org/openlaszlo/trunk">
http://svn.openlaszlo.org/openlaszlo/trunk</a><br>
<br>
Summary: Bring memory tracing to the modern era<br>
<br>
Bugs Fixed:<br>
LPP-5205: 'Debug.whyAlive no longer shows reference keeping object
alive'<br>
<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>
<br>
Details:<br>
LzMessage: fix error in concat observed in
passing, make<br>
appendInternal of another LzMessage concat, not
present the<br>
message<br>
<br>
LzMemory: Make some things classes. Stor
leaks as a new class<br>
that has a pretty descriptor and breaks out the
leak information<br>
for easy inspection. Use a stable sort on
leaks, sort the biggest<br>
leak to the front of the Array. Make
whyAlive describe the top<br>
leaks.<br>
<br>
LzDebug: Use user toString methods, obey unique
flag.<br>
<br>
LzFormatter: New formatting flag `=` takes the
next argument as<br>
the object to be represented by the format
(overriding the normal<br>
hot-linking that occurs in the debugger so you
can write a custom<br>
representation for an object).<br>
<br>
Tests:<br>
Debug.markObjects()<br>
Debug.findNewObjects()<br>
Debug.whyAlive()<br>
<br>
now yields useful information:<br>
<br>
lzx> Debug.whyAlive()<br>
global.spriteroot.$m1.debugloader.loadmc1.reqobj: (£52) «Object#100|
{_dbg_check:...»<br>
global.LzFocus.csel.sprite.__LZtextclip.filters:
(£6) «Array(0)#102| []»<br>
<br>
global.LzModeManager.__LZlastclick.sprite.__LZbuttonRef.but.filters:
<br>
(£6) «Array(0)#104| []»<br>
global.__offscreenkeyclip.filters: (£6)
«Array(0)#106| []»<br>
global.spriteroot.$m0.$m0.$m5.$LzText.filters:
(£6) «Array(0)#108| []»<br>
global.spriteroot.$m0.$m0.$mcB.but.filters: (£6)
«Array(0)#110| []»<br>
global.spriteroot.$m1.$m0.$m0.$mcB.but.filters:
(£6) «Array(0)#112| []»<br>
global.spriteroot.$m1.$m0.$m1.$m0.$mcB.but.filters: (£6) «Array(0)#114|
[]»<br>
global.spriteroot.$m1.$m0.$m1.$m1.$mcB.but.filters: (£6) «Array(0)#116|
[]»<br>
global.spriteroot.$m1.$m0.$m1.$m2.$mcB.but.filters: (£6) «Array(0)#118|
[]»<br>
...<br>
«__LzLeaks(28)#120| 208 smoots»<br>
lzx><br>
<br>
Files:<br>
M
WEB-INF/lps/lfc/debugger/LzMessage.lzs<br>
M
WEB-INF/lps/lfc/debugger/platform/swf/LzMemory.as<br>
M
WEB-INF/lps/lfc/debugger/platform/swf/LzDebug.as<br>
M
WEB-INF/lps/lfc/debugger/platform/dhtml/LzDebug.js<br>
M
WEB-INF/lps/lfc/compiler/LzFormatter.lzs<br>
<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>