मेरे पास जीडीबी में एक सूचक है, मैं यह कैसे पता लगा सकता हूं कि इसे पहले ढेर पर आवंटित किया गया था?जीडीबी में, कैसे पता लगाएं कि ढेर पर एक पता किसने किया?
WinDBG में, इस वेलग्रिंड के बाद से gflags /i <*exe> +ust
को चालू करने से मुझे बता सकते हैं जहां स्मृति आवंटित किया जाता है (जब यह कुछ लीक का पता लगाता है), मुझे लगता है यह भी संभव है के बाद !heap -p -a <0x12345678>
के द्वारा किया जा सकता है?
(यह है नहीं watchpoint के बारे में। यह स्थिति है जहाँ मैं बेतरतीब ढंग से GDB, आवेदन में में तोड़, एक सूचक को देखो और पता करने के लिए "जो स्मृति के इस टुकड़े निर्मित" चाहते दिया जाता है?)
जीडीबी में रिवर्स डीबगिंग का उपयोग करना एक बहुत ही उपन्यास तरीका है और शायद इस समस्या को हल करने के लिए सही तरीका है। मुझे जीडीबी 7.1 - नवीनतम स्थिर संस्करण के साथ उस दृष्टिकोण के साथ कुछ समस्या का सामना करना पड़ा। रिवर्स डिबगिंग जीडीबी में एक नई सुविधा है इसलिए मुझे इसे ठीक करने के लिए हेड (7.2) की जांच करने की आवश्यकता है।
यह शायद जीडीबी दृष्टिकोण की परिपक्वता के बारे में कुछ कहता है लेकिन मुझे लगता है कि यह अधिक परिपक्व होने पर निश्चित रूप से उपयोग किया जाना चाहिए। (बहुत बढ़िया फीचर!)
धन्यवाद! आपके दृष्टिकोण और केएस 1322 दोनों मान्य लगते हैं। Mtrace और glib आवंटन डीबगिंग के बारे में जानना अंतर्दृष्टिपूर्ण है। दूसरी तरफ, मुझे लगता है कि केएस 1332 का दृष्टिकोण अधिक चालाक है और शायद जीडीबी (इस प्रकार प्रश्न का शीर्षक) के करीब है। मैं दोनों के साथ प्रयोग करूँगा और सही जवाब चुनने से पहले अभ्यास में कौन सा बेहतर होगा। – kizzx2