2008-11-08 5 views
7

में एसटीएल कंटेनर का निरीक्षण करना इसके चारों ओर गुगलिंग से एक्सकोड (3.1 मेरे मामले में) कम से कम मुझे एसटीएल कंटेनर - या कम से कम वैक्टर के एक डेन डीबग व्यू देने की कोशिश कर रहा है।एक्सकोड

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

क्या मुझे कोई सेटिंग या कुछ याद आ रही है?

मैंने यह भी पढ़ा है कि मैक्रोज़ उपलब्ध हैं जो डीबग दर्शक को और अधिक जटिल कंटेनरों का निरीक्षण करने के लिए आगे बढ़ा सकते हैं - लेकिन किसी भी को खोजने में असमर्थ रहे हैं।

मैं भी स्मृति दर्शक को छोड़ दिए बिना std :: wstrings को देखने में सक्षम होना चाहूंगा। यह std :: स्ट्रिंग ठीक दिखाता है। क्या std :: wstring दिखाने के लिए मैं कुछ भी कर सकता हूं?

मुझे एहसास है कि यह एक समग्र प्रश्न है - लेकिन यह वास्तव में एक ही विषय का हिस्सा है। किसी भी पूर्ण या आंशिक प्रतिक्रिया की सराहना की!

उत्तर

1

कंटेनर के आइटम देखने की क्षमता टेम्पलेट प्रकार की जटिलता पर भरोसा कर सकती है। जैसे

template <class T> struct S { T m_t; } 

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

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

+0

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

+2

चूंकि विजुअल स्टूडियो ने 2008 से कम से कम ऐसा करने में कामयाब रहा है, मुझे नहीं लगता कि यह बहुत अधिक उम्मीद कर रहा है – grim

2

आप विभिन्न चर प्रकारों के लिए Data formatters बना सकते हैं ताकि वे nicer :-) दिखा सकें।

1

प्रोजेक्ट-> संपादन योजना में जीडीबी डीबगर का उपयोग करने का प्रयास करें ... और परियोजना निर्माण सेटिंग्स (बिल्ड विकल्प के तहत -> सी/सी ++/उद्देश्य-सी के लिए कंपाइलर) में अपने कंपाइलर को एलएलवीएम जीसीसी 4.2 में स्विच करने पर विचार करें।

एक्सकोड 4 में, मुझे पता चला कि मुझे इन सेटिंग्स की आवश्यकता है ताकि वे V3f के std :: वेक्टर की तरह चीजें देख सकें जहां V3f एक टेम्पलेटेड फ्लोट वेक्टर प्रकार है।

ध्यान दें कि मुझे लगता है कि आप एलएलवीएम जीसीसी 4.2 के साथ एआरसी (स्वचालित संदर्भ गणना) का उपयोग नहीं कर सकते हैं।