Re: [Objectscript-users] command line debugger
Brought to you by:
rob_d_clark
From: Rob C. <ro...@ti...> - 2005-10-18 06:22:34
|
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 |