2009-08-26 14 views
10

हाल ही में, मुझे एक ग्राहक से क्रैश डंप फ़ाइल मिली है। मैं समस्या को उस वर्ग में ट्रैक कर सकता हूं जिसमें गलत डेटा हो सकता है, लेकिन मुझे कक्षा में शून्य-सूचक मिला है, वास्तविक सूचक नहीं (शून्य-सूचक एक खिड़की-संपत्ति से आया है, इसलिए यह एक शून्य-सूचक था) । घड़ी विंडो में "ptr" का उपयोग करता है, तो दृश्य स्टूडियो 2005 बस सूचक मूल्य से पता चलता'अज्ञात नेमस्पेस' (सी ++) में डेटा डिबगिंग

namespace 
    { 
    class MyClass 
     { 
     ... 
     }; 
    } 

... 
void *ptr = ... 
// I know ptr points to an instance of MyClass, 
// and at this location I want to cast ptr to (MyClass *) in the debugger. 

: दुर्भाग्य से, वर्ग जो मैं करने के लिए सूचक कास्ट करने के लिए चाहता था, को एक गुमनाम नाम स्थान में था, इस तरह। यदि मैं "(MyClass *) ptr" का उपयोग करता हूं, तो डीबगर मुझे बताता है कि यह इसे नहीं डाला जा सकता है।

मैं पीटीआर को माइक्लास-पॉइंटर में कैसे डाल सकता हूं?

नोट: मैं अंत में एक मूर्ख नामित नेमस्पेस (स्रोत फ़ाइल के नाम की तरह) का उपयोग कर सकता हूं, और फिर "नामस्थान का उपयोग करके" का उपयोग कर सकता हूं, लेकिन मैं बेहतर समाधान की अपेक्षा करता हूं।

+1

बीटीडब्ल्यू, वीएस 2008 एक ही समस्या प्रदर्शित करता है। मैं एमएस खुद को एक नोट भेजने की सिफारिश करेंगे। – gimpf

उत्तर

8

यह MSDN में उल्लिखित है। ऐसा लगता है कि वॉच विंडो के अंदर एक अच्छा समाधान नहीं है (आप मुझे लगता है कि एक सूची से अपनी कक्षा का सजाया नाम प्राप्त कर सकते हैं)।

आपका "मूर्ख नामित नामस्थान" विचार ठीक काम करेगा, आप केवल एक मूर्ख वर्ग के साथ एक समान वर्ग घोषित कर सकते हैं और इसके बजाय उस प्रकार कास्ट कर सकते हैं।

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