2013-05-28 5 views
7

मैं अभी भी सी ++ के साथ एक सापेक्ष नौसिखिया हूं, और मैंने तीसरे पक्ष के डीएलएल में एक समस्या में भाग लिया है कि मैं अपने मूल सी ++ डीएलएल से स्थिर रूप से लिंक कर रहा हूं। मैं अपने डीएलएल डीबग करने के लिए विजुअल स्टूडियो 2012 का उपयोग कर रहा हूं।WinDbg मुझे क्या बता सकता है कि विजुअल स्टूडियो नहीं कर सकता है?

(Fwiw, तीसरे पक्ष के DLL Sybase ओपन क्लाइंट है, और मैं एक सी # निष्पादन मैं लिखा है, जो गतिशील रूप से मेरी सी ++ DLL लोड करता है के माध्यम से मेरी DLL डिबगिंग कर रहा हूँ।)

मैं दृश्य का उपयोग किया है स्टूडियो को अलग-अलग हिस्सों में कदम उठाने और तीसरे पक्ष के डीएलएल के लिए रजिस्टरों और मेमोरी उपयोग को देखने के लिए। विजुअल स्टूडियो ने मुझे अपनी प्रक्रिया के अंदर क्या हो रहा है, इस बारे में बहुत अच्छी जानकारी दी है, लेकिन मुझे लगता है कि जो कुछ मैं देख रहा हूं उससे कहीं अधिक हो सकता है, और शायद इसे पाने के लिए एक आसान या अधिक प्रभावी तरीका हो सकता है।

मैंने पढ़ा है कि WinDbg एक बहुत शक्तिशाली उपकरण है, लेकिन इसे अच्छी तरह से उपयोग करने के लिए सीखने में काफी समय और प्रयास लगता है। मेरा सवाल है: क्या WinDbg का उपयोग करना सीखने के प्रयास के लायक हैं, या विजुअल स्टूडियो में डिबगिंग टूल मुझे एक ही जानकारी दे सकते हैं?

+6

कुछ समय के लिए विजुअल स्टूडियो डीबगर में विंडोज ढेर चलने का प्रयास करें। फिर वास्तव में * सफल * WinDbg के साथ ऐसा करने में। – WhozCraig

+1

WinDbg स्क्रिप्ट आर्केन के रूप में इसके वाक्यविन्यास के रूप में वीएस की अनुमति के मुकाबले शक्तिशाली हो सकता है, हालांकि शायद एक एडिन या मैक्रो के साथ आप वीएस में समान कार्यक्षमता प्राप्त कर सकते हैं। – 0xC0000022L

+5

मेमोरी लीक खोज, स्वचालित क्रैश विश्लेषण, रिसाव ट्रेसिंग, मेमोरी सर्चिंग, आसानी से सभी धागे के कॉल स्टैक्स को डंप करने की क्षमता, ब्रेकपॉइंट्स हिट होने पर ब्रेकपॉइंट्स सेट/अनसेट करने की क्षमता, उन मशीनों पर डीबगिंग, जिनके पास वीएस इंस्टॉल नहीं है, .NET डिबगिंग, लॉगिंग, स्क्रिप्टेबल, लूप का समर्थन करता है .. आदि .. मूल रूप से जो आपको मिलता है वह हल्का होता है, कोई बीएस डीबगर नहीं होता है जिसमें कई टूल होते हैं जो दर्दनाक कार्यों को स्वचालित करते हैं जो वीएस का उपयोग करके मुश्किल या असंभव हैं, जो उच्चतम समर्थन आप देखेंगे वह है कि एमएस उपयोग यह विंडोज़ डीबग करने के लिए, खड़ी सीखने की वक्र लेकिन अंततः बहुत पुरस्कृत – EdChum

उत्तर

3

मेरा प्रश्न है: यह WinDbg उपयोग करने के लिए, या दृश्य स्टूडियो में डीबगिंग टूल मुझे बहुत ज्यादा एक ही जानकारी दे होगा जानने के लिए प्रयास के लायक है?

यह वास्तव में इस बात पर निर्भर करता है कि आप किस प्रकार के प्रोग्रामिंग कर रहे हैं।

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

इनमें से अधिकांश या तो वीएस प्रकार डीबगर के साथ मुश्किल या असंभव है।

यह मेरे लिए लगभग असंभव है, या यहां कोई और, यह बताने के लिए कि आपको WinDBG का उपयोग करना सीखना चाहिए या नहीं। यह निश्चित रूप से आपको जानने के लिए कोई नुकसान नहीं करेगा, लेकिन इसकी आवश्यकता के बिना आपके जीवन में लंबे समय तक जाना संभव है।

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