2011-07-07 6 views
5

मेरे पास एक वेक्टर है जो खाली है, कुछ इसे कहीं भर रहा है और मैं इसे नहीं ढूंढ सकता। मैं एक मेमोरी ब्रेकपॉइंट सेट करना चाहता हूं ताकि जब push_back होता है तो प्रोग्राम टूट जाएगा।जब वेक्टर <int> लंबाई में बढ़ता है तो मैं ब्रेकपॉइंट कैसे सेट करूं?

मैं विजुअल स्टूडियो 2008 का उपयोग कर रहा हूं, और समस्या यह है कि वेक्टर घड़ी के विंडो में अपने आंतरिक सदस्यों को प्रदर्शित नहीं करता है (ऐसा लगता है कि यह एक कस्टम स्वरूपण है)। यह सिर्फ इस तरह दिखता है:

myVector [0]() std :: वेक्टर < पूर्णांक, std :: संभाजक < पूर्णांक>>

संकेत आकार 0. किसी भी सुझाव दिए गए?

+0

पुश_बैक पर ब्रेकपॉइंट क्यों सेट न करें? – JonathonW

+0

खराब नहीं है, लेकिन आकार, असाइनमेंट इत्यादि जैसे अन्य मामलों को पकड़ नहीं पाएंगे, लेकिन धन्यवाद! – baddie

+0

एक वेक्टर में कोई वर्चुअल फ़ंक्शन नहीं है, और इसमें केवल तीन सदस्य हैं। एक सूचक है, एक आवंटन आकार है, और वास्तव में वेक्टर में तत्वों की संख्या है। वास्तविक वर्ग लेआउट को जानने के बिना (हालांकि आप इसे शीर्षलेख में देख सकते हैं), परीक्षण और त्रुटि से पता लगाना मुश्किल नहीं है कि स्मृति पता देखने के लिए (बहुत संभावना है 'vec + sizeof (शून्य *) ' – Damon

उत्तर

5

यह उत्तर वीएस 2010 के लिए है - विवरण अन्य संस्करणों में भिन्न हो सकते हैं।

के बाद से डिबगर एक डेटा विजुआलाइज़र का उपयोग करता है (या जो भी यह कहा जाता है) एक std::vector के राज्य प्रदर्शित करने के लिए, आप (रों) <vector> शीर्षक में देखने के लिए वर्ग और जो एक के वास्तविक सदस्यों के नाम का निर्धारण करने के लिए है तत्वों की संख्या को ट्रैक करने के लिए जिम्मेदार हो सकता है। ऐसा करने का एक आसान तरीका vector::push_back() पर कॉल के माध्यम से कदम उठाना है।

वीसी ++ 2010 में यह _Mylast नामक एक सदस्य सूचक है।

तो आपको बस &v._Mylast पर लिखने पर डेटा ब्रेकपॉइंट सेट करना है (जहां v वह वेक्टर है जिसे आप डिबगिंग में रुचि रखते हैं)।

अगली बार एक तत्व जोड़ा जाता है, डीबगर एक कॉल स्टैक के साथ तोड़ देगा जहां बिल्कुल दिखाया जा रहा है।

0

यह वीसी -2010 में 0 दिखाता है, [0] वेक्टर के आकार को इंगित करता है और आइटम() में प्रदर्शित किए जाएंगे। और आप स्मृति पता खोजने के लिए मेमोरी आउटपुट विंडो का उपयोग कर सकते हैं।

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

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