शिक्षण प्रोग्रामिंग में मदद करने के लिए सबसे अच्छा लिनक्स C / C ++ डिबगर (या फ्रंट-एंड से gdb) कौन सा है? [बन्द है]


106

मैं नौसिखियों को "लाइट" सी ++ प्रोग्रामिंग कोर्स का एक प्रकार सिखाता हूं ("लाइट" जिसका अर्थ है कोई संकेत नहीं, कोई वर्ग नहीं, बस सादा पुराना सी, प्लस संदर्भ और एसटीएल स्ट्रिंग और वैक्टर)। छात्रों को प्रोग्रामिंग में कोई पिछला अनुभव नहीं है, इसलिए मेरा मानना ​​है कि एक इंटरैक्टिव डिबगर का उपयोग करने से उन्हें कार्यक्रम प्रवाह, चर और पुनरावृत्ति को समझने में मदद मिलेगी।

पाठ्यक्रम लिनक्स में पढ़ाया जाता है। उन्हें gdb का उपयोग करना सिखाना सिर्फ ओवरकिल है (वे अधिकांश विशेषताओं का उपयोग नहीं करेंगे और न ही समझेंगे)। मुझे बस कुछ सरल लेकिन आसान उपयोग करने की आवश्यकता है: यह देखने के लिए कि कार्यक्रम अब किस लाइन पर है, स्टैक में क्या है (स्थानीय चर, पिछले कॉल आदि)। मैं पुराने टर्बो पास्कल या टर्बो सी ++ बोरलैंड डीबगर, या विज़ुअल स्टूडियो डीबगर के समान दिखता हूं।

धन्यवाद,


4
मुझे कक्षाओं के बिना C ++ सिखाने का औचित्य नहीं है। लेकिन मैं प्रयास को पहचानता हूं ... शिक्षण का मेरा मतलब है :-)
एम-रिक

1
C / C ++ मेरे लिए कुल शुरुआती लोगों के लिए एक अच्छे विकल्प की तरह नहीं है ...
Jaime Hablutzel

जवाबों:


36

ddd gdb के लिए एक ग्राफिकल फ्रंट-एंड है जो बहुत अच्छा है। डाउन साइड में से एक एक क्लासिक एक्स इंटरफ़ेस है, लेकिन मुझे याद है कि यह बहुत सहज है।


2
DDD वास्तव में एक महान सीमा है। मैं C ++ पढ़ाता था। मेरे छात्र कभी भी समझ नहीं पाए कि कैसे gdb का उपयोग किया जाए, लेकिन उन्हें ddd का एक त्वरित दौरा दिखाने के बाद (बस बहुत मूल बातें, और -g के साथ संकलन करने के लिए कहना) वे जल्दी से अपने कोड को डिबग करने और समझने के लिए और अधिक कुशल हो गए कि क्या हुआ। यूआई "पुराना और दिनांकित" लग सकता है, लेकिन क्यों स्पष्ट रूप से काम करता है?
wasatz

43
ddd के पास सबसे खराब UI में से एक है जिसे मैंने कभी imgur.com/UFTBjnW
ubershmekel

3
यद्यपि मैंने C के लिए बहुत कुछ उपयोग किया है, लेकिन इसमें वैक्टर और std :: सामान्‍य रूप से खराब समर्थन है। यह नियमित रूप से आवश्यकता होती है कि मैं एक ब्रेकपॉइंट स्थापित करने के लिए किसी चीज का आम नाम प्रदान करता हूं। मैं इसे अपने पहले C ++ स्टूडेंट्स के लिए नहीं सुझाऊँगा।
PypeBros

1
डीडीडी डेटा संरचनाओं का निरीक्षण करने के लिए बहुत अच्छा है क्योंकि आप उन्हें एक बड़े डेस्क पर रख सकते हैं और उन्हें देख सकते हैं कि वे एक-दूसरे और सामान की ओर कैसे इशारा करते हैं। लेकिन यह सच है कि यह केवल सी-स्टाइल (कोई एसटीएल, हर जगह संकेत) के लिए उपयोगी है।
रोमन प्लासील

1
वह बात 17 साल पुरानी है।
रॉल्फ

25

आप Red Hat के द्वारा लिखे गए gdb के लिए इनसाइट ग्राफिकल फ्रंट-एंड का उपयोग करने का प्रयास कर सकते हैं या यदि आप GNOME डेस्कटॉप वातावरण का उपयोग करते हैं, तो आप भी Nemiver को आज़मा सकते हैं ।


4
अंतर्दृष्टि इतनी भयानक है लेकिन इसे डेबियन से हटा दिया गया है और मैं इसे अपने लिनक्स पर स्थापित नहीं कर सकता .. मुझे नहीं पता कि कौन जिम्मेदार है, लेकिन उसने नश्वर दुश्मनों की मेरी सूची में प्रवेश किया और अगर मैं उसका सामना करता हूं तो वह मेरे क्रोध का सामना करेगा! किसी भी-जो; अभी भी इसे चलाने का एक तरीका है, लेकिन UI थोड़ा खराब हो गया है: baptiste-wicht.com/2012/01/…
MasterMastic

