रूबी में डिबगिंग 1.9


90

आप लोग माणिक 1.9 में डिबगिंग के लिए क्या उपयोग करते हैं? rdebug संगत प्रतीत नहीं होता है .. वहाँ कुछ भी है?


10
पहले उत्तर पर ध्यान न दें; ruby-debug19अब पुराना है।
रोब हॉवर्ड

जवाबों:


50

नोट: यह उत्तर सही था लेकिन अब पुराना है। नीचे सही उत्तर देखें। टीएल; डीआर: अब 'डीबगर' का उपयोग करें।

रूबी-डीबग अब रूबी 1.9.x के साथ उपलब्ध है। देखें http://www.github.com/mark-moseley

स्थापित करने के लिए (1.9 रूबी स्थापना पर रत्न का उपयोग करके):

gem install ruby-debug19

(शायद इसके सामने आवश्यक 'सुडो')।


मैंने एक सरसरी कोशिश की और यह काम नहीं आया। इसे देखने के लिए कुछ और समय चाहिए।
मार्क मोस्ले

रूबी-डिबग- आइड
मार्क

यह अच्छी खबर है! धन्यवाद!
andi

अच्छा काम :) लेकिन क्या आप एक फेटगेम बना सकते हैं (जिसमें 1.8 और 1.9 रूबी-डिबग संस्करण शामिल हैं) इसलिए हमें rubydebbug19 करना याद नहीं है? :)
घोड़े की उम्र

4
यह उचित नहीं है, क्योंकि यह समय बीतने के कारण अब यह गलत उत्तर बन गया है। एसओ को ऐसे उपयोग के मामलों को संभालने के कुछ तरीके की आवश्यकता होती है, ताकि नए सही उत्तर को पहले सूचीबद्ध होने की अनुमति दी जा सके , जो पुराने उत्तरों के लेखकों को दंडित किए बिना, जो अब किसी के लिए उपयोगी नहीं हैं।
इकोलॉस्टल

167

ruby-debug19अब रखरखाव नहीं किया जाता है। अन्य सभी उत्तर पुराने हैं।

लेकिन एक विकल्प है:

debugger बचाव के लिए!

इसे अपने में रखें Gemfile:

gem 'debugger', group: [:development, :test]

यह सिर्फ काम करता है। - और यह 3.2 के बाद से पटरियों Gemfile में शामिल है ruby-debug19। को बदलने के लिए । इसकी सटीक कार्यक्षमता है और इसे सक्रिय रूप से बनाए रखा गया है।


1
अच्छी तरह से काम करता है। हाथ से माणिक-डिबग स्थापित करने से बहुत बेहतर है। धन्यवाद।
मनु_व

5
यह वास्तव में शीर्ष उत्तर के रूप में ऊपर ले जाने की आवश्यकता है।
मैट ज़ुकोव्स्की

2
हां, वास्तव में यह उत्तर शीर्ष उत्तर होना चाहिए।
नजर हुसैन

और कैसे इस बारे में जहां वास्तव में Gemfile में चला जाता है।
रिग

कोई फरक नहीं है। इसे जहाँ भी आप चाहें, बस एक ग्रुप ब्लॉक के अंदर न डालें (न कि इन group :development do ... endजैसे), क्योंकि इसमें पहले से ही एक समूह होता है।

70

रुबी 2.0+ और फ़ोलोइंग के लिए अद्यतन

byebug वर्तमान में रूबी 2.0+ के लिए अनुशंसित डिबगर है

इस मुद्दे को यहाँ प्रलेखित किया गया है , और डिबगर के लेखक cldwalker, नोट करते हैं कि डिबगर को रूबी 1.9.2 और 1.9.3 में स्कोप किया जाएगा।

अद्यतन २

यह सच है कि माणिक-डिबग सक्रिय रूप से बनाए नहीं रखा जाता है, भले ही मैं कहीं भी नहीं पा रहा हूं जो किसी भी लंबे समय तक बनाए नहीं रखा गया है।

आप नए डिबगर मणि का उपयोग कर सकते हैं यदि आपको नए मणि के साथ शुरू करने के लिए मदद की जरूरत है तो आप रयान बेट्स रेल्स को देख सकते हैं ।

आपके जेमफाइल में:

gem 'debugger', group: [:development, :test]

तब आप debuggerकीवर्ड का उपयोग करके अपने कोड में कहीं भी एक विराम बिंदु जोड़ सकते हैं ।

आप अभी भी उपयोग कर सकते हैं

linecache19 और रूबी-डिबग-बेस 19 के साथ:

