2010-01-07 12 views
22

मैं मैक पर प्रोग्रामिंग कर रहा हूं क्योंकि मैं थिंक सी का उपयोग कर एक छोटा सा बच्चा था। मुझे कभी भी डीबगर का उपयोग कभी भी एक्सकोड के साथ खराब नहीं होता था।एक्सकोड डीबगर बेकार है; के विकल्प?

  • यह उत्तरदायी नहीं है, और आगे बढ़ता है और अधिक चर देखकर अस्थिर हो जाता है।
  • जब यह दुर्घटनाग्रस्त हो जाता है, तो मैं अपने स्रोतों के लिए पूर्ववत इतिहास खो देता हूं क्योंकि यह संपादक के साथ एकीकृत है।
  • यह एकीकरण से लाभ नहीं उठाता है, हालांकि, स्रोत दर्शक स्टेपिंग के लिए उपयोग करने योग्य नहीं है: बाएं हाशिए पर क्लिक करके एक लाइन का चयन करने का प्रयास करने से बटन कहीं भी दिखाई नहीं देता है, जिससे पर प्रोग्राम का कारण बनता है उस पंक्ति में , संपादक विंडो में, जो पहली जगह डीबगिंग से संबंधित नहीं होना चाहिए। भयानक यूआई और भयानक कार्यान्वयन।
  • एक हॉबल्ड सुंदर डेटा "सारांश" वाक्यविन्यास जो अभिव्यक्ति विंडो में ऑब्जेक्ट नहीं भेज सकता है।
  • वह अभिव्यक्ति विंडो किसी भी प्रकार के संदर्भ से अवगत नहीं है।
  • डीबग करने के लिए एक विशेष थ्रेड का चयन नहीं कर सकता, जहां तक ​​मैं कह सकता हूं, और abort() नामक थ्रेड पर कूद नहीं जाता है।

के लिए मैक ओएस 9गिरी डिबगर यह से बेहतर था। छोड़ने का समय है।

ओएस एक्स पर जीडीबी काम के लिए क्या स्टैंडअलोन फ्रंट-एंड? मुझे http://ddd.darwinports.com/ मिला लेकिन इसके लिए प्रशंसा या उपाख्यानों को ढूंढना मुश्किल है, या अन्य विकल्प।

एसटीएल कंटेनर के लिए समर्थन मेरे लिए एक बड़ा प्लस है। मैं उद्देश्य-सी या ऐप्पल-कुछ के बारे में कम परवाह नहीं कर सका।

+0

मैक पर दृश्य स्टूडियो, आप क्या चाहते हैं? आपको x86 पर जीसीसी/जीडीबी लिखने में भी वही समस्याएं होंगी। –

+2

यदि आप सीधे जीडीबी कंसोल का उपयोग करने के इच्छुक हैं तो एक्सकोड कमियों में से कुछ को कम किया जा सकता है। उदाहरण के लिए, कंसोल में पी (शून्य) CFShow (MyString) के साथ लंबे NSStrings को डंपिंग किया जा सकता है। THINK सी के लिए –

+2

+1! (मुझे लगता है कि थिंक पास्कल की डीबगर बेहतर है)। – Seth

उत्तर

1

क्या आपने monodevelop की कोशिश की है? यह सी कोड का निर्माण और डिबग कर सकता है, यह नहीं दिखाता कि यह obj-c को कैसे संभालता है।

यदि आप डीडीडी काम कर सकते हैं तो मैंने कई अजीब प्लेटफॉर्म पर अच्छे परिणामों के साथ इसका उपयोग किया है। डीडीडी को एक्स 11 की आवश्यकता है।

1

मुझे एक्सकोड के साथ एक ही अनुभव मिला है, और नेटबीन्स और ग्रहण में स्विचिंग समाप्त हो गया है (अभी भी यह सुनिश्चित नहीं है कि मैं दूसरे पर कौन सा पसंद करता हूं, दोनों में मजबूत और कमजोर अंक हैं)।

यह एक अजीब विकल्प प्रतीत हो सकता है, लेकिन उनमें से दोनों अच्छे सी ++ समर्थन, उचित डीबगर एकीकरण, और अच्छे परियोजना प्रबंधन विकल्प प्रदान करते हैं। मैं रिफैक्टरिंग टूल्स और स्रोत संस्करण नियंत्रण एकीकरण का भी आनंद लेता हूं। ध्यान दें कि वे विजुअल स्टूडियो 6 के रूप में स्नैपी और साफ नहीं हैं।

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

