Great! That's fantastic! Would you like to blog that, Tucker?

Cheers,
- Raju

> Von: Elliot Winard <[EMAIL PROTECTED]>
> Datum: Wed, 05 Sep 2007 11:42:22 -0400
> An: P T Withington <[EMAIL PROTECTED]>
> Cc: "[email protected] list" <[email protected]>
> Betreff: Re: [Laszlo-user] [Internal-Dev] File/line information available in
> backtraces now
> 
> This is awesome!
> Even before the file/line info was in the backtraces, they helped me
> track down issue in 3.4->wafflecone porting.
> 
> Thanks!
> -e
> 
> P T Withington wrote:
>> As of r6361 of Wafflecone, backtraces now include file and line
>> information.  This should make it much easier to track down the source
>> of your errors and warnings.  You must turn on backtraces in the
>> developer console to get this feature.
>> 
>> When backtraces are on, all debugger messages will have a backtrace
>> associated with them and the debugger message will automatically
>> display the file and line information from the top 'user' (non-LFC)
>> frame in the backtrace.  This information will _usually_ be useful,
>> but you may still need to inspect the message and expand the backtrace
>> in the message to find your problem.
>> 
>> For example, running smokecheck, you will see:
>> 
>>   ERROR @lzunit/lzunit.lzx#382: Expected: expected 'undefined value'
>> got {}
>> 
>> Which reports a line in the lzunit component.  This is where lzunit
>> reports the error, but not the actual source of the error; it is the
>> first non-LFC frame.  To find the actual source of the error, click on
>> the error message to inspect it:
>> 
>>   lzx> Debug.inspect(«#LzError#1| ERROR @lzunit/lzunit.lzx#382...»)
>>   «#LzError#1#101| ERROR @lzunit/lzunit.lzx#382: Expected: expected
>> 'undefined value' got {}» {
>>   backtrace: #LzError <- format <- assertUndefined <- testFailures <-
>> runTest <- run
>>   file: 'lzunit/lzunit.lzx'
>>   line: 382
>>   message: "Expected: expected 'undefined value' got {}"
>>   }
>>   ERROR @lzunit/lzunit.lzx#382: Expected: expected 'undefined value'
>> got {}
>> 
>> And then click on the backtrace to inspect it:
>> 
>>   lzx> Debug.inspect(«Backtrace(19)| #LzError <- format <- ass...»)
>>   «Backtrace(19)#143| #LzError <- format <- assertUndefined <-
>> testFailures <- runTest <- run» {
>>   length: 19
>>   0: kernel/LzIdleKernel.lzs#29/16 @lfc/kernel/LzIdleKernel.lzs#32
>>   1: #__idleupdate @lfc/services/LzIdle.lzs#103
>>   2: sendEvent @lfc/events/LaszloEvents.lzs#452
>>   3: checkQ @lfc/services/LzInstantiator.lzs#155
>>   4: makeSomeViews @lfc/services/LzInstantiator.lzs#166
>>   5: makeChild @lfc/core/LzNode.lzs#1022
>>   6: makeChild @lfc/core/LzNode.lzs#1022
>>   7: kernel/LzIdleKernel.lzs#29/16 @lfc/kernel/LzIdleKernel.lzs#32
>>   8: #__idleupdate @lfc/services/LzIdle.lzs#103
>>   9: sendEvent @lfc/events/LaszloEvents.lzs#446
>>   10: removeCallIdleDelegates @lfc/services/LzIdle.lzs#67
>>   11: execute @lfc/events/LaszloEvents.lzs#95
>>   12: runNextTest @lzunit/lzunit.lzx#1148
>>   13: run @lzunit/lzunit.lzx#632
>>   14: runTest @lzunit/lzunit.lzx#668
>>   15: testFailures @lzunit-test.lzl#494
>>   16: assertUndefined @lzunit/lzunit.lzx#499
>>   17: format @lzunit/lzunit.lzx#382
>>   18: #LzError @lfc/debugger/LzMessage.lzs#439
>>   }
>>   #LzError <- format <- assertUndefined <- testFailures <- runTest <- run
>> 
>> Where you can see that the actual source of the error is in frame 15.
>> 
>> 
>> 



Reply via email to