Re: [Objectscript-users] command line debugger
Brought to you by:
rob_d_clark
From: Rob C. <ro...@ti...> - 2005-10-17 23:10:40
|
not really... you might be able to use the debugger API to setup a read-eval-print shell to run at certain file and line numbers... for example: // dbg.os: function setBreakpoint( filename, line ) { var file = pkg.fs.resolve(filename); Debugger.setBreakpoint( file, line, new function() extends Debugger.Breakpoint() { public function handle( scope, file, line ) { var status = null; mixin java.io; writeln("hit breakpoint at " + file + ":" + line); var shell = new function() extends oscript.Shell( new BufferedReader( new InputStreamReader(System.in) ), new PrintWriter(System.out), new PrintWriter(System.err) ) { // overload to evaluate in the scope of the breakpoint public function evalStr(str) { // note: default implementation of read() automagically appends ";" if( (str == "exit;") || (str == "c;") ) status = "exit"; else if( str == "step;" || (str == "s;") ) status = "step"; if( status != null ) return status; return oscript.OscriptInterpreter.__eval( str, scope ); } private var _super_read = read; public function read() { if( status != null ) return "exit"; return _super_read(); } }(); shell.run(); if( status == "step" ) return this; // keep stepping return null; // stop stepping } }() ); } --------------------------- // test.os import "dbg.os"; var globalvar = 2; function test() { var a = 1; // <--- line 8 var b = 2; writeln("a=" + a + ", b=" + b + ", globalvar=" + globalvar); } setBreakpoint("test.os",8); test(); --------------------------- this is not very clean, but just meant to be an example.. maybe someday someone will have some time to package this up into a nice command-line debugger program. On Oct 17, 2005, at 3:08 PM, Lysander David wrote: > Hi, > > Is there a commandline debugger for objectscript ? > > Thanks, > Lysander |