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

If the environment variable LANG is empty, the debugger command will error #1131

Open
naitoh opened this issue Jan 25, 2025 · 0 comments
Open

Comments

@naitoh
Copy link

naitoh commented Jan 25, 2025

Your environment

  • ruby -v:

ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +PRISM [arm64-darwin24]

  • rdbg -v:

rdbg 1.10.0

Describe the bug

If the environment variable LANG is empty, the debugger command will error.

To Reproduce

$ LANG= ruby -e 'puts Encoding.default_external' 
US-ASCII
$ LANG= ruby -e 'require "debug"; debugger' 
# No sourcefile available for -e
=>#0	<main> at -e:1
#<Thread:0x0000000105e9c040@DEBUGGER__::SESSION@server /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:179 run> terminated with exception (report_on_exception is true):
/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:207:in 'String#strip!': invalid byte sequence in US-ASCII (Encoding::CompatibilityError)
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:207:in 'block in DEBUGGER__::Console#load_history'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:206:in 'Array#each'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:206:in 'DEBUGGER__::Console#load_history'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:183:in 'DEBUGGER__::Console#load_history_if_not_loaded'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:25:in 'DEBUGGER__::Console#readline_setup'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:100:in 'DEBUGGER__::Console#readline'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:78:in 'block in DEBUGGER__::UI_LocalConsole#readline'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:90:in 'block in DEBUGGER__::UI_LocalConsole#setup_interrupt'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:1989:in 'DEBUGGER__::Session#intercept_trap_sigint'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:83:in 'DEBUGGER__::UI_LocalConsole#setup_interrupt'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:77:in 'DEBUGGER__::UI_LocalConsole#readline'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:445:in 'DEBUGGER__::Session#wait_command'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:405:in 'block in DEBUGGER__::Session#wait_command_loop'
	from <internal:kernel>:168:in 'Kernel#loop'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:404:in 'DEBUGGER__::Session#wait_command_loop'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:330:in 'DEBUGGER__::Session#process_event'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:255:in 'DEBUGGER__::Session#session_server_main'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:207:in 'block in DEBUGGER__::Session#activate'
nil
#<Encoding::CompatibilityError: invalid byte sequence in US-ASCII>
@@@ #<Thread:0x00000001026daf80 run>
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:1248:in 'Thread#backtrace'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:1248:in 'block in DEBUGGER__::ThreadClient#wait_next_action_'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:1246:in 'Array#each'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:1246:in 'DEBUGGER__::ThreadClient#wait_next_action_'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:875:in 'block in DEBUGGER__::ThreadClient#wait_next_action'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:866:in 'block in DEBUGGER__::ThreadClient#fiber_blocking'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:866:in 'Fiber.blocking'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:866:in 'DEBUGGER__::ThreadClient#fiber_blocking'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:875:in 'DEBUGGER__::ThreadClient#wait_next_action'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:320:in 'DEBUGGER__::ThreadClient#suspend'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:251:in 'DEBUGGER__::ThreadClient#on_breakpoint'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/breakpoint.rb:69:in 'DEBUGGER__::Breakpoint#suspend'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/breakpoint.rb:170:in 'block in DEBUGGER__::LineBreakpoint#setup'
 > /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:2641:in 'Kernel#debugger'
 > -e:1:in '<main>'
["DEBUGGER Exception: /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/thread_client.rb:1252", #<Encoding::CompatibilityError: invalid byte sequence in US-ASCII>, ["/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:207:in 'String#strip!'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:207:in 'block in DEBUGGER__::Console#load_history'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:206:in 'Array#each'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:206:in 'DEBUGGER__::Console#load_history'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:183:in 'DEBUGGER__::Console#load_history_if_not_loaded'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:25:in 'DEBUGGER__::Console#readline_setup'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:100:in 'DEBUGGER__::Console#readline'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:78:in 'block in DEBUGGER__::UI_LocalConsole#readline'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:90:in 'block in DEBUGGER__::UI_LocalConsole#setup_interrupt'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:1989:in 'DEBUGGER__::Session#intercept_trap_sigint'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:83:in 'DEBUGGER__::UI_LocalConsole#setup_interrupt'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:77:in 'DEBUGGER__::UI_LocalConsole#readline'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:445:in 'DEBUGGER__::Session#wait_command'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:405:in 'block in DEBUGGER__::Session#wait_command_loop'", "<internal:kernel>:168:in 'Kernel#loop'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:404:in 'DEBUGGER__::Session#wait_command_loop'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:330:in 'DEBUGGER__::Session#process_event'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:255:in 'DEBUGGER__::Session#session_server_main'", "/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:207:in 'block in DEBUGGER__::Session#activate'"]]
/Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:207:in 'String#strip!': invalid byte sequence in US-ASCII (Encoding::CompatibilityError)
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:207:in 'block in DEBUGGER__::Console#load_history'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:206:in 'Array#each'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:206:in 'DEBUGGER__::Console#load_history'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:183:in 'DEBUGGER__::Console#load_history_if_not_loaded'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:25:in 'DEBUGGER__::Console#readline_setup'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/console.rb:100:in 'DEBUGGER__::Console#readline'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:78:in 'block in DEBUGGER__::UI_LocalConsole#readline'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:90:in 'block in DEBUGGER__::UI_LocalConsole#setup_interrupt'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:1989:in 'DEBUGGER__::Session#intercept_trap_sigint'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:83:in 'DEBUGGER__::UI_LocalConsole#setup_interrupt'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/local.rb:77:in 'DEBUGGER__::UI_LocalConsole#readline'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:445:in 'DEBUGGER__::Session#wait_command'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:405:in 'block in DEBUGGER__::Session#wait_command_loop'
	from <internal:kernel>:168:in 'Kernel#loop'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:404:in 'DEBUGGER__::Session#wait_command_loop'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:330:in 'DEBUGGER__::Session#process_event'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:255:in 'DEBUGGER__::Session#session_server_main'
	from /Users/naitoh/.rbenv/versions/3.4.1/lib/ruby/gems/3.4.0/gems/debug-1.10.0/lib/debug/session.rb:207:in 'block in DEBUGGER__::Session#activate'

Expected behavior

It should work as follows.

$ ruby -e 'puts Encoding.default_external' 
UTF-8
$ ruby -e 'require "debug"; debugger' 
# No sourcefile available for -e
=>#0	<main> at -e:1
(rdbg) 
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

1 participant