From: merch-redmine@... Date: 2021-03-01T23:08:52+00:00 Subject: [ruby-core:102682] [Ruby master Bug#17492] Breakpoints in debug.rb only work when program invoked with absolute filename Issue #17492 has been updated by jeremyevans0 (Jeremy Evans). I've tested this patch and it does appear to fix the issue. The upstream repository (https://github.com/ruby/debug) is still not created or is private. Since debug has been gemified, a fix should be applied to the upstream repository, but since the upstream repository has not been created, there isn't a place to do that currently. @hsbt: are there plans to make the upstream repository work? debug itself uses continuation and therefore warns when it is loaded. It also has no tests. I'm not sure how often it is used (I've never used it before). ---------------------------------------- Bug #17492: Breakpoints in debug.rb only work when program invoked with absolute filename https://bugs.ruby-lang.org/issues/17492#change-90676 * 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: