Re: [Objectscript-users] command line debugger
Brought to you by:
rob_d_clark
From: Lysander D. <sa...@sb...> - 2005-10-18 16:37:19
|
Unfortunately, even after stepping ( 's' ) for one line nothing is written to stdout. Additionally, attempting to write a simple string to stdout like this: writeln ( "a nice string" ); doesn't result in any output. Additionally, after modifying oscript.OscriptInterpreter.__eval(String str, Scope scope) to print the string to be evaluated with this System.out.println ( "eval: \"" + str + "\""); nothing is printed out. It almost appears that __eval is not being called. How would it be possible to ensure that __eval is getting called ? Thanks, Lysander --- Rob Clark <ro...@ti...> wrote: > you need to "s" (step) for at least one line, > because on the line it > halts on, "a" has not been declared yet. It should > probably result > in a NoSuchMemberException which isn't getting > printed out for some > reason > > > On Oct 17, 2005, at 10:56 PM, Lysander David wrote: > > > That appears to work. However after hitting the > > breakpoint entering this: > > > > writeln ( "a" ) > > > > results in nothing being written to standard out. > > > > Does that successfully write anything to standarad > out > > for you ? > > > > If not, do you know what needs to be changed in > > order to allow that command to successfully output > > text ? > > > > Thanks, > > Lysander > > > > > > --- Rob Clark <ro...@ti...> wrote: > > > > > >> 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 > >>> > >> > >> > >> > > > > > > > ____________________ > CONTACT INFORMATION: > email: ro...@ti... > IM: rob@sandjabber > desk: 1 858 552 2946 > cell: 1 619 300 9661 > > > > |