Hi!
I found that line trace events are handled quite differently between
different versions of ruby and/or on different platforms. Here is a
little test script:
--- test.rb begin ---
1: @@traceProc = proc { |event, file, line, id, binding, klass, *rest|
2: STDOUT.printf("trace %s, %s:%s\n", event, file, line) if
event=='line'
3: }
4:
5: set_trace_func @@traceProc
6:
7: puts "#{RUBY_VERSION}"
--- test.rb end ---
ruby 1.6.8 on windows
D:\Temp>ruby test.rb
trace line, test.rb:7
trace line, test.rb:7
1.6.8
ruby 1.8.1 (2004-01-27) [i386-mswin32]
D:\Temp>D:\ruby-1.8.1\ruby\bin\ruby.exe test.rb
1.8.1
ruby 1.8.1 (2003-12-25) [i686-linux]
debian:~$ ruby lineTrace.rb
trace line, lineTrace.rb:7
1.8.1
ruby 1.8.1 (2004-04-16) [i686-linux]
debian:~$ ruby-stable-apr-17/ruby lineTrace.rb
trace line, lineTrace.rb:7
trace line, lineTrace.rb:7
trace line, lineTrace.rb:7
trace line, lineTrace.rb:7
trace line, lineTrace.rb:7
trace line, lineTrace.rb:7
trace line, lineTrace.rb:7
1.8.1
While several trace events are acceptable, no trace event at all is
fatal: as a consequence the debugger of 1.8.1 on windows does not halt.
Is this issue known and are there any workarounds for 1.8.1 mswin-32
(apart from waiting for a new release ;-))?
Thanks
Markus