[Laszlo-dev] For Review: Change 20071207-ptw-v Summary: Bring memory tracing to the modern era

P T Withington ptw at openlaszlo.org
Sat Dec 8 10:59:52 PST 2007


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:ptw at dueling-banjos.local>ptw at dueling-banjos.local 
>>  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:philip at pbrdev.com>philip at pbrdev.com  
>> (pending) QA Reviewer: <mailto:yfang at laszlosystems.com>yfang at laszlosystems.com 
>>  (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




More information about the Laszlo-dev mailing list