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