2010-03-04 37 views
0

通過打破94行上的「break」ruby保留字,ruby-debug變得越來越忙activesupport-2.3.5/lib/active_support/callbacks.rb 。在ActiveSupport :: Callbacks.run中調試打破Rails的「break」

def run(object, options = {}, &terminator) 
    enumerator = options[:enumerator] || :each 

    unless block_given? 
     send(enumerator) { |callback| callback.call(object) } 
    else 
     send(enumerator) do |callback| 
     result = callback.call(object) 
     break result if terminator.call(result, object) # This line is the culprit 
     end 
    end 
    end 

我知道休息是Ruby的保留字,我surpirsed的紅寶石調試是在「破」字爲每個回調的ActiveSupport打破。由於回調非常頻繁地觸發,這幾乎使我的所有調試都無用。我不再能夠運行我的任何rspec測試,因爲每個規範都會觸發多次回調斷點。

這是我所有的當前已安裝的寶石的列表:http://pastie.org/854538

更新: 我試着刪除紅寶石調試和紅寶石調試基地,現在我得到以下信息時,都給我跑我的規格。我正在重新安裝這些寶石,因爲我需要它們。

 
debugger statement ignored, use -u or --debugger option on rspec to enable debugging 

我不知道如何解決這個問題。有任何想法嗎?

回答

0

我發現了這是爲什麼發生。我查看了觸發回調的方法,我意識到這是我自己的一個「調試器」中斷點。我只是困惑地看到調試器在ActiveSupport :: Callbacks中斷。我的調試器斷點位於該方法的最後一行,因此調試器自然會轉到ActiveSupport :: Callbacks.run中的下一個可執行行。感謝Igal爲此提供的幫助。