Why ruby-debug says "Saved frames may be incomplete"

From time to time, I get this when a breakpoint is triggered. It seems that the frames of the stack are not saved, so I can not go through the call stack - this is a real pain. Below is an example

--> #0 BatchProcess.add_failure_record(row_id#Fixnum, test#Struct::Test, message#String,...) 
       at line server/processes/batch.rb:309
Warning: saved frames may be incomplete; compare with caller(0).
(rdb:1) pp caller
["./server/processes/batch.rb:309:in `run_tests'",
 "./server/processes/common/generic_process.rb:219:in `each'",
 "./server/processes/common/generic_process.rb:219:in `run_tests'",
 "./server/processes/common/generic_process.rb:271:in `run_plan'",
 "./server/processes/common/corrections.rb:19:in `each_with_index'",
 "./server/processes/common/generic_process.rb:266:in `each'",
 "./server/processes/common/generic_process.rb:266:in `each_with_index'",
 "./server/processes/common/generic_process.rb:266:in `run_plan'",
 "./server/processes/batch.rb:202:in `run_engine'",
 "/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'",
 "./server/processes/batch.rb:201:in `run_engine'",
 "./server/processes/common/generic_process.rb:88:in `run_dataset'",
 "./server/processes/batch.rb:210:in `run_dataset'",
 "/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'",
 "./server/processes/batch.rb:209:in `run_dataset'",
 "./server/processes/common/generic_process.rb:159:in `run'",
 "./server/processes/common/generic_process.rb:158:in `each'",
 "./server/processes/common/generic_process.rb:158:in `run'",
 "./server/processes/batch.rb:350:in `run'",
 "/usr/lib/ruby/1.8/benchmark.rb:293:in `measure'",
 "./server/processes/batch.rb:349:in `run'",
 "server/processes/test_runs/run_tests.rb:55:in `run_one_process'",
 "server/processes/test_runs/run_tests.rb:81"]

Any ideas on how to stop this?

+5
source share
1 answer

This means that the call stack reported by the Ruby caller () function does not match what the debugger recorded as the call stack.

, , . ruby-debug, . "" , : "ruby-debug"; Debugger.start

, .

- Ruby Ruby, . Debugger.start Debugger.stop Debugger.start {}. , - , , .

, , :

Warning: saved frames may be incomplete; 
compare debugger backtrace (bt) with Ruby caller(0).
+7

All Articles