debug icon indicating copy to clipboard operation
debug copied to clipboard

`!!!` to fast forward breakpoints like in pry

Open adillari opened this issue 1 year ago • 5 comments

Pry had a feature where you could fast forward all subsequent breaks if you entered !!!. It would essentially automatically continue the subsequent breaks. It would be awesome to to have something like that in debug.

adillari avatar Feb 28 '24 16:02 adillari

does it mean disable all breakpoints?

ko1 avatar Mar 29 '24 08:03 ko1

Since !!! calls Kernel.exit underneath, I think the equivalent here is simply typing exit. Pry has another command called disable_pry, which will exit the current session and disable all the later breakpoints. Looks like this is what the author is looking for?

st0012 avatar Apr 04 '24 15:04 st0012

Pry has another command called disable_pry, which will exit the current session and disable all the later breakpoints. Looks like this is what the author is looking for?

Not OP, but it would be great if debug had something similar to disable-pry. We just switched from using pry to debug in our Rails monolith and that seems to be one of the features that's "missing". I'm planning on implementing a temporary solution in our codebase, but it's not ideal...

Hack
module Kernel
  mattr_accessor :debugger_method, instance_accessor: false

  def disable_debug
    return unless Kernel.respond_to?(:debugger)

    Kernel.debugger_method = method(:debugger)
    Kernel.define_method(:debugger) { nil }

    nil
  end

  def enable_debug
    return unless Kernel.debugger_method

    Kernel.define_method(:debugger, Kernel.debugger_method)
    Kernel.debugger_method = nil

    nil
  end
end

joshuay03 avatar Apr 23 '24 06:04 joshuay03

Having played with debug a bit more, I think I now understand what OP meant.

In pry, !!! would exit, but then on a subsequent request, execution would halt at a breakpoint again. With debug however, once you exit (at least when using it with Rails + puma), you need to restart the server to hit another breakpoint.

If for example you're stuck in a loop, with pry you can use !!!, remove your breakpoint and refresh the page. And if you put a breakpoint back in, and continue making requests, it'll halt as usual. But that's not the case with debug...

joshuay03 avatar Apr 28 '24 09:04 joshuay03

@joshuay03 That's what I mean, yes. It was quite useful in a Rails setting.

adillari avatar Apr 28 '24 18:04 adillari