2010-09-14 80 views
6

是否有運行腳本,並看到所有的步驟,一個好辦法:在Ruby中跟蹤代碼?

  • 這是執行的代碼
  • 哪個文件的代碼是
  • 什麼返回
  • 錯誤消息

這將是學會如何開源項目工作的好方法。

是不是有這樣的Ruby解決方案?

例如,

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

然後它會運行的代碼,並告訴我所有正在執行的代碼,其中的文件和行,返回的對象,錯誤信息等

回答

5

示蹤可能會爲你做http://en.wikibooks.org/wiki/Ruby_Programming/Standard_Library/Tracer,如果你想只看到異常升高,然後運行紅寶石-d(或使用紅寶石調試和「catch」除外)

+0

我正在使用Ruby 1.9.2。爲什麼當我運行「ruby --help」時沒有-rtracer開關。當我運行「ruby -rtracer my_ruby_file.rb」時,它會像往常一樣打印出來,我看不到任何跟蹤功能。 – 2010-09-14 15:47:12

+0

@never_had_a_name,它不在'--help'中,因爲*記錄的是'-rlibrary'; 「tracer」恰好是可用的庫之一。記錄每個可用的庫將是一個無止盡的任務。 (每個內置庫都可以用這種方式加載,但不是那樣,但仍然不同於命令行使用)。 – 2014-10-15 19:43:56

0

使用調試器?紅寶石帶有一個內置的,或者使用Ruby調試

+0

難道一個調試器像ruby-

調試做我需要什麼?請閱讀我更新的帖子。 – 2010-09-14 12:18:16

+1

這真的是一個評論,而不是問題的答案。請使用「添加評論」爲作者留下反饋。 – 2012-08-20 07:05:22

+0

@RostyslavDzinko我不同意。 – horseyguy 2012-08-20 07:37:53

0

可以引發異常,抓住它,然後使用回溯一個Exception對象的方法。

+0

我不是編碼圖書館的人。閱讀我更新的文章 – 2010-09-14 12:17:59

2

Kernel#set_trace_func它主要涵蓋了你需要什麼:

PROC需要長達六個參數:一個 事件名稱,文件名,行號, 對象ID,綁定和名稱 一類。只要發生事件 ,就會調用proc。

我不知道,不過,你是什麼「錯誤消息」的意思。如果您引用異常,如果您不在代碼中處理它們,則代碼將以打印的異常終止。

+0

閱讀我更新的文章 – 2010-09-14 12:17:28