@SamuelLampa apt-get install निमोवर
नारेक बाबजन्यन

@MasterMastic, इसे हटा दिया गया क्योंकि किसी ने इसे बनाए नहीं रखा, मुझे लगता है। चिंता मत करो, आप इसे ले जा सकते हैं!
एंड्रयूश

16

आप ग्रहण सीडीटी की जांच कर सकते हैं। यह एक सी / सी ++ आईडीई प्रदान करता है जो कई प्लेटफार्मों (जैसे विंडोज, लिनक्स, मैक ओएस एक्स, आदि) पर चलता है। ग्रहण सीडीटी के साथ डिबगिंग अन्य उपकरणों जैसे विज़ुअल स्टूडियो का उपयोग करने के लिए तुलनीय है।

आप ग्रहण CDT डीबग ट्यूटोरियल की जांच कर सकते हैं जिसमें कई स्क्रीनशॉट भी शामिल हैं।


14
यार, छात्रों को सिर्फ ग्रहण सीखने में कुछ हफ्ते लगेंगे।
MrFox

14
-1 ग्रहण की सिफारिश के लिए
सेलेरिटास

7
मैं -1 अंक नहीं बल्कि आईडीई बेकार कर दूंगा।
ओव्र्वंगटविटी

2
और जब से तुम लोग इतनी शिकायत करते हो, तुम क्या सलाह देते हो? कोड :: ऐसे ब्लॉक जिन्हें अभी 3 साल से अपडेट नहीं किया गया है?
जॉनजोन

3
ग्रहण जावा के लिए बहुत अच्छा है, लेकिन यह C / C ++ के लिए बहुत बुरा है ...

14

Qt Creator , अन्य अच्छाइयों के अलावा, सभी समर्थित प्लेटफार्मों पर CDB, GDB और सिम्बियन डीबगर के लिए भी एक अच्छा डीबगर एकीकरण है। Qt Creator IDE का उपयोग करने के लिए आपको Qt का उपयोग करने की आवश्यकता नहीं है, न ही आपको QMake का उपयोग करने की आवश्यकता है - इसमें CMake एकीकरण भी है, हालाँकि QMake का उपयोग करना बहुत आसान है।

आप प्रोग्रामिंग को सिखाने के लिए IDE के रूप में Qt क्रिएटर का उपयोग करना चाह सकते हैं, विचार करें कि इसमें कुछ अच्छी विशेषताएं हैं:

  • बहुत स्मार्ट और उन्नत सी ++ संपादक
  • प्रोजेक्ट और निर्माण प्रबंधन उपकरण
  • QMake और CMake एकीकरण
  • एकीकृत, संदर्भ-संवेदनशील सहायता प्रणाली
  • उत्कृष्ट दृश्य डिबगर (सीडीबी, जीडीबी और सिम्बियन)
  • GCC और VC ++ का समर्थन करता है
  • रैपिड कोड नेविगेशन उपकरण
  • विंडोज, लिनक्स और मैक ओएस एक्स का समर्थन करता है

क्या यह उन छोटे प्रोग्राम को डिबग करने का समर्थन करता है जिनके पास प्रोजेक्ट फाइल नहीं है? मुझे याद है कि यह मेरे बड़े कार्यक्रम के लिए उपयोग कर रहा था, लेकिन पहला सेटअप बहुत दर्दनाक था, हालांकि आईडीई बहुत अच्छा है।
syockit

12

शायद यह जीडीबी के लिए अप्रत्यक्ष है (क्योंकि यह एक आईडीई है), लेकिन मेरी सिफारिशें केडेवलप होगी । विजुअल स्टूडियो के डिबगर के साथ काफी खराब होने के कारण (पेशेवर रूप से कई वर्षों तक काम करने के बाद), मैंने अब तक केडेवलप में सबसे आरामदायक डिबगिंग महसूस की है (जैसा कि घर पर शौक है, क्योंकि मैं व्यक्तिगत स्टूडियो के लिए विजुअल स्टूडियो का खर्च नहीं उठा सकता था - जब तक कि एक्सप्रेस संस्करण बाहर नहीं आया )। यह अन्य आईडीई की तुलना में विजुअल स्टूडियो की तुलना में "विजुअल स्टूडियो के समान" दिखता है, जब मैंने स्टेप-थ्रू, स्टेप-इन इत्यादि को डीबग करने की बात कही है, (ब्रेक पॉइंट्स रखना थोड़ा अजीब है क्योंकि मैं डॉन नहीं हूं ' t कोडिंग करते समय माउस का बहुत अधिक उपयोग करना, लेकिन यह मुश्किल नहीं है)।

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