[Laszlo-user] [Internal-Dev] File/line information available in backtraces now

Elliot Winard enw at laszlosystems.com
Wed Sep 5 08:42:22 PDT 2007


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


More information about the Laszlo-user mailing list