2011-12-19 11 views
14

C'è un modo per far tornare indietro uno script ruby ​​(o accedere al file posso tail -f) ogni riga eseguita, simile a bash -x o @echo in DOS?echeggia ogni riga di codice Ruby come sh -x?

rubino -w non farlo - aumenta solo la verbosità di avvertimenti ecc

Ricercato svolgitore ma non funziona, forse troppo datata. Dipendenze non controllabili.

Io uso irb molto ma in questo caso ho bisogno di qualcosa di non interattivo es. ispezionare l'autopsia.

risposta

6

È possibile utilizzare

ruby -rtracer [your_script.rb] 

C'è anche ruby-debug che can do

rdebug --trace [your_script.rb] 
+0

-rtracer provato, niente di stampe speciali. Apparentemente rotto in Ruby 1.9.1 (non è ancora possibile aggiornare a causa di pacchetti di Ubuntu fragili contro i conflitti di dipendenza Rubygem, purtroppo) Ma grazie, sarebbe meglio di irb stampare ogni commento e linea non-exec – Marcos

+0

Che spina seria cercando di ottenere rdebug/ruby-debug andando su un server Ubuntu (10.10 aggiornato da 10.04 da 9. *). Nessun pacchetto Apt. {gem, gem1.9.1} install ruby-debug fornisce solo la versione incompatibile al di fuori del percorso: /var/lib/gems/1.8/bin/rdebug – Marcos

+1

Che ne dici di compilare Ruby 1.9.3 da solo in/opt/ruby193 o qualcosa del genere. Non è troppo difficile e potrebbe valere la pena. C'è anche [RVM] (http://beginrescueend.com/) che aiuta a gestire più installazioni Ruby. –

1

IRB fa il trucco:

irb script.rb 
+0

Grazie - Sapevo che mi mancava qualcosa di ridicolmente semplice. – Marcos

+0

NON è come 'set -x'. Ho smesso di usare dump irb dato che stampa inutilmente le mie intere classi e metodi (migliaia di righe di codice) all'inizio solo perché sono definite in primo piano, anche commenti e blocchi di commenti, non (solo) perché le linee sono in esecuzione in tempo reale. – Marcos

Problemi correlati