logo       
Google Custom Search
    AddThis Social Bookmark Button

[jruby-dev] Success! (was Re: [jruby-dev] Trying to get started with jruby-: msg#00133

Subject: [jruby-dev] Success! (was Re: [jruby-dev] Trying to get started with jruby-debug)
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 <me-Nf+wZpSdgwd0fpqIUS7I4KWGvPbmSUPR8L0dJb2I3F8@xxxxxxxxxxxxxxxx> 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 < Martin.Krauskopf-xsfywfwIY+M@xxxxxxxxxxxxxxxx> 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




Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>