On 2007-12-08, at 10:28 EST, Philip Romanik wrote:

Approved, but a couple of changes are needed:

- whyAlive(1000) will display 1000 lines, even if there aren't 1000 lines to display.

Good catch.

- 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.

Same here. Not sure what is going on there, since it is just inspecting the __LZleak object, which it already printed. May take some time to figure that out.

- 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.

Indeed. Perhaps our most excellent documentation staff could take a look.

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


Reply via email to