From: rsharman@... Date: 2020-12-30T23:59:03+00:00 Subject: [ruby-core:101825] [Ruby master Bug#17492] Breakpoints in debug.rb only work when program invoked with absolute filename Issue #17492 has been reported by rsharman (Richard Sharman). ---------------------------------------- Bug #17492: Breakpoints in debug.rb only work when program invoked with absolute filename https://bugs.ruby-lang.org/issues/17492 * Author: rsharman (Richard Sharman) * Status: Open * Priority: Normal * ruby -v: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin17] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- When using the debugger, as in ruby -r debug, it seems that breakpoints sometimes are honoured and sometimes not. It turns out that it matters how the program is invoked. For example, when debugging test.rb, if invoked as ruby -r debug test.rb or ruby -r debug test.rb if a breakpoint is put in as b test.rb:10 it is not honoured because the set_trace_func has expanded the filename test.rb. If, however, the program is invoked as ruby -r debug $PWD/test.rb then the breakpoint does work. When the breakpoint is entered a File.expand_path is done on it, as can be seen when using the ���b��� command to view breakpoints. So a simple fix is to also call File.expand_path in the set_trace_func method. bash-5.1$ diff debug.rb{~,} 1104c1104 < DEBUGGER__.context.trace_func event, file, line, id, binding, klass --- > DEBUGGER__.context.trace_func event, File.expand_path(file), line, id, binding, klass bash-5.1$ Enclosed is a patch and a test script demo.sh to run a program with a breakpoint. Without the fix it does not stop at the breakpoint, with it it does. ---Files-------------------------------- Patch (401 Bytes) demo.sh (140 Bytes) -- https://bugs.ruby-lang.org/ Unsubscribe: