2010-09-14 10 views
6

C'è un buon modo per eseguire uno script per vedere tutte le fasi:Traccia il codice in Ruby?

  • cui viene eseguito il codice
  • quale file il codice è in
  • Che restituisce
  • I messaggi di errore

Questo sarebbe un buon modo per imparare come funziona un progetto open source.

Non ci sono soluzioni come questa per Ruby?

Es.

require "httparty" 
HTTParty.get "http://www.google.se" 

Allora sarebbe eseguire il codice e mi mostra tutto il codice è in esecuzione, in cui il file e la linea, restituiti gli oggetti, messaggi di errore ecc

risposta

5

Tracer potrebbe farlo per voi http://en.wikibooks.org/wiki/Ruby_Programming/Standard_Library/Tracer

se si desidera visualizzare solo le eccezioni sollevate, quindi eseguire rubino -d (o usare ruby-debug e Exception "Catch")

+0

Sto usando Ruby 1.9.2. Perché non c'è nessun interruttore -tracer quando eseguo "ruby --help". E quando eseguo "ruby -rtracer my_ruby_file.rb" viene stampato come al solito, non vedo alcuna funzionalità di tracciamento. –

+0

@never_had_a_name, non è in '--help' perché ciò che * è * documentato è' -rlibrary'; 'tracer' sembra essere una delle librerie disponibili. Documentare ogni libreria disponibile sarebbe un compito senza fine. (Ogni libreria integrata può essere caricata in questo modo, meno, ma è ancora distinta dall'uso della riga di comando). –

0

utilizzare un debugger? ruby viene fornito con uno incorporato o usa ruby-debug

+0

Does un debugger come rubino fare il debug di cosa ho bisogno? Si prega di leggere il mio post aggiornato. –

+1

Questo è davvero un commento, non una risposta alla domanda. Si prega di utilizzare "aggiungi commento" per lasciare un feedback all'autore. –

+0

@RostyslavDzinko Non sono d'accordo. – horseyguy

0

È possibile generare un'eccezione, catturarla e quindi utilizzare il metodo di backtrace di un oggetto Exception.

+0

Non sono il tipo che ha codificato la libreria. Leggi il mio post aggiornato –

2

C'è Kernel#set_trace_func che copre gran parte ciò che si richiede:

proc vogliono fino a sei parametri: il nome di evento, un nome di file, un numero di riga, un ID oggetto, un legame, e il nome di una classe. proc è invocato ogni volta che si verifica un evento.

Non sono sicuro, tuttavia, cosa intendi con "i messaggi di errore". Se fai riferimento alle eccezioni, se non le gestisci nel tuo codice, il tuo codice terminerà con l'eccezione stampata.

+0

Leggi il mio post aggiornato –

Problemi correlati