मेरे मूल सी ++ प्रोग्राम के लिए विजुअल स्टूडियो में मैं डीबग के दौरान कुछ चरों का साजिश प्राप्त करना चाहता हूं। अधिकतर मैं autexp.dat को संपादित करके ऑब्जेक्ट्स के टेक्स्टुअल प्रस्तुति का उपयोग करता हूं। लेकिन कुछ चर के लिए पाठ रूप में मूल्य रखने के बजाय साजिश रखना बेहतर होता है।विजुअल स्टूडियो में क्या मैं अपना वैरिएबल ब्रेकपॉइंट में प्लॉट कर सकता हूं?
अब तक मैं एक समारोह plot(const void* address,const char* type)
का इस्तेमाल किया है, और चर पता & प्रकार देने से तत्काल खिड़की यह कहा जाता है, और आंतरिक रूप से उचित प्रकार से यह कास्टिंग।
लेकिन इस विधि दो नुकसान हैं:
- पहले समारोह लगभग कभी ओवरलोडिंग से काम करता है कि, जब डीबगर से एक समारोह बुला है (इसलिए मैं एक दूसरे पैरामीटर के रूप में प्रकार पारित करने के लिए किया था), और समारोह कॉल कभी कभी दुर्घटनाओं, हालांकि कोड के भीतर से बुलाया जाने पर यह पूरी तरह से काम करता है।
- दूसरा, साजिश के लिए एक सी ++ फ़ंक्शन लिखने के बजाय, मुझे लिखने के बिना C++ ऑब्जेक्ट के आंतरिक डेटा देने के लिए एक स्क्रिप्टिंग भाषा (जैसे autoexp.dat या VBScript) रखने में दिलचस्पी है, ताकि वह किसी भी रैपर को लिख सके, ताकि मैं डेटा को फ़ाइल में संग्रहीत करने या इसे साजिश करने के लिए स्क्रिप्ट का उपयोग कर सकता हूं।
सामान्य तौर पर मैं मैटलैब या चौधरी आईडीई, जहां मैं कुछ चर बाहर से प्लॉट कर सकते हैं जब प्रोग्राम एक डिबग ब्रेक में है की तरह कुछ है करने के लिए दिलचस्पी है।
जब आप कहते हैं कि "साजिश", आप एक डिबग को तोड़ने में जबकि चर के बारे में जानकारियां सभी तरह के होने का अर्थ यह करते हैं? यह बहुत स्पष्ट नहीं है ... – Klaim
"प्लॉट" का उपयोग करके सामान्य शब्द में मेरा मतलब है कि मेरे लिए उपलब्ध चर/ऑब्जेक्ट के सभी डेटा तक पहुंच है ताकि मैं इसे किसी भी रूप में प्रस्तुत कर सकूं (जैसे कि किसी विशेष प्रारूप में फ़ाइल में संग्रहीत करना) इस विशेष संदर्भ में, "साजिश" का मतलब है कि इसे स्क्रीन पर प्लॉट करें (जैसे कि मैं 2 डी प्लॉट के रूप में वेक्टर/सरणी प्लॉट कर सकता हूं) – abir