2010-09-17 14 views
6

मैंने अभी अपना ऐप बनाया है जिसमें कुछ सी ++ और सी # कोड शामिल हैं और इसे किसी अन्य मशीन पर स्थापित किया गया है। जब मैं रिमोट डीबगर कनेक्ट करता हूं, तो मैं सी ++ कोड को ठीक से डिबग कर सकता हूं, और फिर भी कदम उठा सकता हूं। हालांकि, जब मैं सी # कोड डीबग करने का प्रयास करता हूं, तो प्रतीकों को लोड नहीं किया जाता है। मैंने विजुअल स्टूडियो में मॉड्यूल फलक लाने की कोशिश की है और सही .pdb फ़ाइल में ब्राउज़ किया है, लेकिन मुझे बस एक संदेश बॉक्स मिलता है जो मुझे बताता है कि यह मेल नहीं खाता है।मेरे प्रतीक (पीडीबी) स्थानीय पथ से क्यों नहीं लोड होंगे?

मुझे यह नहीं पता कि यह क्यों हो रहा है। मैंने यहां से chkmatch का उपयोग किया है: http://www.debuginfo.com/tools/chkmatch.html - जो रिपोर्ट करता है कि .exe और .pdb मैं चयन कर रहा हूं।

मैंने अपने सभी स्रोतों को मिटा दिया है, सब कुछ लाया है और पुनर्निर्मित किया है, इसलिए मुझे पूरा यकीन है कि मुझे कुछ पुराने गलत नहीं हैं .pdbs।

मुझे यह संबंधित प्रश्न The Symbol file MyFile.pdb does not match the module मिला है, लेकिन यह मूल प्रतीकों से मेल नहीं खाता है। मेरे मूल प्रतीक मेल खाते हैं, यह सिर्फ .NET असेंबली है जहां प्रतीक मिलान करने से इनकार करते हैं।

चीजों को जांचने के लिए कोई सुझाव बहुत स्वागत है।

धन्यवाद।

अद्यतन: मैं अब प्रतीकों को लोड करने में कामयाब रहा हूं! लेकिन ... समाधान दूरस्थ फ़ाइलों को प्रतीक फ़ाइलों की प्रतिलिपि बनाना था और उन्हें दूरस्थ फ़ोल्डर पर .exe और dll के समान फ़ोल्डर में रखना था। विजुअल स्टूडियो उन्हें मेरी स्थानीय मशीन से लोड करने से इंकार कर रहा है। यदि मैं मॉड्यूल विंडो में मॉड्यूल पर राइट क्लिक करता हूं और 'सिंबल लोड सूचना ...' का चयन करता हूं, तो यह उन पथों को दिखाता है जहां से यह प्रतीकों को लोड करने का प्रयास कर रहा है, और इसमें सही स्थानीय पथ हैं जहां पीडीबी फाइलें मेरे हैं मशीन। मैंने पीडीबीएस के लिए सुरक्षा और अभिगम नियंत्रण गुणों को देखा है, और सभी को सभी एक्सेस अनुमतियां दी हैं।

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

विजुअल स्टूडियो मेरी स्थानीय मशीन से प्रतीक लोड करने से इनकार क्यों करता है?

+0

आप फ़ाइलों पर कैसे हस्ताक्षर करते हैं? –

+0

एसडीके से signtool.exe का उपयोग करना।साइनटोल साइन/वी/पीएच/एफ "myCertfile.pfx"/p myCertfilePassword/t "http://timestamp.verisign.com/scripts.timestamp.dll" MyExeToSign.exe –

+0

मैं हस्ताक्षर करने और अक्षम करने की कोशिश करूंगा फिर यह देखने के लिए कि क्या होता है। –

उत्तर

8

यह है। .NET रिमोट डीबगिंग के लिए पीडीबी हमेशा रिमोट मशीन से लोड होता है। अतीत में मैं पीडीबी की रिमोट मशीन पर कॉपी कर रहा था, लेकिन मैं इसके बारे में भूल गया।

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/26/visual-studio-remote-debugging-and-pdb-files.aspx


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

यह रिमोट डीबगिंग प्रबंधित कोड के लिए एक आसान चाल की तरह लगता है। मुझे अभी एहसास नहीं हुआ था कि मैं कर रहा था!

3

यह पता होना चाहिए कि यह विजुअल स्टूडियो 2013 के साथ बदल गया है। 2013 तक पीडीबी को स्थानीय मशीन पर होना है।

http://msdn.microsoft.com/en-us/library/ms241613.aspx

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