ruby-debug / ruby-debug-ide

An interface which glues ruby-debug to IDEs like Eclipse (RDT), NetBeans and RubyMine.
https://www.jetbrains.com/ruby/features/ruby_debugger.html
Other
370 stars 83 forks source link

Can't run in attach mode #169

Closed markalexandercastillo closed 5 years ago

markalexandercastillo commented 5 years ago

I'm trying to run ruby-debug-ide to debug a Rails server like so:

rdebug-ide --host 0.0.0.0 --port 1234 -d -x --attach-mode -- ./bin/rails s -b 0.0.0.0 -p 3000 -e development

but it ends up exiting with the following:

/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.6.1/bin/rdebug-ide:175:in `<top (required)>': uninitialized constant Debase::MultiProcess (NameError)
Did you mean?  Process
    from /home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide:22:in `load'
    from /home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide:22:in `<main>'

It otherwise seems to run without the --attach-mode flag set.

Please let me know if there's anything else you need from me.

ViugiNick commented 5 years ago

@markalexandercastillo try upgrading to the latest versions of debase and ruby-debug-ide gems. (Looks like you are using pretty old ruby-debug-ide-0.6.1)

markalexandercastillo commented 5 years ago

@ViugiNick It still looks like I'm running into the same issue after updating rdebug-ide to 0.7.0.beta7 and updating debase to 0.2.3.beta5:

/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide:180:in `<top (required)>': uninitialized constant Debase::MultiProcess (NameError)
Did you mean?  Process
    from /home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide:22:in `load'
    from /home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide:22:in `<main>'

I can see the following when just executing rdebug-ide -v:

⇒  rdebug-ide -v
Using ruby-debug-base 0.2.3.beta5
ViugiNick commented 5 years ago

@markalexandercastillo In this case, let's try to add the following line puts caller to the first line of this file: $DEBASE_ROOT$/lib/debase.rb. And after running attach command line again, please attach the output here.

markalexandercastillo commented 5 years ago

@ViugiNick OK, I added it (/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/debase-0.2.3.beta5/lib/debase.rb) and re-ran the command and got this in the output:

/home/mark/.rbenv/versions/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:39:in `require'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/lib/ruby-debug-ide.rb:9:in `<top (required)>'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide:8:in `require_relative'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide:8:in `<top (required)>'
/home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide:22:in `load'
/home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide:22:in `<main>'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide:180:in `<top (required)>': uninitialized constant Debase::MultiProcess (NameError)
Did you mean?  Process
    from /home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide:22:in `load'
    from /home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide:22:in `<main>'
ViugiNick commented 5 years ago

@markalexandercastillo Thats really strange, that you have the same executable in two different dirs, namely: /home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide and /home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide.

Maybe removing of the second one will help

markalexandercastillo commented 5 years ago

@ViugiNick, the one at /home/mark/.rbenv/versions/2.3.7/bin/rdebug-ide says the following on the top of the file:

#!/home/mark/.rbenv/versions/2.3.7/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'ruby-debug-ide' is installed as part of a gem, and
# this file is here to facilitate running it.
#

It looks like it just ends up loading the one at /home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide

Removing it and directly running the other one still yields the same error though:

⇒  /home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide --host 0.0.0.0 --port 1234 -d -x --attach-mode -- ./bin/rails s -b 0.0.0.0 -p 3000 -e development

/home/mark/.rbenv/versions/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:39:in `require'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/lib/ruby-debug-ide.rb:9:in `<top (required)>'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide:8:in `require_relative'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide:8:in `<main>'
/home/mark/.rbenv/versions/2.3.7/lib/ruby/gems/2.3.0/gems/ruby-debug-ide-0.7.0.beta7/bin/rdebug-ide:180:in `<main>': uninitialized constant Debase::MultiProcess (NameError)
Did you mean?  Process

Something else that's strange is that I'm experiencing this same issue on another machine (MacOS instead of Linux and using rvm instead of rbenv). Not sure if that's helpful.

ViugiNick commented 5 years ago

@markalexandercastillo This flag is used when gdb_wrapper already stopped the needed process. Perhaps you should better run the gdb_wrapper executable, but I'm not sure that it will work. I don't remember anyone attaching to the process from the console. Actually we was designing this feature for attaching to process from RubyMine. But if you have a desire to support attaching to process from console, then I can take a look a your PR.

markalexandercastillo commented 5 years ago

apologies for the lack of response. I was trying to recreate the command vscode is using to integrate with ruby-debug-ide. I started to experience a different issue however once I removed the flag. I'll open a separate issue, when I get a chance to document it. thank you for your attention though.