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