2010-09-14 20 views
6

वहाँ एक स्क्रिप्ट चलाने और सभी चरणों को देखने के लिए एक अच्छा तरीका है:रूबी में कोड का पता लगाएं?

  • कौन सा कोड निष्पादित
  • जो फ़ाइल कोड
  • क्या यह
  • त्रुटि संदेश
  • रिटर्न में है

यह कैसे एक ओपन सोर्स प्रोजेक्ट काम कर रहा है यह जानने के लिए एक अच्छा तरीका होगा।

रूबी के लिए इस तरह वहाँ समाधान नहीं कर रहे हैं?

उदा।

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

तो यह कोड चलाने के लिए और मुझे सभी कोड यह निष्पादित हो रहा है, जिसमें फ़ाइल और लाइन, वस्तुओं लौट आए, त्रुटि संदेश आदि

उत्तर

5

ट्रेसर के लिए यह कर सकता है आप http://en.wikibooks.org/wiki/Ruby_Programming/Standard_Library/Tracer

अगर आप सिर्फ देखने के लिए अपवाद उठाया, तो गहरे लाल रंग का -d चलाने (या माणिक डिबग और "पकड़ने" अपवाद का उपयोग करें)

+0

पढ़ें मैं रूबी 1.9.2 का उपयोग कर रहा हूं। जब मैं "ruby --help" चलाता हूं तो कोई-ट्रैसर स्विच क्यों नहीं होता है। और जब मैं "ruby -rtracer my_ruby_file.rb" चलाता हूं, यह सामान्य रूप से सामान्य रूप से मुद्रित होता है, मुझे कोई ट्रेसिंग कार्यक्षमता दिखाई नहीं देती है। –

+0

@never_had_a_name, यह '--help' में नहीं है क्योंकि दस्तावेज़ * क्या है * -rlibrary' है; 'ट्रैसर' उपलब्ध पुस्तकालयों में से एक होता है। प्रत्येक उपलब्ध लाइब्रेरी को दस्तावेज करना एक अंतहीन कार्य होगा। (प्रत्येक निर्मित लाइब्रेरी इस तरह से लोड करने में सक्षम है, कम है, लेकिन यह अभी भी कमांड लाइन उपयोग से अलग है)। –

0

एक डिबगर का उपयोग दिखाने चाहते हैं? माणिक में बनाया गया एक के साथ आता है, या माणिक डिबग

+0

ruby- की तरह एक डिबगर करता है चाहता हूँ डीबग मुझे क्या चाहिए? कृपया मेरी अद्यतन पोस्ट पढ़ें। –

+1

यह वास्तव में एक टिप्पणी है, सवाल का जवाब नहीं। लेखक के लिए प्रतिक्रिया छोड़ने के लिए कृपया "टिप्पणी जोड़ें" का उपयोग करें। –

+0

@RostyslavDzinko मैं असहमत हूं। – horseyguy

0

का उपयोग आप एक अपवाद बढ़ा उसे पकड़ने और फिर पश्व-अनुरेखन एक अपवाद वस्तु की विधि का उपयोग कर सकते हैं।

+0

मैं वह व्यक्ति नहीं हूं जिसने लाइब्रेरी को कोड किया था। मेरी अद्यतन पोस्ट –

2

वहाँ Kernel#set_trace_func है जो ज्यादातर को शामिल किया गया है कि तुम क्या आवश्यकता होती है: एक ईवेंट का नाम, फ़ाइल नाम की एक लाइन नंबर, एक वस्तु आईडी, एक बाध्यकारी है, और नाम:

proc छह मापदंडों का समय लगता है कक्षा के । जब भी कोई ईवेंट होता है तो proc को बुलाया जाता है।

मुझे यकीन नहीं है, हालांकि, "त्रुटि संदेश" से आपका क्या मतलब है। यदि आप अपवादों का संदर्भ देते हैं, यदि आप उन्हें अपने कोड में संभाल नहीं पाते हैं, तो आपका कोड मुद्रित अपवाद के साथ समाप्त हो जाएगा।

+0

पढ़ें मेरी अद्यतन पोस्ट –

संबंधित मुद्दे