2012-07-25 14 views
9

:Ruby debugger doğrudan bir blok içine adım? Aşağıdaki Yakut kodunda

Bu hata ayıklama sırasında çok yaygındır
#! /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 

, ben bloğa verir fonksiyonun uygulanması umurumda değil, sadece elle olmadan doğrudan bloğa adım istiyorum Orada bir ara nokta belirleme.

Ruby-debug19 veya debugger'da bu tür "engelleme aşaması" için herhangi bir destek var mı?

cevap

12

"continue" için "c" komutunu kullanmayı denediniz mi? Bu isteğe bağlı olarak kod örneği denemede dayalı, bir satır numarası alır, bu yüzden:

c 16 
+0

Bu benim teşekkür için umduğu gibi "geçerli bloğun içine adım" a kadar yakın olduğunu! –

+0

Bu nasıl yardımcı olur? Sadece sonuna kadar koşmasına neden olmaz mı? – Leopd

+0

'c 16', 16 numaralı satıra kadar çalışır. Dokümantasyona göre:' İsteğe bağlı argüman satırı belirtimi, bu kesme noktasına ulaşıldığında silinecek tek seferlik bir kesme noktası belirlemek için bir satır numarası belirtmenize olanak tanır. –