Well, after all that whining it appears to be not so dire. I simply
commented out the call to getFrameArgs() and that got me all the way to
setting up a simple bug session! I'm stepping thru code and printing
variables in rdebug. Woot!!
Martin, can you give me some insight on what getArgc in DebugFrame is used
for? I couldn't find any references to it. This is the only thing that was
using getFrameArgs()
--Chris
On 9/24/07, Chris Nelson <[EMAIL PROTECTED]> wrote:
>
> Ok, I did the same and got a little farther. I've patched JRuby as you
> suggested and built a jruby-debug.jar and put in JRUBY_HOME/lib. Then I
> tried running jruby rdebug (I copied this from ruby-debug gem).
> Unfortunately it appears jruby trunk is a bit unstable right now and your
> code has been broken by changes to it :(
>
> Here's what I've found thus far:
>
> JRuby compiler appears to be broken right now for executing code which
> sets a module constant. Running the following with jit enabled will throw a
> NoMethodError: "Foo:BAR = 1".
>
> I disabled JIT and that got me a littler farther, but I soon hit another
> NoMethodError in the debug code, it appears that
> ThreadContext.getFrameArgs has been removed. Not sure what we should use
> as a replacement.
>
> I can file a JIRA issue for the first one. I know there is some pretty
> major refactoring going on in trunk, so should we wait a bit before trying
> to get fast debug working? I don't mind addressing things one at a time as
> time permits, but if it's pretty likely the code would need to change again
> real soon I'd rather wait.
>
> --Chris
>
> On 9/24/07, Martin Krauskopf <[EMAIL PROTECTED]> wrote:
> >
> > Chris Nelson wrote:
> > > Been attempting to try out Martin's jruby-debug code from
> > debug-commons
> > > and haven't been able to get much of anywhere. I assume I'm missing
> > > something rather obvious, but I have not been able to get it to
> > load. I
> > > had to make a small change to jruby trunk for Martin's code to compile
> > > (making RubyThread constructor protected instead of private) and then
> > I
> > > was able to compile and build a jruby-debug.jar file. However, how is
> >
> > > this library designed to be loaded? I tried the obvious, doing
> > require
> > > 'jruby-debug.jar' in a ruby script. This didn't work, as the code
> > that
> > > tries to find a java extension library expects to find a class that
> > > implements BasicLibraryService, whereas the jruby-debug code has
> > > RubyDebugBaseLibrary which implements Library (not
> > > BasicLibraryService). It appears the right way to use this code would
> > > be to have it added using registerBuiltIn in Ruby.initLibraries so it
> > > will be used when any code does require 'ruby_debug.so'. Is there a
> > > different way to do this other than adding a line to Ruby.java?
> >
> > Hi Chris,
> >
> > this is exactly what I did. I have patched JRuby's trunk on my disk in
> > a way you described[1].
> > To be honest I did not care too much about the best integration with
> > JRuby since it does not prevent me from working on jruby-debug at all. I
> > would start to solving this after there is something usable for JRuby
> > users which is far from true in the meantime.
> > Looking forward to your patches, contributions! ;)
> >
> > Regards,
> > m.
> >
> > PS: I'll add note about this to the jruby-debug's README.
> >
> > [1]
> > svn di src/org/jruby/RubyThread.java src/org/jruby/Ruby.java
> > Index: src/org/jruby/RubyThread.java
> > ===================================================================
> > --- src/org/jruby/RubyThread.java (revision 4363)
> > +++ src/org/jruby/RubyThread.java (working copy)
> > @@ -266,7 +266,7 @@
> > }
> > }
> >
> > - private RubyThread(Ruby runtime, RubyClass type) {
> > + public RubyThread(Ruby runtime, RubyClass type) {
> > super(runtime, type);
> > this.threadService = runtime.getThreadService();
> > // set to default thread group
> > Index: src/org/jruby/Ruby.java
> > ===================================================================
> > --- src/org/jruby/Ruby.java (revision 4363)
> > +++ src/org/jruby/Ruby.java (working copy)
> > @@ -67,6 +67,7 @@
> > import org.jruby.compiler.NotCompilableException;
> > import org.jruby.compiler.impl.StandardASMCompiler ;
> > import org.jruby.compiler.yarv.StandardYARVCompiler;
> > +import org.jruby.debug.RubyDebugBaseLibrary;
> > import org.jruby.evaluator.EvaluationState;
> > import org.jruby.exceptions.JumpException;
> > import org.jruby.exceptions.RaiseException ;
> > @@ -739,6 +740,7 @@
> >
> > registerBuiltin("socket.rb", new RubySocket.Service());
> > registerBuiltin("rbconfig.rb", new RbConfigLibrary());
> > + registerBuiltin("ruby_debug.so", new RubyDebugBaseLibrary());
> >
> > for (int i=0; i<BUILTIN_LIBRARIES.length; i++) {
> > if(profile.allowBuiltin(BUILTIN_LIBRARIES[i])) {
> >
> > ---------------------------------------------------------------------
> > To unsubscribe from this list please visit:
> >
> > http://xircles.codehaus.org/manage_email
> >
> >
>