Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API for stopping the debugger #1122

Open
sharkovadarya opened this issue Nov 28, 2024 · 2 comments
Open

API for stopping the debugger #1122

sharkovadarya opened this issue Nov 28, 2024 · 2 comments

Comments

@sharkovadarya
Copy link

Apologies if such a feature is already present, I couldn't find it in the project.

Could I request an API method to stop the debugger once it's been loaded? I'm from the RubyMine team, and our use case for this is the following: the users would like to be able to launch their program and then later attach our debugger to it. Our debugger conflicts with the debug gem, however, so if the user project contains this gem (and Rails apps include it by default), then the attaching our debugger will lead to problems (mostly hanging, I think). The debug gem is loaded at the program start, so if we try to attach our debugger later, we cannot disable the debugger from debug, and so our debugger won't work; the only way to disable it is by setting the environment variable RUBY_DEBUG_ENABLE before launching the program, but that is up to the user only, not to RubyMine (if they launch their app in the terminal, not via an RM run configuration). So, is it or would it be possible to shut the debugger down completely during execution? Then we could call such a hypothetical stop method upon starting our debugger, and everything would work.

To be more precise, one of the incompatibilities is that our debugger hangs at the DEBUGGER__::SESSION@server thread, though there may be other issues as well.

@st0012
Copy link
Member

st0012 commented Nov 28, 2024

If the problem is activation by require, #797 should help once it's implemented.
Before that, I think asking users to add require: "debug/prelude" or require: false to gem "debug" can also work. Both of them will not activate the debugger and the former can still provide breakpoint methods and only load the debugger when they're hit.

@sharkovadarya
Copy link
Author

@st0012 Thank you for your reply! Adding require: "debug/prelude" seems to help, and it's especially convenient that it's currently the default in Rails. I'll keep an eye out for #797, though I'm not sure what its current status is based on the comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants