2012-04-18 10 views
5

मैं मानक पुस्तकालय के रूप में libC++ के साथ एक्सकोड 4.3.1 की सी ++ 11 भाषा बोली का उपयोग कर रहा हूं। इस संयोजन में भाषा समर्थन अद्भुत है, लेकिन डिबगिंग यातना है। न तो एक्सकोड का "सारांश प्रारूप" और न ही lldb की सारांश प्रारूप विशेषताएं सुंदर प्रिंटिंग के साथ किसी मानक प्रकार (std :: string, std :: वेक्टर, आदि) प्रदर्शित करती हैं। इन जटिलताओं के कारण इन प्रकारों के लिए एक सुंदर प्रिंटर लिखना बेहद गैर-तुच्छ है। (उदा।, Std :: स्ट्रिंग libC++ में उल्लेखनीय रूप से जटिल है।)एक्सकोड 4.3.1 में libC++ का उपयोग करते समय मैं समझदार परिवर्तनीय डिस्प्ले कैसे प्राप्त कर सकता हूं?

दुनिया में अन्य डेवलपर्स इस स्थिति में एसटीएल प्रकारों के लिए सभ्य परिवर्तनीय प्रदर्शन कैसे प्राप्त कर रहे हैं? या फिर एक्सकोड/एलएलडीबी के साथ libC++ का उपयोग कर कोई और नहीं है?

उत्तर

0

यह सुविधा Xcode 4.4 में सही ढंग से काम करती है। एक्सकोड 4.3 उपयोगकर्ताओं के लिए सबसे अच्छा समाधान बस एक्सकोड अपडेट करने के लिए है।

4

डब्ल्यू एलएलडीबी भंडार में समर्थन है।

svn co http://llvm.org/svn/llvm-project/lldb/trunk lldb 

(मैं संशोधन 160,855 मिला) Xcode के lldb खोल में आप से कर सकते हैं:: यह मैं क्या किया है

command script import /Users/arne/oss/lldb/examples/synthetic/libcxx.py 

कि lldb प्रारूपों std :: वेक्टर, एसटीडी के बाद :: मानचित्र, std :: स्ट्रिंग और std :: नक्शा अधिक अच्छी तरह से:

(lldb) p rv 
(std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >) $3 = size=2 { 
    (unsigned long) [0] = 503 
    (unsigned long) [1] = 503 
} 

मैंने एक्सकोड 4.4 के साथ इसका परीक्षण किया है। Xcode 4.3

के साथ समान कार्य करना चाहिए आप अपने .lldbinit init फ़ाइल में कमांड डाल सकते हैं। यहां तक ​​कि एक्सकोड भी संरचनाओं को अच्छी तरह से स्वरूपित करेगा।

+0

एक्सकोड 4.3.3 में, जब मैं उपरोक्त कोशिश करता हूं, दूसरे चरण ("कमांड स्क्रिप्ट आयात ...") पर lldb खोल एक त्रुटि संदेश के साथ प्रतिक्रिया करता है जो निष्कर्ष निकाला है: "आयात त्रुटि: प्रारूपक नामक कोई मॉड्यूल नहीं है। लॉगर। " मैं एलएलडीबी को इसकी व्याख्या करने के लिए पर्याप्त रूप से नहीं जानता। क्या यह 4.3 के साथ एक समस्या हो सकती है? – OldPeculier

+0

मुझे लगता है कि 4.3.3 के लिए आपको स्क्रिप्ट के पुराने संस्करण की आवश्यकता है। लेकिन मुझे नहीं पता कि एलएलडीबी एसवीएन में कौन सा रिवर्सन एक्सकोड 4.3 के साथ काम करता है। – plaisthos

+0

उपरोक्त हालांकि यह अब "सर्वश्रेष्ठ" उत्तर नहीं है, क्योंकि यह सामान्य रूप से कस्टम प्रकारों के लिए बहुत उपयोगी है। –

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

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