Project

General

Profile

Bug #17492

Updated by rsharman (Richard Sharman) almost 4 years ago

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$ 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. 

Back