2009-10-25 11 views
10

मैं अपने DLL में अपवाद होने पर एक स्टैकट्रैक उत्पन्न करने के लिए Jochen Kalmbach's StackWalker class from CodeProject का उपयोग करता हूं।क्या Windows में अंतर्निहित DbgHelp.dll है? क्या मैं वहां पर भरोसा कर सकता हूं?

यह Dbghelp.dll

पर निर्भर करता है

Dbghelp.dll विंडोज विस्टा, WS2008, विंडोज 7 के लिए अंतर्निहित है?

मुझे माइक्रोसॉफ्ट से The Debugging Tools for Windows पता है, और मुझे पता है कि उस पैकेज में DbgHelp.dll जहाजों को पता है। लेकिन मुझे अपनी मशीन पर% windir% \ system32 में DbgHelp.dll भी मिला।


यह डिफ़ॉल्ट रूप से स्थापित नहीं है, तो वहाँ एक रास्ता मुझे इसे पुन: वितरित करने के लिए डिबग मेरी DLL के बनाता है के साथ है?

उत्तर

10

Microsoft says:

"। DbgHelp पुस्तकालय Dbghelp.dll द्वारा कार्यान्वित किया जाता इस DLL ऑपरेटिंग सिस्टम में शामिल है।"

ध्यान दें कि वर्तमान में विंडोज़ के लिए डिबगिंग टूल्स के साथ संस्करण शामिल संस्करण एक ही संस्करण नहीं हो सकता है जो ऑपरेटिंग सिस्टम के साथ शामिल है।

+0

यह आंशिक रूप से सच है, जो मैं कहने में सक्षम हूं, यह एनटी 4/विंडोज 2000 के साथ बंडल नहीं किया गया है, लेकिन एक्सपी/सर्वर 2003 के बाद से मुझे किसी भी गायब डीएलएल के साथ कोई समस्या नहीं है, लेकिन यह याद रखना उचित है। यदि यह गुम है तो आप हमेशा उस मशीन पर डिबगिंग टूल डाउनलोड और इंस्टॉल कर सकते हैं और यह काम करेगा। छोटे मुद्दों को डीबग करने के लिए मुझे विंडोज 2000 के साथ अतीत में ऐसा करना पड़ा था। –

2

यह सुनिश्चित करने के लिए कि आप जिस संस्करण की अपेक्षा कर रहे हैं उसे प्राप्त करने के लिए अपने आवेदन के साथ dbghelp.dll को शिप करना आम तौर पर सबसे अच्छा है। मेरा मानना ​​है कि इस कारण से यह पुनर्वितरण योग्य है।

हालांकि, यह याद रखना महत्वपूर्ण है कि डीबग रनटाइम लाइब्रेरी पुनर्वितरण योग्य नहीं है। आपका डीबग बिल्ड अभी भी होना चाहिए (वीसी ++ शर्तों में) "रिलीज" बनाता है।

+0

फिर भी यह msvcrt.dll पर निर्भर करता है (फ़ाइल नाम में संस्करण के संकेत के बिना), इसलिए यह "स्टैंडअलोन" के रूप में वितरित नहीं है। – Janosch

+0

ध्यान दें कि http://go.microsoft.com/fwlink/?LinkId=294840 के अनुसार आप 'dbghelp' और सह डीएलएल स्वयं को नहीं भेज सकते हैं, बल्कि' .msi', "पैकेज के रूप में unmodified," शामिल नहीं है डीएलएल ने कहा: 'प्रोग्राम फ़ाइलें \ विंडोज किट \ 8.1 \ डिबगर्स \ रेडिस्ट \ X86 डिबगर्स और टूल्स-x86_en-us.msi प्रोग्राम फ़ाइलें \ विंडोज किट \ 8.1 \ डिबगर्स \ रेडिस्ट \ X64 डिबगर्स और टूल्स-x64_en-us। msi'। – vladr

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