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

When debug is invoked from a rails console (via irb), when typing a ) character, the debugger and console crashes #524

Closed
nickcluc opened this issue Feb 9, 2022 · 4 comments

Comments

@nickcluc
Copy link

nickcluc commented Feb 9, 2022

Your environment

  • ruby -v: ruby 3.1.0p0 (2021-12-25 revision fb4df44d16)
  • rdbg -v: 1.4.0
  • rails -v: 6.1.4.4

Describe the bug
When in a rails console, if you then enter into a debug session (debugger in the console, or anywhere in code that is executed in console) and type the character ), the debugger crashes along with the rails console.

Stack Trace below:

To Reproduce

  • Enter into a rails console (rails console)
  • Invoke a debug session: (debugger)
  • Type right parenthesis character: )

Expected behavior
Expect the character to show up and the console to not force close out

Stack Trace

irb(main):001:0> debugger
[1, 1] in (irb)
=>   1| debugger
=>#0	<main> at (irb):1
  #1	[C] Kernel#eval at ~/.rbenv/versions/3.1.0/lib/ruby/3.1.0/irb/workspace.rb:119
  # and 27 frames (use `bt' command for all frames)
(rdbg) )=> mainuby **THIS IS THE LINE WHICH BREAKS**

irb(main):002:0> #<Thread:0x000000010aa64950@DEBUGGER__::SESSION@server .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:148 run> terminated with exception (report_on_exception is true):
.../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/console.rb:55:in `block in readline_setup': unmatched close parenthesis: /\\A)/ (RegexpError)
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:1677:in `call_completion_proc_with_checking_args'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:543:in `call_completion_proc_with_checking_args'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:226:in `block in <class:Core>'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:588:in `instance_exec'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:588:in `call'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:623:in `call'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:667:in `render_each_dialog'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:651:in `block in render_dialog'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:650:in `each'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:650:in `render_dialog'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:510:in `rerender'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:330:in `block (3 levels) in inner_readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:328:in `each'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:328:in `block (2 levels) in inner_readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:403:in `block in read_io'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:373:in `loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:373:in `read_io'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:326:in `block in inner_readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:324:in `loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:324:in `inner_readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:254:in `readmultiline'
	from .../.rbenv/versions/3.1.0/lib/ruby/3.1.0/forwardable.rb:238:in `readmultiline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/console.rb:101:in `block in readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/console.rb:82:in `readline_setup'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/console.rb:100:in `readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/local.rb:72:in `block in readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/local.rb:84:in `block in setup_interrupt'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:1689:in `intercept_trap_sigint'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/local.rb:77:in `setup_interrupt'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/local.rb:71:in `readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:373:in `wait_command'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:333:in `block in wait_command_loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:332:in `loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:332:in `wait_command_loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:254:in `process_event'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:198:in `session_server_main'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:168:in `block in activate'
.../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/console.rb:55:in `block in readline_setup': unmatched close parenthesis: /\\A)/ (RegexpError)
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:1677:in `call_completion_proc_with_checking_args'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:543:in `call_completion_proc_with_checking_args'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:226:in `block in <class:Core>'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:588:in `instance_exec'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:588:in `call'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:623:in `call'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:667:in `render_each_dialog'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:651:in `block in render_dialog'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:650:in `each'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:650:in `render_dialog'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline/line_editor.rb:510:in `rerender'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:330:in `block (3 levels) in inner_readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:328:in `each'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:328:in `block (2 levels) in inner_readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:403:in `block in read_io'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:373:in `loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:373:in `read_io'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:326:in `block in inner_readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:324:in `loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:324:in `inner_readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/reline-0.3.1/lib/reline.rb:254:in `readmultiline'
	from .../.rbenv/versions/3.1.0/lib/ruby/3.1.0/forwardable.rb:238:in `readmultiline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/console.rb:101:in `block in readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/console.rb:82:in `readline_setup'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/console.rb:100:in `readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/local.rb:72:in `block in readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/local.rb:84:in `block in setup_interrupt'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:1689:in `intercept_trap_sigint'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/local.rb:77:in `setup_interrupt'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/local.rb:71:in `readline'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:373:in `wait_command'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:333:in `block in wait_command_loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:332:in `loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:332:in `wait_command_loop'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:254:in `process_event'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:198:in `session_server_main'
	from .../.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/debug-1.4.0/lib/debug/session.rb:168:in `block in activate'
@st0012
Copy link
Member

st0012 commented Feb 10, 2022

This should be the same as #497, which has been addressed in #498

Can you give the current master a try? Thx

@nickcluc
Copy link
Author

Thank you!

@pbstriker38
Copy link

@st0012 There seems to be quite a few fixes on master. When can we expect a new release?

@ko1
Copy link
Collaborator

ko1 commented Mar 20, 2022

In March this year. Sorry for absent.

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

4 participants