Bug #19791 closed
Debugger does not handle delete key correctly
Added by stuartb (Stuart Bury) about 2 years ago.
Updated almost 2 years ago.
ruby -v :
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux-musl]
[ruby-core:114323]
Description
When entering the debugger using binding.debugger
or the rdbg
command, pressing the delete key on the keyboard to delete characters at the REPL merely prints "^[[3~" to the console, and does not actually delete anything. This is very inconvenient. Can this be fixed somehow? I really like the new debugger, but my swearing like a sailor every time I hit "delete" is starting to really annoy my wife...
It is worth noting that if I run the pry
command and then, within pry, call binding.debugger
, the delete key operates correctly.
I believe the issue is related in some way to readline support, or the lack thereof – but my Ruby installation was compiled with readline support. I've tried everything I can think of, and spent some time on Google trying to solve it, but the problem remains. It happens in Alpine 3.18 and also in Debian 12.
Can you tell me what version of debug
and Reline
you are using? Using the latest version of Reline
may solve the problem.
gem list
gives the following output:
*** LOCAL GEMS ***
abbrev (default: 0.1.1)
addressable (2.8.4)
angelo (0.5.1)
base64 (default: 0.1.1)
benchmark (default: 0.2.1)
bigdecimal (default: 3.1.3)
bundler (default: 2.4.17)
byebug (11.1.3)
celluloid (0.18.0)
celluloid-fsm (0.20.5)
celluloid-io (0.17.3)
cgi (default: 0.3.6)
coderay (1.1.3)
csv (default: 3.2.6)
date (default: 3.3.3)
debug (1.8.0)
delegate (default: 0.3.0)
did_you_mean (default: 1.6.3)
digest (default: 3.1.1)
domain_name (0.5.20190701)
drb (default: 2.1.1)
english (default: 0.7.2)
erb (default: 4.0.2)
error_highlight (default: 0.5.1)
etc (default: 1.4.2)
execjs (2.8.1)
fcntl (default: 1.0.2)
ffi (1.15.5)
ffi-compiler (1.0.1)
fiddle (default: 1.1.1)
fileutils (default: 1.7.0)
find (default: 0.1.1)
forwardable (default: 1.3.3)
getoptlong (default: 0.2.0)
haml (6.1.1)
hashie (5.0.0)
http (5.1.1)
http-cookie (1.0.5)
http-form_data (2.3.0)
http_parser.rb (0.8.0)
io-console (default: 0.6.0)
io-nonblock (default: 0.2.0)
io-wait (default: 0.3.0)
ipaddr (default: 1.2.5)
irb (default: 1.6.2)
json (default: 2.6.3)
livescript (2.4.0)
livescript-source (1.5.0)
llhttp-ffi (0.4.0)
logger (default: 1.5.3)
method_source (1.0.0)
mime-types (3.4.1)
mime-types-data (3.2023.0218.1)
msgpack (1.7.2)
mustermann (3.0.0, 0.4.0)
mutex_m (default: 0.1.2)
net-ftp (0.2.0)
net-http (default: 0.3.2)
net-ping (2.0.8)
net-protocol (default: 0.2.1)
net-ssh (7.1.0)
nio4r (2.5.9)
nkf (default: 0.1.2)
nokogiri (1.15.3 x86_64-linux)
observer (default: 0.1.1)
open-uri (default: 0.3.0)
open3 (default: 0.1.2)
openssl (default: 3.1.0)
optparse (default: 0.3.1)
ostruct (default: 0.5.5)
pathname (default: 0.2.1)
pp (default: 0.4.0)
prettyprint (default: 0.1.1)
pry (0.14.2)
pry-byebug (3.10.1)
pry-nav (1.0.0)
pstore (default: 0.1.2)
psych (default: 5.0.1)
public_suffix (5.0.3)
racc (default: 1.6.2)
rake (13.0.6)
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
rdoc (default: 6.5.0)
readline (default: 0.0.3)
readline-ext (default: 0.1.5)
reel (0.6.1)
reline (default: 0.3.2)
resolv (default: 0.2.2)
resolv-replace (default: 0.1.1)
rinda (default: 0.1.1)
ruby-terminfo-r3 (0.1.1)
ruby2_keywords (default: 0.0.5)
rubygems-update (3.4.17)
rubyzip (2.3.2)
safe_yaml (1.0.5)
sass (3.7.4)
sass-listen (4.0.0)
securerandom (default: 0.2.2)
sequel (5.70.0)
set (default: 1.0.3)
shellwords (default: 0.1.0)
singleton (default: 0.1.1)
sqlite3 (1.6.3 x86_64-linux)
stringio (default: 3.0.4)
strscan (default: 3.0.5)
syntax_suggest (default: 1.0.2)
syslog (default: 0.1.1)
tempfile (default: 0.1.3)
temple (0.10.2)
thor (1.2.2)
tilt (2.2.0)
time (default: 0.2.2)
timeout (default: 0.3.1)
timers (4.3.5)
tmpdir (default: 0.1.3)
tool (0.2.3)
tsort (default: 0.1.1)
un (default: 0.2.1)
unf (0.1.4)
unf_ext (0.0.8.2)
uri (default: 0.12.1)
weakref (default: 0.1.2)
websocket-driver (0.7.5)
websocket-extensions (0.1.5)
yaml (default: 0.2.1)
zlib (default: 3.0.0)
I just did gem install reline
and upgraded it to 0.3.7, but the problem persists.
After upgrading reline
, I uninstalled and reinstalled the debug
gem. That seems to have solved the problem.
What can be done to avoid this problem happening again in the future? Perhaps change the debug
gem dependencies to require the newer version of reline
?
Status changed from Open to Closed
Also available in: Atom
PDF
Like 0
Like 0 Like 0 Like 0 Like 0 Like 0