+0

धन्यवाद एक टन! मेरे पास पहले से ग्रहण था, इसलिए मुझे बस सी/सी ++ पैकेज स्थापित करना पड़ा। हालांकि, डीबगर 64-बिट बाइनरी संभाल नहीं सकता है। समस्या "द्विआधारी पार्सर" प्रतीत होती है, और ऑनलाइन दिखती है ऐसा लगता है कि मेरे पास नियमित मैक-ओ के अलावा "मैक-ओ 64 पार्सर" विकल्प होना चाहिए। क्या आप जानते हैं कि मैं इसे कैसे इंस्टॉल करता हूं? – Potatoswatter

+0

मुझे नहीं पता। माफ़ कीजिये। मेरे सेटअप के कारण, मैंने केवल ओएसएक्स पर 32-बिट अनुप्रयोगों को विकसित करने के लिए इसका इस्तेमाल किया है। मैं ओएसएक्स पर विकसित होता हूं और फिर एक साधारण मेकफ़ाइल का उपयोग करके उत्पादन के लिए लिनक्स 64-बिट पर संकलित करता हूं .. क्षमा करें। यदि कुछ और काम नहीं करता है, तो हो सकता है कि आप 32-बिट में डीबग कर सकें और फिर 64-बिट में संकलित कर सकें, बस मेकफ़ाइल का उपयोग कर? किसी भी मामले में, मुझे सीखने में दिलचस्पी होगी कि हिम तेंदुए पर 64-बिट ऐप्स के साथ सी ++ काम के लिए एक्लिप्स के डीबगर को कैसे बनाया जाए। अगर आपको कोई रास्ता मिल जाए तो कृपया पोस्ट करें। दिलचस्प सवाल - और सीखने में खुशी है कि मैं अकेला नहीं हूं जो एक्सकोड को नापसंद करता है ... धन्यवाद। – cjcela

2

मैं स्मृति से संबंधित त्रुटियों के लिए valgrind का उपयोग करता हूं; जीडीबी (एक टमाइनल में) जब मैं बैकट्रैस चाहता हूं; और सभी के लिए + couts लॉगिंग (यदि यह क्रैश नहीं हो रहा है, और कोई स्मृति भ्रष्टाचार नहीं है, तो बग आसान लगता है)।

मान लीजिए, बहु थ्रेडेड कोड को डीबग करने का कोई विचार नहीं है।

+0

मैंने यह भी पाया अतः हाल ही में यह चाल है कि आसान एसटीएल डिबगिंग की अनुमति देता है: सीडी ~ \ N SVN सह SVN: //gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python \ N $ बिल्ली ~/.gdbinit libstdcxx.v6.printers से \ n अजगर \ n आयात sys n \ sys.path.insert (0, '/ घर/उपयोगकर्ता नाम/अजगर /') \ n register_libstdcxx_printers \ n register_libstdcxx_printers (आयात कोई नहीं) \ n अंत \ n (मैं यह एक जवाब के रूप में यह एक टिप्पणी में विकृत लग रहा है बनाती हूँ) – baol

0

मैं क्या anon ने कहा कि मैं भी हाल ही में ऐसा है कि आसान एसटीएल डिबगिंग अनुमति देता है पर इस चाल पाया करने के लिए जोड़ें:

$ cd ~ 
$ svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python 
$ cat ~/.gdbinit 
python 
import sys 
sys.path.insert(0, '/home/USERNAME/python/') 
from libstdcxx.v6.printers import register_libstdcxx_printers 
register_libstdcxx_printers (None) 
end 
+0

यहाँ समान सलाह के एक एक स्रोत है: http://stackoverflow.com/questions/295836/controlling-eclipse -सीडीटी-डीबगर-आउटपुट हालांकि, ऐसा लगता है कि मेरे पास टी होगा ओ जीडीबी अपग्रेड करें ... – Potatoswatter

0

मैं सिर्फ cgdb, gdb के लिए एक अभिशाप आधारित दृश्यपटल की खोज की। हो सकता है कि आप इसे आज़माएं, हालांकि यह थोड़ा पुराना लगता है। (जनवरी 10)

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