मैं निम्नलिखित मानकों के साथ Valgrind चलाएँ:वालग्रिंड से पूर्ण कॉल स्टैक कैसे प्राप्त करें?
--leak-check=full --show-reachable=yes --leak-resolution=high --num-callers=100 --trace-children=yes
मेमोरी लीक में प्रवेश करें, तो मैं पूरी ढेर के साथ कुछ त्रुटि संदेश मिलते मुख्य अप करने के लिए पता लगा, लेकिन कुछ संदेशों ऐसा दिखाई देगा:
==3956== 1,999,140 (68,796 direct, 1,930,344 indirect) bytes in 5,733 blocks are definitely lost in loss record 8,842 of 8,845
==3956== at 0x4022AB8: malloc (vg_replace_malloc.c:207)
==3956==
कैसे क्या मैं इन त्रुटियों के लिए पूर्ण स्टैक ट्रेस प्राप्त कर सकता हूं?
वालग्रिंड का अंतिम रिलीज़ संस्करण केवल 50 तक - नॉन-कॉलर्स का समर्थन करता है। इसलिए, यह स्पष्ट नहीं है कि आप किस संस्करण का उपयोग कर रहे हैं। उपरोक्त स्टैक ट्रेस अपूर्ण दिखता है। यह आपके एप्लिकेशन को संकलित करने के तरीके से जोड़ा जा सकता है (उदाहरण के लिए विकल्प -फॉमिट-फ्रेम-पॉइंटर स्टैक ट्रेस को उत्पादन करना अधिक कठिन बना सकता है) – phd
टक्कर। (stackoverflow "टक्कर" पद करता है?) वही समस्या। -g के साथ एक आवेदन संकलन। यह malloc() से घिरा हुआ एक स्टैक ट्रेस के साथ संभावित मेमोरी लीक दिखाता है, जो मॉलोक(), और फिर मुख्य() नामक फ़ंक्शन, बीच में सब कुछ छोड़कर, मुख्य फ़ाइल() के समान फ़ंक्शन सहित फ़ंक्शंस को छोड़ देता है। ?? मैं ऑनलाइन उदाहरण देखता हूं जिसमें यह 3 स्टैक फ्रेम सीमा नहीं है .. ?? कोई विचार? – Samuel
मैं उबंटू 13.10 पर वैल्रिंड 3.8.1 का उपयोग कर रहा हूं और स्टैक निशान देखता हूं जिसमें सभी इंटरमीडिएट कॉल नहीं होते हैं। जीसीसी के साथ संकलन करते समय कोई ऑप्टिमाइज़ेशन नहीं है (या शायद मुझे चाहिए- ओजी या कुछ ...) – thoni56