bash <<(curl -L https://raw.github.com/gist/1333785 )

पुराने ANSWERS

Rvm के साथ इस बारे में सिर्फ एक ऐड, माणिक 1.9.1-p378। सच्ची कहानी यह है कि भले ही माणिक-डिबग 1.9.x तैयार हो, लिनकेच-0.43 नहीं है। समाधान स्थापित करना है:

gem install ruby-debug19

यह मेरे लिए समस्या हल करता है।

पुराने अद्यतन

अगर आपको रूबी 1.9.2 और रेल 3 डीबगिंग डालने में समस्या आ रही है:

gem 'ruby-debug-base19', "0.11.24"
gem 'ruby-debug19', "0.11.6"

अपने जेमफाइल में और ए

bundle install

आपको फिर से एक खुश डिबगर बना देगा।


1
मेरे लिए धन्यवाद, जो अधिक उपयुक्त उत्तर था। लेकिन शायद यह इसलिए है क्योंकि आपने लगभग एक साल बाद जवाब दिया और उस संबंध में अच्छे के लिए चीजें बदल गईं।
चिह्नित करें

3

कुछ चीजें जो आप आजमा सकते हैं

1) इसे रूबी के सामान्य डिबगर -debug [1] तरह के धीमे से चलाएं

2) इसे अनलोडर मणि के साथ चलाएं [तरह की बदबू, रास्ता धीमा]

3) तेजी से प्रिंट बयानों का उपयोग करें, कम आत्मनिरीक्षण संभव है

4) एक irb प्रॉम्प्ट पर ड्रॉप करें और वहां से कुछ कोड चलाएं।

आप अपने स्वयं के "ड्रॉप टू आईआरबी प्रॉम्प्ट" बनाकर कोड को सूचीबद्ध कर सकते हैं जो कोड को खुद के आसपास सूचीबद्ध करता है [यह जानने के लिए कॉलर का उपयोग करें कि आप जहां हैं] फिर सामान्य आईआरबी प्रॉम्प्ट पर ड्रॉप करें।

5) हो सकता है कि 1.9 कॉम्पिटिटर मोड में क्रैब में डिबगर हो?

[१] http://beaver.net/rdebug/index-0.html


3

अगर आपको रूबी-डीबग 19 स्थापित करने के बाद भी कोई समस्या है, तो रूबी-डिबग-बेस 19 को अपडेट करने का प्रयास करें। मेरे पास त्रुटियां थीं और जब तक मैंने ऐसा नहीं किया तब तक वे डिबग मोड में WEBrick नहीं चला सकते थे।

gem update ruby-debug-base19

ओह, और सभी कठिन परिश्रम के लिए धन्यवाद श्री मोसले!


2

मेरा जवाब यहां देखें: रूबी-डिबग काम नहीं कर रहा है - स्टैक ओवरफ्लो

यह निम्नलिखित सेटअप के साथ काम करने के लिए रूबी डिबगिंग प्राप्त करने के बारे में है

  • मैक ओएस एक्स लायन 10.7.2
  • Aptana Studio 3 (बिल्ड 3.0.8.201201201658)
  • मेरे प्रोजेक्ट वर्किंग डायरेक्टरी में rvm का उपयोग करते हुए, मेरे पास एक .rvmrc स्टैटिंग है:

    rvm use ruby-1.9.3-p0@mygemset

आशा है कि ये आपकी मदद करेगा!

- फ्रेडी


2

मैंने निम्नलिखित प्रयोग किया और यह मेरे लिए बहुत अच्छा काम करता है:

मणि 'डिबगर', समूह: [: विकास,: परीक्षण]

माणिक 1.9.3p194 (2012-04-20 संशोधन 35410) [x86_64-linux] रेल 3.2.8


0

नेटबीन्स RoR के लिए एक अच्छा IDE है। अच्छा डिबगर भी।


1
अगर मैं गलत हूं तो मुझे सुधारें, लेकिन मुझे विश्वास नहीं है कि रूबी 1.9.1 (सी कार्यान्वयन) के लिए डिबगर काम करता है। कम से कम, मैं इसे काम करने में सफल नहीं रहा हूं।
जेपी रिचर्डसन

0

रूबी 1.9.1-p243 संस्करण बाहर है और उचित रूबी-डिबग-आइड भी ठीक से काम कर रहा है। निम्नलिखित कमांड का उपयोग करके रूबी-डिबग-आइड स्थापित करें:

मणि स्थापित रूबी-डिबग-आइड

यह रूबी-डिबग-बेस 19 और रूबी-डिबग-आइड रत्न स्थापित करेगा। लेकिन इससे पहले कि आप सुनिश्चित करें कि आप RubyForge से उपलब्ध विकास किट डॉक्स का पालन करके सफलतापूर्वक mingw स्थापित करें ।


0

नवीनतम सुविधाएँ रूबी-डिबग-ide19 रत्न में उपलब्ध हैं।


0

आपकी आवश्यकताओं के आधार पर बहुत सारे विकल्प हैं।

मैं प्राइ-मूव्स का उपयोग करता हूं क्योंकि मैं पिछले कमांड के अंदर जो हुआ उसे "डिबेट बैक" कर सकता हूं। उन्हें डिबग मोड में फिर से जगह से फिर से निष्पादित करके।


-1

कोई भी उपयोग नहीं करता है: रूबी -debug script.rb

तो आप उपयोग कर सकते हैं: b script.rb: ## (जहां ## एक वैध रूबी कमांड की लाइन संख्या है) अन्यथा आप शायद रूबीमेम्स के बीच में या आपके किसी आवश्यक कोड के बीच हो सकते हैं।

तब आप बस अगले ब्रेकपॉइंट को b: ## के रूप में सेट कर सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.