File tree Expand file tree Collapse file tree 3 files changed +37
-2
lines changed
Expand file tree Collapse file tree 3 files changed +37
-2
lines changed Original file line number Diff line number Diff line change @@ -1525,8 +1525,13 @@ def add_iseq_breakpoint iseq, **kw
15251525
15261526 def add_tracer tracer
15271527 if @tracers . has_key? tracer . key
1528- tracer . disable
1529- @ui . puts "Duplicated tracer: #{ tracer } "
1528+ if @tracers [ tracer . key ] . enabled?
1529+ tracer . disable
1530+ @ui . puts "Duplicated tracer: #{ tracer } "
1531+ else
1532+ @tracers [ tracer . key ] . enable
1533+ @ui . puts "Enable #{ tracer } "
1534+ end
15301535 else
15311536 @tracers [ tracer . key ] = tracer
15321537 @ui . puts "Enable #{ tracer } "
Original file line number Diff line number Diff line change @@ -54,6 +54,10 @@ def disable
5454 @tracer . disable
5555 end
5656
57+ def enabled?
58+ @tracer . enabled?
59+ end
60+
5761 def description
5862 nil
5963 end
Original file line number Diff line number Diff line change @@ -532,5 +532,31 @@ def test_tracer_prints_correct_method_receiving_messages
532532 end
533533 end
534534 end
535+
536+ class TraceOnAfterStoppingOnceTest < ConsoleTestCase
537+ def program
538+ <<~RUBY
539+ 1| a=1
540+ 2|
541+ 3| b=1
542+ 4|
543+ 5| c=1
544+ 6| p a
545+ RUBY
546+ end
547+
548+ def test_1656237686
549+ debug_code ( program ) do
550+ type 'trace line'
551+ type 'trace off'
552+ type 'trace line'
553+ type 'b 5'
554+ type 'c'
555+ assert_line_num 5
556+ assert_line_text ( /DEBUGGER \( trace\/ line\) / )
557+ type 'kill!'
558+ end
559+ end
560+ end
535561 end
536562end
You can’t perform that action at this time.
0 commit comments