Project

General

Profile

Actions

Bug #19791

closed

Debugger does not handle delete key correctly

Added by stuartb (Stuart Bury) almost 2 years ago. Updated almost 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
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.

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?

Actions #5

Updated by jeremyevans0 (Jeremy Evans) almost 2 years ago

  • Status changed from Open to Closed
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0