2009-04-14 13 views
7

के लिए लिनक्स पर डिबगिंग मुख्य रूप से मैंने विंडोज मशीन पर बुनियादी (नौसिखिया स्तर) सॉफ्टवेयर विकास किया है, लेकिन मेरे पास हमेशा एमएस विजुअल स्टूडियो था जो मुझे डीबगिंग की प्रक्रिया के माध्यम से कदम उठाने में मदद करता था।विंडोज डेवलपर

अब, ऐसा लगता है कि मैं लिनक्स पर रहूंगा, इसलिए कूदने के लिए तैयार होने के लिए मैं यह सुनिश्चित करना चाहता हूं कि मेरे पास कोड और डीबग के माध्यम से कदम उठाने में मदद करने के लिए एक टूल/टूल्स हैं।

दुर्भाग्य से जब मैंने लोगों से पूछा कि वे लिनक्स पर डिबगिंग के बारे में कैसे जाते हैं, तो मुझे आम तौर पर निम्नलिखित उत्तर मिलते हैं, "ओह, मैंने सिर्फ प्रिंट स्टेटमेंट का एक गुच्छा लगाया है।" हे भगवान! आप जिस तरह से कहते हैं, लेकिन हाँ, उनका जवाब नहीं है।

चूंकि यह लिनक्स पर है, और सेंटोस 32-बिट ओएस पर सी ++ कोड के साथ काम करेगा, मुझे उम्मीद है कि यहां एक पसंदीदा ओपनसोर्स समाधान है। तो, मुझे लगता है कि मैं सेंटोस लिनक्स पर सी ++ कोड के लिए पसंदीदा ओपनसोर्स आईडीई मांग रहा हूं।

किसी अंतर्दृष्टि और सुझावों के लिए धन्यवाद।

उत्तर

5

मैं Eclipse

का उपयोग कर ग्रहण उपलब्ध समर्थन के बहुत सारे के साथ एक परिपक्व आईडीई है सुझाव है। अगर आप कुछ अलग

+0

कोड :: ब्लॉक आंतरिक रूप से जीडीबी का भी उपयोग करता है, मुझे सीडी बी की तुलना में डीडीगिंग के लिए अकेले जीडीबी मिला है। –

+0

