2009-08-26 18 views
7

क्या विजुअल स्टूडियो (2008 में यह महत्वपूर्ण है) में कोई तरीका है जो मैं डीबग/ब्रेक मोड में कर सकता हूं, एक चर/टेक्स्ट फ़ाइल में एक चर की सामग्री लिख सकता हूं?आउटपुट एक दृश्य दृश्य स्टूडियो चर फ़ाइल को

परिदृश्य यह है कि मेरे पास डीबग में एक लंबी प्रक्रिया चल रही है और मुझे बहुत देर हो गई है कि मैंने प्रक्रियाओं की निगरानी की घटनाओं के बारे में पर्याप्त जानकारी नहीं दी है, लेकिन सौभाग्य से एक इतिहास एक चर के भीतर अभी भी उपलब्ध है कोड में

मैं इस सूची में हजारों वस्तुओं के माध्यम से ट्रैवल कर सकता हूं, लेकिन एप्लिकेशन पर रुकने के बाद यह जारी नहीं रहेगा ... इसके लिए कोई स्पष्ट संदर्भ विकल्प नहीं है, लेकिन क्या कोई तरीका है, मैनुअल से बेहतर तरीका? या क्या कोई उम्मीद नहीं है और मुझे बस स्टॉप हिट करने, लॉगिंग फ़ंक्शन को पुन: टूल करने और फिर से चलाने की आवश्यकता है?

ब्रेकपॉइंट हिट करने की कोशिश करने के अलावा, कोड को संशोधित करें और बेहतर लॉगर बनाने के लिए फिर से लिखें, क्या स्मृति में डेटा खोने का कोई तरीका नहीं है? ऐसा करने के लिए यह तत्काल विंडो का उपयोग किया जाएगा

उत्तर

17

एक ही रास्ता (मेनू डीबग ->विंडोज ->तत्काल)। दिखाई देने वाली खिड़की में आप "?" का उपयोग कर सकते हैं एक चर के मूल्य पूछने के लिए।

?history 

आप कॉपी और एक पाठ फ़ाइल में वहां से उत्पादन पेस्ट या वैकल्पिक रूप से करने के लिए दृश्य स्टूडियो पूछ सकते:

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

>log "c:\test.log" 
?history 
>log off 

LogTools.LogCommandWindowOutput के लिए एक उपनाम है और निम्न पैरामीटर स्वीकार करता है:

Tools.LogCommandWindowOutput [filename] [/on|/off] [/overwrite] 

MSDN लेख Log Command Window Output Command चेक बाहर अधिक जानकारी के लिए।

मुझे उम्मीद है कि इससे मदद मिलती है।

+0

बहुत उपयोगी, धन्यवाद! – Gaz

+0

"?" के बीच एक जगह जोड़ने के लिए याद रखें और "इतिहास" – Ning

2

मुझे लगता है कि मेरा उत्तर काफी JamesPickrell के रूप में ही है, लेकिन तत्काल खिड़की से तुम भी कुछ इस तरह कर सकता है:

My.Computer.FileSystem.WriteAllText("c:\temp.txt",history,True) 

यह एक करने के लिए "इतिहास" चर की सामग्री के उत्पादन होगा फ़ाइल c: \ temp.txt कहा जाता है।

3

Richard's answer के लिए धन्यवाद, यह मेरे लिए काम कर रहा है।

System.IO.File.WriteAllBytes(@"c:\Temp\temp.txt", myVar);

सुनिश्चित करें कि C:\Temp मौजूद है।

रूट फ़ोल्डर C:\ पर लिखने का कारण UnauthorizedAccessException से बचने के लिए है जब विजुअल स्टूडियो को व्यवस्थापक के रूप में नहीं चलाया जाता है।

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