2012-07-25 12 views
9

Nel seguente codice Ruby:ruby ​​debugger passo direttamente in un blocco?

#! /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 

E 'molto comune durante il debug, non mi interessa circa l'implementazione della funzione che produce al blocco, voglio solo fare un passo nel blocco direttamente, senza manualmente impostando un break-point lì.

Esiste qualche supporto per questo tipo di "passaggio in blocco" in ruby-debug19 o debugger?

risposta

12

Hai provato a utilizzare il comando "c" per "continue"? Prende facoltativamente un numero di riga, quindi, in base all'esempio di codice prova:

c 16 
+0

Questo è il più vicino a un "passaggio nel blocco corrente" come speravo, grazie! –

+0

Come può essere d'aiuto? Non 'c' fa solo correre fino alla fine? – Leopd

+0

'c 16' funzionerebbe finché non raggiungesse la riga 16. Per la documentazione:' La specifica riga specifica dell'argomento consente di specificare un numero di riga per impostare un punto di interruzione monouso che viene eliminato quando viene raggiunto quel punto di interruzione. –

Problemi correlati