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