2009-02-22 11 views
6

मैं सिर्फ विजुअल स्टूडियो 2005 के साथ अपने कार्यक्रम के माध्यम से कदम उठाना चाहता हूं, लेकिन जब मैं अपने शिक्षक (थोडा) ने मुझे दिखाया है, तो कॉपी करने की कोशिश करता हूं, मैं अपनी दूसरी विंडो में स्वचालित रूप से दिखाई देने वाली कुछ अन्य फ़ाइलों के माध्यम से कदम उठाना शुरू करता हूं। उन्हें "xstring" और "ios" जैसी यादृच्छिक चीजें कहा जाता है और मैं वास्तव में निराश हूं। कृपया, मैं अपने कोड के माध्यम से कैसे कदम उठा सकता हूं?विजुअल स्टूडियो डीबगिंग- मैं बस अपने कार्यक्रम के माध्यम से कदम उठाना चाहता हूं!

+0

कृपया एक प्रश्न का संक्षिप्त, पूरा उदाहरण देने के लिए अपना प्रश्न संपादित करें जिसे आप चरणबद्ध करने का प्रयास कर रहे हैं, और यह इंगित करें कि कौन सा कथन अप्रत्याशित रूप से आपको एसटीएल कोड में ले जा रहा है। – ChrisW

+2

किसी के पास एक ही समस्या है, इसलिए मैं विस्तार से बताऊंगा: एक ही कथन में कदम उठाने के दौरान, अक्सर एक एसटीएल कॉल, कन्स्ट्रक्टर कॉल, नई ऑपरेटर कॉल इत्यादि को हिट करता है, जिस तरह से वास्तव में कदम उठाना चाहता है। इस प्रकार, जब आप चरण में उपयोग करते हैं, तब भी किसी विशेष मॉड्यूल या किसी विशेष कक्षा के कार्यों में व्यक्तिगत कार्यों से कुछ भी स्वचालित रूप से कदम उठाने के लिए डीबगर को बताने का तरीका अच्छा होगा। – Stewart

उत्तर

-1

http://mark.michaelis.net/Blog/VisualStudioKeyboardShortcutsWrapupMSDNFlashFeb22009.aspx

मूल रूप से बोल रहा है आप F10 (कदम से अधिक) और नहीं F11 (कदम दर में) जब कोड की वर्तमान पंक्ति अपने ढंग से काम नहीं करने के लिए कॉल शामिल उपयोग करना चाहिए।

+0

मैंने कोशिश की! यह अजीब चीजें करता है! –

+2

लेकिन यह उस उपयोगकर्ता के कुछ कदमों पर कदम उठाएगा जो उपयोगकर्ता चाहता है। कई सी ++ कथन में लाइब्रेरी कॉल का मिश्रण होता है और उन कार्यों को कॉल करता है जो वास्तव में प्रोग्राम का हिस्सा हैं। – Stewart

1

सबसे अधिक संभावना क्या हो रहा है कि आप ढांचे में अंतर्निहित तरीकों में कदम उठा रहे हैं। जब ऐसा होता है, तो बस "चरणबद्ध करें" पर क्लिक करें और आप अपने कोड में वापस आ जाएंगे।

आप उन तरीकों के लिए "चरण ओवर" का भी उपयोग कर सकते हैं जिन्हें आप जानते हैं - निश्चित रूप से उन तरीकों से निपटने के लिए जोखिम उठाने के लिए जो आप कदम उठाना चाहते हैं।

मेरी सिफारिश यह है कि आप प्रत्येक लाइन पर ब्रेकपॉइंट्स रखना सुनिश्चित करते हैं जहां आप एप्लिकेशन की स्थिति जांचना चाहते हैं - इस तरह आप केवल प्ले बटन (एफ 5) का उपयोग कर सकते हैं।

5

ऐसा क्यों हो रहा है: आप मानक टेम्पलेट लाइब्रेरी से ऑब्जेक्ट्स का उपयोग कर रहे हैं। आपके कुछ बयान इन एसटीएल वर्गों के स्पष्ट रूप से या निहित तरीके से आविष्कार कर रहे हैं। आप अपने डीबगर के साथ इन विधियों में कदम उठा रहे हैं।

इसे ठीक करने के दो तरीके हैं:

  • आप जानते हैं कि आप एक बयान जो एक एसटीएल विधि आह्वान पर रहे हैं, तो डिबगर के "कदम से अधिक" चुनें (F10) के बजाय कमांड अपने "चरण में" (एफ 11) कमांड।

  • यदि आप गलती से इन तरीकों में से किसी एक में प्रवेश करते हैं, तो डीबगर के "चरण आउट" (Shift-F11) कमांड का उपयोग करें।

+0

मैं यह जांचने की कोशिश कर रहा हूं कि किसी सेक्शन में चर के लिए कौन से मूल्य आवंटित किए जा रहे हैं, और मुझे लगता है कि मैं इन एसटीएल विधियों में कदम उठा रहा हूं ... और मैं यह समझने के लिए बहुत शुरुआत कर रहा हूं कि क्या हो रहा है। –

+0

कार्य के आसपास के रूप में, यदि आप इन विधियों में से किसी एक में जाते हैं तो "चरण आउट" (Shift-F11) का उपयोग करें। यदि यह कोई सांत्वना है, तो यह एक प्रसिद्ध समस्या है (यानी यह सिर्फ आप नहीं है)। – ChrisW

7

ऐसी विधियों में कदम उठाने से बचने का सबसे अच्छा तरीका रजिस्ट्री में NoStepInto नियम सेट करना है। this blog post को ठीक से करने के लिए देखें। विजुअल स्टूडियो 2005 के लिए

10 std\:\:.*=NoStepInto 

आप निम्नलिखित महत्वपूर्ण

HKLM\Software\Microsoft\VisualStudio\8.0\NativeDE\StepOver

लिए नियम जोड़ने की जरूरत:

आप मानक पुस्तकालय के पूरे से बचना चाहते हैं, बस नीचे दिए नियम सेट

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