Bug #19791
closedDebugger does not handle delete key correctly
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.
Updated by ima1zumi (Mari Imaizumi) almost 2 years ago
Can you tell me what version of debug
and Reline
you are using? Using the latest version of Reline
may solve the problem.
Updated by stuartb (Stuart Bury) almost 2 years ago
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)
Updated by stuartb (Stuart Bury) almost 2 years ago
I just did gem install reline
and upgraded it to 0.3.7, but the problem persists.
Updated by stuartb (Stuart Bury) almost 2 years ago
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
?
Updated by jeremyevans0 (Jeremy Evans) almost 2 years ago
- Status changed from Open to Closed