2009-06-09 12 views
196

क्या विजुअल स्टूडियो डीबगर में एक सरणी देखना संभव है? क्विकवॉच केवल सरणी का पहला तत्व दिखाता है।विजुअल स्टूडियो डीबगर में सरणी देखें?

+2

http: // समर्थन .microsoft.com/kb/198953 – becko

+0

यदि यह एक कैरे है, तो घड़ी विंडो पर array.m_pData [pos] या array-> m_pData [pos] (केस के आधार पर) लिखने से आप pos में सरणी की सामग्री देख सकते हैं पद! – sergiol

उत्तर

475

आप सी ++ के लिए यह अच्छी छोटी सी कोशिश कर सकते हैं। अभिव्यक्ति लें जो आपको सरणी देता है और फिर एक अल्पविराम और उन तत्वों की संख्या जोड़ता है जिन्हें आप देखना चाहते हैं। उस मान का विस्तार करने से आप तत्व 0- (एन -1) दिखाएंगे जहां एन अल्पविराम के बाद आप जो संख्या जोड़ते हैं।

उदाहरण के लिए यदि pArray सरणी है, तो घड़ी विंडो में pArray,10 टाइप करें।

+8

अविश्वसनीय खोज। हालांकि यह केवल तत्काल मूल्यों के साथ काम करता है, कोई अंकगणितीय या गतिशील सदस्य पहुंच की अनुमति नहीं है। –

+17

ध्यान दें कि आप डीबग व्यू में एक कास्ट का भी उपयोग कर सकते हैं। यदि 'pArray' प्रकार' void * 'प्रकार है, तो आप '(char *) pArray टाइप कर सकते हैं, 10' जो char के रूप में व्याख्या की गई सरणी की सामग्री प्रदर्शित करेगा। – Machtl

+0

विजुअल स्टूडियो 2008 एक्सप्रेस में ऐसा नहीं कर सकता है। यदि मैं वॉच विंडो में "ए + 1,2" अभिव्यक्ति जोड़ता हूं, तो foloowing त्रुटि उत्पन्न होगी: "त्रुटि: + 'pArray' और '1' 'पर नहीं किया जा सकता है। वीएस का क्या संस्करण आप उपयोग कर रहे हैं? –

1

अपने माउस कर्सर को सरणी के नाम पर होवर करें, फिर दिखाई देने वाले छोटे (+) आइकन पर होवर करें।

+14

सी ++ के लिए यह आपको केवल पहला तत्व दिखाएगा – JaredPar

13

क्या आप गतिशील आवंटित स्मृति के साथ एक सरणी देखने की कोशिश कर रहे हैं? यदि नहीं, तो आप डीबगर में घड़ी विंडो में डालकर सी ++ और सी # के लिए एक सरणी देख सकते हैं, जब आप बाएं माउस-क्लिक द्वारा घड़ी विंडो में छोटे (+) पर सरणी का विस्तार करते हैं तो इसकी सामग्री दिखाई देती है।

यदि यह गतिशील रूप से आवंटित सरणी के लिए सूचक है, तो सूचक की एन सामग्री देखने के लिए, डीबगर की घड़ी विंडो में "पॉइंटर, एन" टाइप करें। नोट, एन एक पूर्णांक होना चाहिए या डीबगर आपको एक त्रुटि देगा कि यह सामग्री तक नहीं पहुंच सकता है। फिर, सामग्री को देखने के लिए दिखाई देने वाले छोटे (+) आइकन पर बायाँ क्लिक करें।

18

मैं विजुअल स्टूडियो (http://arraydebugview.sourceforge.net/) के लिए ArrayDebugView ऐड-इन का उपयोग करता हूं।

ऐसा लगता है कि यह एक लंबी मृत परियोजना है (लेकिन एक मैं खुद को जारी रखने की सोच रहा हूं) लेकिन एड-इन अभी भी सी ++ और सी # दोनों के लिए वीएस -2010 में मेरे लिए खूबसूरती से काम करता है।

इसमें कुछ क्विर्क (टैब ऑर्डर, मोडल डायलॉग, कोई क्लोज़ बटन नहीं है) लेकिन इसके लिए बनाने के लिए ग्राफ में किसी सरणी की सामग्री को प्लॉट करने की क्षमता है।

जुलाई 2014 संपादित करें: मैंने आखिरकार ArrayebugView की कार्यक्षमता को बदलने के लिए एक नया विजुअल स्टूडियो एक्सटेंशन बनाया है। यह VISual स्टूडियो गैलरी पर उपलब्ध है, ArrayPlotter के लिए खोजें या http://visualstudiogallery.msdn.microsoft.com/2fde2c3c-5b83-4d2a-a71e-5fdd83ce6b96?SRC=Home

+0

बहुत अच्छा लगता है लेकिन वीएस2013 का समर्थन नहीं करता है ?? VSIXInstaller.NAplplableSKUsException: यह एक्सटेंशन किसी भी वर्तमान में स्थापित उत्पादों पर स्थापित नहीं है। समर्थित उत्पाद: माइक्रोसॉफ्ट। विज़ुअल स्टूडियो.प्रो संस्करण: [10.0] संस्करण: [11.0] संस्करण: [12.0] संस्करण: [14.0] – Gregory

+2

यह करना चाहिए! मैंने इसे वीएस2013 में विकसित किया! वीएस2013 (सर्विस पैक/संस्करण) का कौन सा संस्करण आप चल रहे हैं? यदि आप एक्सटेंशन प्रबंधक (ऑनलाइन अनुभाग में) में ArrayPlotter की खोज करते हैं तो क्या आप इसे वहां उपलब्ध देखते हैं? –

+0

सुंदर उपकरण, वीएस2013 में मेरे लिए ठीक काम करता है। –

61

यदि आपके पास एक बड़ी सरणी है और केवल सरणी का उपखंड देखना चाहते हैं तो आप इसे घड़ी विंडो में टाइप कर सकते हैं;

ptr+100,10 

पीआरटी [100] से शुरू होने वाले 10 तत्वों की एक सूची दिखाने के लिए। सावधान रहें कि प्रदर्शित सरणी सबस्क्रिप्ट [0] से शुरू हो जाएंगी, इसलिए आपको याद रखना होगा कि पीआरटी [0] वास्तव में पीआरटी [100] है और पीआरटी [1] पीआरटी [101] आदि है

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