2009-10-20 16 views
6

कई क्यूटी कक्षाएं पिंपल का उपयोग करती हैं, इसलिए वे वीएस के डीबगर के लिए बहुत अपारदर्शी हैं।डीबगिंग के दौरान मैं क्यूटी ऑब्जेक्ट्स की सामग्री कैसे देखूं?

यह परेशान है जब मैं कुछ आंतरिक क्यूटी स्थिति देखना चाहता हूं यह देखने के लिए कि मेरा कोड गलत कर रहा है या अगर मुझे गलत चीजें हैं कि चीजें कैसे खड़ी हैं।

मैं क्यूटी वीएस एड-इन (1.1.0) का उपयोग कर रहा हूं, लेकिन यह मदद नहीं करता है।

कोई विचार?

अद्यतन

मेरे autoexp.dat फ़ाइल क्यूटी सामान से भर जाता है, लेकिन मैं अभी भी भारी वर्गों (QWidget, QTcpSocket, आदि) के अंदर देखने में सक्षम नहीं हूँ।

मैं सरल वर्ग सामग्री देख सकता हूं, इसलिए नीचे autoexp.dat काम कर रहा है, लेकिन QWidget के अंदर देखने की कोशिश नहीं कर रहा है।

अद्यतन 2

किसी कारण से, टिप्पणियां पढ़ने और अधिक देखने के बाद, यह काम करता है, और मैं डेटा सामान देख सकते हैं।

मुझे नहीं पता कि औसत समय में क्या हुआ (जब मैंने अभी काम किया और इसे अनदेखा किया), लेकिन मुझे पहले डेटा देखने में समस्याएं थीं।

मैं "बस काम करता हूं" उत्तर स्वीकार कर रहा हूं, क्योंकि मैं एक बाउंटी प्रश्न को हटा नहीं सकता हूं और यह निकटतम उत्तर उपलब्ध है। (Autoexp-dat सिर्फ डीबग लाइनों को सुंदर रूप से स्वरूपित करता है, जो पहले से दिखाई देता है जो पहले से दिखाई देता है)

+3

वीएस के बजाय क्यूटी निर्माता पर स्विच करने के बारे में कैसे? :-) – ephemient

+0

QtCreator के साथ यह वही समस्या है लेकिन हां आपको इसे आज़माएं। –

+3

यह वही समस्या नहीं है, क्यूटी निर्माता आपके निष्पादन योग्य को 'gdb' के लिए कुछ डीबगर मैक्रोज़ जोड़ता है। तो आप कई क्यूटी वस्तुओं की सामग्री को देखने में सक्षम हैं। –

उत्तर

-1

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

+0

यह यहां भी करता है। मुझे आश्चर्य है कि समस्या क्या थी? जब मैंने पहले डीबग करने की कोशिश की तो शायद खराब स्टैक या कुछ भ्रष्टाचार। मुझे फिर से देखने के लिए धन्यवाद। :) – Macke

1

आपको अपने डीबगर के लिए कस्टम डंपर्स जोड़ने की आवश्यकता है।

जीडीबी के लिए पूर्व-निर्मित हैं। आपको अन्य डिबगर्स के लिए अपना खुद का रोल करना पड़ सकता है, हालांकि विजुअल स्टूडियो के लिए autoexp.dat फ़ाइल को ट्वीव करके कुछ सभ्य परिणाम प्राप्त करना संभव है। इस फ़ाइल को बदलने के तरीके के लिए ऑनलाइन संसाधनों के बहुत सारे हैं।

+0

मुझे उस फ़ाइल के बारे में पता है। मुझे पता नहीं था कि मैं पहले से ही डीबगर की तुलना में अधिक जानकारी प्रदान करने के लिए इसका उपयोग कर सकता हूं। मैं इस पर गौर करूंगा। – Macke

+0

दाएं - आप किसी भी तरीके से कॉल नहीं कर सकते हैं, लेकिन कई क्यूटी ऑब्जेक्ट्स में दिलचस्प डेटा छिपा हुआ है - अक्सर 'd' ptr के पीछे, ताकि आप वह डेटा दिखा सकें। – Thomi

+0

लेकिन क्या मुझे मैन्युअल रूप से सभी Qt को autoexp.dat में जोड़ने की ज़रूरत नहीं है? फिलहाल यह बहुत कम काम है। ;) – Macke

3

यह मदद कर सकता है http://daniel-albuschat.blogspot.com/2008/02/qt-debugging-with-visual-studio-2005.html

IIRC विंडोज के लिए क्यूटी की स्थापित एक autoexp.dat फ़ाइल शामिल -
सुधार, यह qt-vs-addin

+0

लिंक पर Vista के रूप में चलाने के बारे में एक अच्छा बिंदु था, लेकिन मैं भारी वर्गों (QWidget, आदि) को याद कर रहा हूं। मेरे autoexp.dat में पहले से ही qt-vs-addin से सामान था। शायद यह क्यूटी के लिए मेरी प्रतीक फाइलों में कुछ गड़बड़ है। – Macke

0

ऐसा लगता है आपके भाग्य से बाहर हो सकता है का हिस्सा है।

वर्तमान में इस पेज क्यूटी wariables के लिए मैक्रोज़ autoexp.dat में जोड़ा जा सकता का सबसे पूरी सूची है: QT with Visual Studio 2008 (updated for Qt 4.5.2)

ActiveQt भी आशाजनक लगता है, लेकिन यह आप के लिए एक overkill का एक सा हो सकता है।

इसके अलावा, आपको अपनी अभिव्यक्तियां रोल करना होगा, या शायद एक विजुअल स्टूडियो डीबगर विजुअलाइज़र लिखना होगा। (इसके बारे में अधिक जानकारी CodeProject या MSDN)

चूंकि वहां ऐसा कुछ भी नहीं है, इसलिए यह खरोंच से विकास के लिए एक अच्छा अवसर हो सकता है।:)

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