c# रथम प्रबंधित(सी#) आवरण से मूल(सी++) कोड में कदम करने के लिए डिबगर कैसे संलग्न करें?




हिंदी सॉफ्टवेयर पैकेज (4)

मेरे पास C ++ फ़ंक्शन कॉल के आसपास एक आवरण है जिसे मैं सी # कोड से कॉल करता हूं। मूल सी ++ कोड में कदम रखने के लिए मैं विज़ुअल स्टूडियो में एक डीबगर कैसे जोड़ूं?

यह एक आवरण है जिसमे मेरे पास एक सी ++ फ़ाइल में परिभाषित GetData () कॉल है:

    [DllImport("Unmanaged.dll", CallingConvention=CallingConvention.Cdecl, 
               EntryPoint = "GetData", BestFitMapping = false)]
        public static extern String GetData(String url);

कोड क्रैश हो रहा है और मैं मूल कारण की जांच करना चाहता हूं।

धन्यवाद, निखिल


मिश्रित डिबगिंग 64 बिट मोड में समर्थित नहीं है (दृश्य स्टूडियो 2008 के अनुसार)।


WinDbg का उपयोग करने वाले सभी को:

1> सेटअप प्रतीकों

ये कमांड देखें (सहायता: कंसोल में .hh <command>)

.sympath
.sympath+ 
.symfix

2> स्रोत पथ सेट करें

.srcpath

3> प्रबंधित / मिश्रित मोड प्रोग्रामों को डीबग करने के लिए एसओएस विस्तार लोड करें।

(सुनिश्चित करें कि आपके पास extention पथ सेटअप सही है)

X86 के उपयोग के लिए Microsoft.NET \ फ्रेमवर्क \ v2.0.50727 जोड़ें-

.extpath 

लोड करने के लिए CLR के लिए ब्रेकपॉइंट सेट करें

sxe ld:mscorwks

(एफ 5 / जी) (मॉडेड बीपी पर एमएसकॉर्क्स्क्स डीएलएल के लिए रुको)

सुनिश्चित करें कि आपके पास पहले से लोड किए गए डुप्लिकेट sos extention नहीं है। देख:

.chain

अब हम एसओएस विस्तार को लोड करने के लिए तैयार हैं। :)

.loadby sos mscorwks

4> सभी प्रतीकों को पुनः लोड करें ..

.reload

अब आप सब सेट कर रहे हैं :)

(YMMV)


अपने प्रोजेक्ट के गुण पृष्ठ पर डीबग टैब की जांच करें एक "अप्रबंधित कोड डिबगिंग सक्षम करें" चेकबॉक्स होना चाहिए यह हमारे लिए काम किया जब हमने हमारे पुराने सी + + DLL के लिए एक नया .NET UI विकसित किया।

यदि आपका अप्रबंधित DLL किसी अन्य प्रोजेक्ट (थोड़ी देर के लिए वीएस 6 का उपयोग करके बनाया गया था) से बनाया गया है, तो सुनिश्चित करें कि आपके पास डीएलएल की पीडीबी फाइल डिबगिंग के लिए आसान है

दूसरा तरीका सी # एक्सई का उपयोग डीएलएल प्रोजेक्ट से चलाने के लिए लक्ष्य exe के रूप में करना है, तब आप सामान्य रूप से आपके डीएलएल को डीबग कर सकते हैं


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

इस तरह डिबगिंग को मिश्रित मोड डिबगिंग कहा जाता है। कुछ सुझावों के लिए इस ब्लॉग पोस्ट को देखें

मेरा मानना ​​है कि यह 64 बिट प्रक्रियाओं के लिए समर्थित नहीं है ... हालांकि उस बिंदु पर गलत होना अच्छा लगेगा।





debugging