2011-12-12 18 views
8

में 'विश्लेषण स्मृति' टूल का उपयोग करके मैं एक सी ++ एप्लिकेशन विकसित करने के लिए क्यूटी निर्माता का उपयोग कर रहा हूं, और मैं कुछ मेमोरी लीक को ट्रैक करने की कोशिश कर रहा हूं।क्यूटी निर्माता

मैंने these instructions * का पालन किया है, और मेरे उबंटू मशीन पर वालग्रिंड नहीं है।

मैं अपना एप्लिकेशन विश्लेषण मेमोरी सेक्शन से शुरू करता हूं, और स्टॉप बटन पर क्लिक करने के बाद मुझे बताया गया है कि Tool Analyze Memory finished, 928 issues found। हालांकि, विश्लेषण खंड में कोई परिणाम नहीं दिखाई देता है, जो खाली रहता है।

क्या मैं कुछ गलत कर रहा हूं? मुझे स्मृति विश्लेषण के परिणाम कहां मिल सकते हैं?


* Confusingly, निर्देश एक 'रिलीज' विन्यास निर्माण के लिए पूछना है, लेकिन इस का चयन क्यूटी में एक चेतावनी कह रही है कि स्मृति विश्लेषण उपकरण एक डिबग विन्यास की आवश्यकता होती है। मैंने दोनों तरीकों से गोल करने की कोशिश की है।

उत्तर

11

मैंने इसे अपने क्यूटी निर्माता में चेक किया है और यह काम करता है। मैं संस्करण 2.3.1 का उपयोग क्यूटी 4.7.4 और वालग्रिंड 3.7.0 के साथ कर रहा हूं। मैंने इसे डीबग बिल्ड कॉन्फ़िगरेशन के साथ dropsite example पर परीक्षण किया है। मैंने इसे अपने सीएमके आधारित प्रोजेक्ट (compiled -g और -O0 झंडे के साथ) के साथ भी परीक्षण किया है और यह भी काम करता है। सुनिश्चित करें कि शुरू बटन के आगे Valgrind Memory Analyzer चुना गया है। उसी बार आपको तीर आइकन मिलेगा। उनके आगे फनल का प्रतीक है (मुझे लगता है)। इसे क्लिक करें और सुनिश्चित करें कि आपकी रुचि रखने वाली त्रुटियों की जांच की जा रही है।

यदि यह काम नहीं करेगा, और आप कंसोल से वालग्रिंड टूल का उपयोग नहीं करना चाहते हैं, तो अन्य Valgrind GUIs वाल्केरी जैसे हैं।

संपादित करें: मैंने Qt निर्माता को संस्करण 2.4.0rc1 में अद्यतन किया है और इसे मेरे सीएमके प्रोजेक्ट के साथ चेक किया है। कुछ सौ मुद्दों की रिपोर्ट करते हुए, यह भी कोई परिणाम नहीं दिखाया। फ़नल आइकन पर क्लिक करने के बाद इसका समाधान External errors पर जांच रहा था।

EDIT2: अंतिम 2.4.0 अंक में तय किया गया था।

+2

समस्या नवीनतम क्यूटी निर्माता 3.2.1 के साथ वापस आई। 'बाहरी त्रुटियों' के लिए +1। यह मेरे लिए काम किया! धन्यवाद! – mchiasson

+0

और अभी भी 3.6.0 में मौजूद है। बाहरी त्रुटियों को हल करता है। धन्यवाद! – marmistrz

1

आपने कुछ भी गलत नहीं किया। वालग्रिंड मेनू में, फ़िल्टर आइकन दबाएं और External Errors चुनें। आप सभी मुद्दों को दिखाई देंगे। जो संभवतः आपके आवेदन से नहीं हैं, लेकिन क्यूटी- या अन्यथा संबंधित हैं, इसलिए आप उन्हें अक्सर अनदेखा कर सकते हैं।

X issues found मुद्दों की कुल संख्या को संदर्भित करता है; जब External Errors अचयनित किया गया है, केवल आपके ऐप से संबंधित लोग दिखाई देते हैं। यदि कोई नहीं दिखाई देता है, तो Valgrind को आपके ऐप में कोई मेमोरी रिसाव नहीं मिला है।

+0

क्या इसका मतलब यह है कि मेमोरी रिसाव हर बार बाहर होता है? – CaptainDaVinci

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