Open joe-sharp opened 9 months ago
Underscore stops working correctly after entering debug mode. Issue is present on Ruby 2.7.8-3.3.0. Cross filed from https://github.com/ruby/debug/issues/1069
Additional context
```rb irb(# 3+3 => 6 irb(# _ => 6 irb(# debug irb:rdbg(# 3+3 6 irb:rdbg(# _ nil ```
This older more detailed shell session shows that the most recent irb error seems to be returned if it were the last command.
```rb irb(#):001> 3+3 => 6 irb(#):002> puts _ 6 => nil irb(#):003> 4+4 => 8 irb(#):004> info (rdbg:irb) info %self = # @foo = "bar" irb:rdbg(#):002> puts _ nil irb:rdbg(#):003> 4+4 8 irb:rdbg(#):004> puts _ nil irb:rdbg(#):005> 4+4 8 irb:rdbg(#):006> info %self = # _ = nil @foo = "bar" irb:rdbg(#):007> ls Bar Traceback (most recent call last): 24: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:212:in `block in activate' 23: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:254:in `session_server_main' 22: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:365:in `process_event' 21: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `wait_command_loop' 20: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `loop' 19: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:404:in `block in wait_command_loop' 18: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:444:in `wait_command' 15: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:1981:in `intercept_trap_sigint' 4: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/irb_integration.rb:9:in `evaluate' (irb):7:in `set_foo': uninitialized constant Foobar::Bar (NameError)` irb:rdbg(#):008> puts _ uninitialized constant Foobar::Bar nil irb:rdbg(#):009> ls Bar Traceback (most recent call last): 24: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:212:in `block in activate' 23: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:254:in `session_server_main' 22: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:365:in `process_event' 21: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `wait_command_loop' 20: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `loop' 19: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:404:in `block in wait_command_loop' 18: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:444:in `wait_command' 15: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:1981:in `intercept_trap_sigint' 4: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/irb_integration.rb:9:in `evaluate' (irb):9:in `set_foo': uninitialized constant Foobar::Bar (NameError)` irb:rdbg(#):010> info %self = # _ = # @foo = "bar" irb:rdbg(#):011> Bar.methods eval error: uninitialized constant Foobar::Bar (rdbg)/scratch.rb:1:in `set_foo'` nil irb:rdbg(#):012> info %self = # _ = nil @foo = "bar" irb:rdbg(#):013> Bar.methods eval error: uninitialized constant Foobar::Bar (rdbg)/scratch.rb:1:in `set_foo'` nil irb:rdbg(#):014> puts _ nil ```
Please paste the result of irb_info command in IRB.
irb_info
ex.)
irb:rdbg(#<RuboCop::Formatter::Markdow...):004> irb_info Ruby version: 3.2.3 IRB version: irb 1.11.2 (2024-02-07) InputMethod: RelineInputMethod with Reline 0.4.3 Completion: Autocomplete, RegexpCompletor .irbrc path: /Users/joesharp/.config/irb/irbrc RUBY_PLATFORM: arm64-darwin22 LANG env: en_US.UTF-8 East Asian Ambiguous Width: 1
What's your terminal emulator? iTerm2
Are you using ~/.irbrc and ~/.inputrc? Only an irbrc
~/.irbrc
~/.inputrc
Description
Underscore stops working correctly after entering debug mode. Issue is present on Ruby 2.7.8-3.3.0. Cross filed from https://github.com/ruby/debug/issues/1069
Additional context
Shell session:
```rb irb(# 3+3
=> 6
irb(# _
=> 6
irb(# debug
irb:rdbg(# 3+3
6
irb:rdbg(# _
nil
```
This older more detailed shell session shows that the most recent irb error seems to be returned if it were the last command.
Older Shell session:
```rb irb(#):001> 3+3
=> 6
irb(#):002> puts _
6
=> nil
irb(#):003> 4+4
=> 8
irb(#):004> info
(rdbg:irb) info
%self = #
@foo = "bar"
irb:rdbg(#):002> puts _
nil
irb:rdbg(#):003> 4+4
8
irb:rdbg(#):004> puts _
nil
irb:rdbg(#):005> 4+4
8
irb:rdbg(#):006> info
%self = #
_ = nil
@foo = "bar"
irb:rdbg(#):007> ls Bar
Traceback (most recent call last):
24: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:212:in `block in activate'
23: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:254:in `session_server_main'
22: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:365:in `process_event'
21: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `wait_command_loop'
20: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `loop'
19: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:404:in `block in wait_command_loop'
18: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:444:in `wait_command'
15: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:1981:in `intercept_trap_sigint'
4: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/irb_integration.rb:9:in `evaluate'
(irb):7:in `set_foo': uninitialized constant Foobar::Bar (NameError)`
irb:rdbg(#):008> puts _
uninitialized constant Foobar::Bar
nil
irb:rdbg(#):009> ls Bar
Traceback (most recent call last):
24: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:212:in `block in activate'
23: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:254:in `session_server_main'
22: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:365:in `process_event'
21: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `wait_command_loop'
20: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:403:in `loop'
19: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:404:in `block in wait_command_loop'
18: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:444:in `wait_command'
15: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/session.rb:1981:in `intercept_trap_sigint'
4: from /Users/joesharp/.asdf/installs/ruby/2.7.8/lib/ruby/gems/2.7.0/gems/debug-1.9.1/lib/debug/irb_integration.rb:9:in `evaluate'
(irb):9:in `set_foo': uninitialized constant Foobar::Bar (NameError)`
irb:rdbg(#):010> info
%self = #
_ = #
@foo = "bar"
irb:rdbg(#):011> Bar.methods
eval error: uninitialized constant Foobar::Bar
(rdbg)/scratch.rb:1:in `set_foo'`
nil
irb:rdbg(#):012> info
%self = #
_ = nil
@foo = "bar"
irb:rdbg(#):013> Bar.methods
eval error: uninitialized constant Foobar::Bar
(rdbg)/scratch.rb:1:in `set_foo'`
nil
irb:rdbg(#):014> puts _
nil
```
Result of irb_info
Please paste the result of
irb_info
command in IRB.ex.)
Terminal Emulator
What's your terminal emulator? iTerm2
Setting Files
Are you using
~/.irbrc
and~/.inputrc
? Only an irbrc