2012-07-25 7 views
9

Im folgenden Ruby-Code:Ruby Debugger Schritt in einen Block direkt?

#! /usr/bin/env ruby 

require 'debugger' 

def hello 
    puts "hello" 
    if block_given? 
    yield 
    end 
end 

def main 
    debugger 
    puts "test begin..." 
    hello do # <= if you are here 
    puts "here!" #<= how to get here without setting bp here or step into hello? 
    end 
end 

main 

Es ist sehr üblich, beim Debuggen, ich nicht über die Implementierung der Funktion Pflege, die den Blockes ergibt, ich will nur in den Block, zu dem Schritt direkt ohne manuell dort einen Haltepunkt setzen.

Gibt es irgendeine Unterstützung für diese Art von "Schritt in Block" in Ruby-Debug19 oder Debugger?

Antwort

12

Haben Sie versucht, den "c" Befehl für "continue" zu verwenden? Es nimmt optional eine Zeilennummer, also, basierend auf Ihrem Code-Beispiel versuchen:

c 16 
+0

Dies ist so nah an einem "Schritt in den aktuellen Block", wie ich es mir erhofft hatte, danke! –

+0

Wie hilft das? Führt 'c' nicht dazu, dass es zu Ende geht? – Leopd

+0

'c 16' würde laufen, bis es Zeile 16 trifft. Nach der Dokumentation:' Die optionale Argument-Zeilenspezifikation ermöglicht es Ihnen, eine Zeilennummer anzugeben, um einen einmaligen Haltepunkt zu setzen, der gelöscht wird, wenn dieser Haltepunkt erreicht wird –

Verwandte Themen