वाह - इन सभी अद्भुत प्रतिक्रियाओं की कभी उम्मीद नहीं की गई। अब मुझे समय लगता है और इन सभी विचारों के साथ प्रयोग करने का अवसर लेना है। मैं शायद ग्रहण के साथ शुरू करूंगा और देख सकता हूं कि क्या मैं मौजूदा लिनक्स कोड बेस को आईडीई में जोड़ सकता हूं, जो पहले कभी नहीं किया गया है, और बहुत सारी फाइलें हैं और बहुत कम मौजूदा या सटीक दस्तावेज हैं - दुर्भाग्यवश कोई * .dsw या मौजूदा नहीं है कार्यक्षेत्र या समाधान :(मुझे लगता है कि अगला कदम यह देखने के लिए होगा कि कोड के इस जानवर को आईडीई में कैसे काम करना है। सभी उत्तरों के लिए धन्यवाद, वे वास्तव में महान हैं। – JustADude

4
  • ग्रहण
  • NetBeans
  • डेवलप
7
2

ज्यादातर एक IDE समान वी.एस. करने के लिए - Eclipse का उपयोग करें।

moving Microsoft VS projects to Eclipse C/C++ Development Toolkit देखें - माइक्रोसॉफ्ट विजुअल स्टूडियो सी/सी ++ (एमएसवीसी) परियोजनाओं को ग्रहण करने के लिए माइग्रेट करने के लिए एक संक्षिप्त चरण-दर-चरण प्रक्रिया। यह एमएसवीसी और ग्रहण सीडीटी के लाभों की तुलना और विरोधाभास करता है।

2

वहाँ हमेशा है GDB की कोशिश करना चाहते

वहाँ भी Code::Blocks है। ओएसएक्स के लिए एक्सकोड डीडीगिंग के लिए आंतरिक रूप से जीडीबी का उपयोग करता है।

2

Valgrind, यह आपका मित्र है और आपको जीडीबी के बावजूद पीड़ित होने से बचा सकता है।

1

Anjuta गनोम के लिए वास्तव में एक महान आईडीई है। डीबगिंग के लिए यह आंतरिक रूप से जीडीबी का उपयोग करता है।

6

कुछ साल पहले मैंने वीएस से एक इमैक/मेक टाइप पर्यावरण में कदम बढ़ाया और मैंने कभी पीछे नहीं देखा है।

विचार आईडीई के प्रोजेक्ट प्रबंधन पक्ष को संभालने के लिए makefile का उपयोग करना है और मैं संपादन और डिबगिंग के लिए emacs + gdb का उपयोग करता हूं। Emacs में उपयोग करने में आपको कुछ समय लगेगा, लेकिन यदि आप उस पर चिपके रहते हैं तो यह प्रयास के लायक है। एक बार जब आप emacs शुरू कर देते हैं, तो "टी +" के बाद "Ctrl + H" दबाएं और यह आपको ट्यूटोरियल पृष्ठ पर लाएगा।

मूलभूत बातें हासिल करने के बाद, आप किसी भी आईडीई/डीबगर इंटरफेस के समान तरीके से एक प्रोग्राम डीबग कर सकते हैं। मुझे यह स्वीकार करना होगा कि इस बार भी, मैं अभी भी वीएस कुंजी मैपिंग का एक सेट उपयोग करता हूं जिसे मैंने पहली बार emacs में स्थानांतरित करने के लिए सेट किया था!

(global-set-key [f7] 'compile)   ;; Run the compile command 
(global-set-key [f4] 'next-error)  ;; The next compile error 
(global-set-key [S-f4] 'previous-error) ;; The previous compile error 
(global-set-key [f5] 'gdb)    ;; Start the debugger 

निम्नलिखित सेट अलग GDB करने के लिए "वी.एस." कुंजी मैपिंग आदेशों जो आप उपयोग कर सकते हैं:

(add-hook 'gud-mode-hook 
    '(lambda() 
    (define-key (current-local-map) 
     [f10] 
     'gud-next) 
    (define-key (current-local-map) 
     [f11] 
     'gud-step) 
    (define-key (current-local-map) 
     [\S-f11] 
     'gud-finish) 
    (define-key (current-local-map) 
     [f5] 
     'gud-cont) 
)) 
ऊपर keymappings साथ

, मैं 'F5' जो मुझे gdb को चलाने के लिए संकेत देता है प्रेस (और इस आदेश के लिए मैं बाइनरी जोड़ता हूं जिसे मैं डिबग करना चाहता हूं)। एक बार gdb लोड हो जाने पर, आप 'f5' को जारी रखने के लिए, 'f10' को चरण-दर-चरण में 'f11' दबाएं और चरणबद्ध करने के लिए 'शर्ट + f11' दबाएं।

अंत में, हर बार जब आप 'gdb' शुरू करते हैं, तो यह आपकी होम निर्देशिका में '.gdbinit' नामक फ़ाइल को पढ़ेगा। एक अलग स्टैक ओवरफ्लो प्रश्न में यह answer था जो मेरे ध्यान में stl-views लाया। stl-views जीडीबी के लिए सहायक कार्यों का एक सेट है जो आपको विभिन्न प्रकार के एसटीएल कंटेनर की सामग्री दिखाता है। इसका उपयोग करने के लिए निर्देश लिंक के शीर्ष पर पाए जा सकते हैं।

1

यदि आप सिर्फ एक अच्छा डीबगर चाहते हैं, तो DDD देखें।

0

मैं लिनक्स पर डिबगिंग करते समय gdb और cscope के संयोजन का उपयोग करता हूं।

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