2012-10-29 32 views
7

का उपयोग कर स्रोत कोड के माध्यम से कदम उठाने के बाद मैंने हाल ही में देशी से प्रबंधित कोड प्रोग्रामिंग में स्विच किया है। मैं .NET का उपयोग कर रहा हूँ।विंडबग एसओएस एक्सटेंशन

चूंकि मैं कुछ समय के लिए विंडबग का उपयोग कर रहा हूं, इसलिए मैं इसे प्रबंधित कोड डिबगिंग के लिए भी उपयोग करना चाहता हूं।

मेरी खोज ने मुझे एसओएस (स्ट्राइक का बेटा) एक्सटेंशन में लाया है, जिसमें काफी शक्तिशाली आदेश हैं।

भले ही मैं एसओएस में उपयोग किए जाने वाले अधिकांश आदेशों को समझता हूं, फिर भी मैं स्रोत कोड के माध्यम से सही तरीके से कदम उठाने का कोई तरीका नहीं ढूंढ पा रहा हूं, जैसा कि मैं मूल कोड के लिए पी और टी निर्देशों का उपयोग कर सकता हूं।

यह डिबगिंग अनुभव को मुश्किल बनाता है, और मैं वास्तव में इसे डिबग करते समय कोड के माध्यम से कदम उठाना चाहता हूं।

मैंने इस पर थोड़ा सा शोध किया और पाया कि यह विंडबग के 6.7.05.0 संस्करण का उपयोग करना संभव था जिसमें एमएस एकीकृत प्रबंधित डिबगिंग जारी कर रहा था, लेकिन बाद के संस्करणों में वापस लुढ़का।

फिर भी, मुझे एसओएस के माध्यम से डीबगिंग करते समय "स्रोत" कोड के माध्यम से कदम उठाने में सक्षम होने में बहुत दिलचस्पी है। विशेष रूप से क्योंकि यह वास्तव में मेरे डिबगिंग अनुभव में वास्तव में बाधा डाल रहा है।

क्या यह हासिल करने का कोई तरीका है?

यह (या व्यावहारिक कामकाज) कैसे करें इस पर कोई मदद की सराहना की जाती है।

उत्तर

6

विंडबग एक दुर्घटनाग्रस्त प्रक्रिया के minidumps का विश्लेषण करने पर चमकता है। हालांकि यह एक प्रबंधित डीबगर नहीं है।

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

  • आप अप्रबंधित डिबगिंग सक्षम करना होगा, परियोजना + गुण, डीबग टैब, विकल्प
  • वी.एस. एक 32-बिट प्रक्रिया है ताकि आप केवल एसओएस के 32-बिट संस्करण का उपयोग कर सकते टिकटिक। प्रोजेक्ट + प्रॉपर्टीज, टैब बनाएं, सुनिश्चित करें कि यदि आपने विंडोज़ के 64-बिट संस्करण का उपयोग कर रहे हैं तो आपको x86 चुना गया है।

डीबगिंग प्रारंभ करें और तत्काल विंडोज पर स्विच करें। .load sos.dll टाइप करें, आपको extension C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll loaded जैसे संदेश दिखाना चाहिए। टाइप करें! मदद करें और सत्यापित करें कि आप सूचीबद्ध एसओएस कमांड देखते हैं।

5

! Sosex.mt और! Sosex.mgu का उपयोग करने का प्रयास करें। 'पी' कमांड विज्ञापन के रूप में काम करना चाहिए।

+1

हे स्टीव, एसओएसईएक्स के डेवलपर से जवाब देने के लिए यह अच्छा है ..!मेरा मुख्य उद्देश्य यह सुनिश्चित करना है कि जैसे ही मैं कोड के माध्यम से कदम उठाता हूं, मैं डीबगर में हाइलाइट किए गए कोड की सही रेखा देख सकता हूं। जबकि मैं एसओएस के साथ ऐसा करने में असमर्थ हूं, और आपके जवाब से मैं इकट्ठा करता हूं कि "! Sosex.mt" और "! Sosex.mgu" देशी कोड के लिए टी और gu के समकक्ष होंगे। लेकिन इन आदेशों को निष्पादित करने से स्रोत विंडो में कोड की इसी पंक्ति को भी हाइलाइट किया जाएगा? आपके उत्तर के लिए दोबारा धन्यवाद ! – Dev28

+2

यह हो सकता है कि WinDbg के बाद के संस्करणों में स्रोत सिंक्रनाइज़ेशन सही तरीके से काम नहीं करेगा। दुर्भाग्य से, मेरे पास उस हिस्से पर कोई नियंत्रण नहीं है। हालांकि, अगर आप! Muf एक्सटेंशन का उपयोग करते हैं, तो आप अपने स्रोत कोड को अच्छी तरह से सिंक कर सकते हैं। यह कोड विंडो में हाइलाइट जितना अच्छा नहीं है, लेकिन यह काम करता है। –

+0

धन्यवाद स्टीव। अगर आप "WinDbg के बाद के संस्करण" वास्तव में क्या करेंगे, तो यह आपकी मदद करेगा? – Dev28

0

क्या आप चाहते हैं WinDbg के लिए आप इन चरणों का पालन कर सकता है स्रोत कोड जोड़ने का काम करने का है: फ़ाइल को

  1. जाएं> स्रोत फ़ाइल पथ, स्रोत फ़ाइलों के साथ चयन फ़ोल्डर।
  2. देखें-> कॉल स्टैक पर जाएं, यह एक नई विंडो खुल जाएगा।
  3. कॉल स्टैक में नेविगेट करें और प्रासंगिक प्रविष्टि पर क्लिक करें, यह कोड ब्राउज़र के साथ एक विंडो खुल जाएगा।