6

मैं कक्षा पुस्तकालय विकसित कर रहा हूं। पुस्तकालय का उपयोग किसी अन्य प्रोग्राम द्वारा किया जाना चाहिए, एक .exe कोई स्रोत कोड नहीं है। लाइब्रेरी फ़ाइल स्थान इस exe के पैरामीटर के रूप में पारित किया गया है, उदाहरण के लिए: prog.exe lib.dllविजुअल स्टूडियो: बाहरी निष्पादन योग्य के साथ लाइब्रेरी को डीबग कैसे करें?

मैं इस .exe का उपयोग करके लाइब्रेरी डीबग करना चाहता हूं (ब्रेकपॉइंट्स जैसे डीबग टूल का उपयोग करके) मैं विजुअल का उपयोग कैसे करूं सी # ऐसा करने के लिए?

मुझे एक संभावित तरीका मिला, जो एक लाइन प्रोग्राम बना रहा है जो prog.exe lib.dll निष्पादित करता है। निश्चित रूप से एक बेहतर तरीका है?

उत्तर

1

आप पहले से ही एक बाहरी प्रोग्राम है जो आपके पुस्तकालय का उपयोग करते हैं (जो तब भी एक .net अनुप्रयोग है, मुझे लगता है), तो आपको उस प्रोग्राम शुरू करने और प्रक्रिया के लिए डिबगर संलग्न कर सकते हैं (डीबग ->संलग्न मेनू में को संसाधित करने के लिए)। फिर आप अपने क्लास लाइब्रेरी कोड में ब्रेकपॉइंट्स सेट कर पाएंगे और इसे डीबग कर पाएंगे। सुनिश्चित करें कि exe एक dll और pdb फ़ाइल का उपयोग करता है जो आपके कोड (नवीनतम निर्माण) के साथ समन्वयित है।

+1

एक्सप्रेस संस्करणों सुविधा बाहरी प्रक्रियाओं डिबग करने की जरूरत नहीं है : http://msdn.microsoft.com/en-us/library/c6wf8e4z.aspx – Robert

2

प्रोजेक्ट के डीबग विकल्पों में "बाहरी कार्यक्रम प्रारंभ करें" का चयन करें और exe का पथ दर्ज करें। डीबगिंग शुरू करने पर वीएस एक्सई शुरू करेगा, इसे डीबगर के रूप में संलग्न करें।

जब आपकी लाइब्रेरी लोड हो जाती है तो आपके कोड पर कोई ब्रेकपॉइंट सक्रिय हो जाएगा।

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

+0

"प्रारंभिक कार्यक्रम प्रारंभ करें" प्रोजेक्ट के डीबग विकल्प में प्रकट नहीं होता है। मेरे पास केवल कमांड लाइन तर्क और कार्यशील निर्देशिका है। मैंने कमांड लाइन तर्क के लिए प्रोग्राम पथ जोड़ने का प्रयास किया, यह अभी भी डिबगिंग की अनुमति नहीं देता है। –

+0

क्या ऐसा इसलिए है क्योंकि मेरे पास एक्सप्रेस संस्करण है? –

+0

@ लुइस: यह एक मुद्दा हो सकता है (एक्सप्रेस नहीं है, इसलिए जांच नहीं कर सकता)। – Richard

0
  1. आप शायद विंडबग को आजमा सकते हैं। एसओएस एक्सटेंशन के साथ, विजुअल स्टूडियो के साथ आप जो कुछ भी करते हैं, वह मोटे तौर पर संभव है।
  2. सब आप चाहते हैं पुस्तकालय डिबग करने के लिए है, तो तुम क्यों कि पुस्तकालय एक exe आपने बनाया है और पुस्तकालय के भीतर झांककर में लोड नहीं कर सकता,
संबंधित मुद्दे