मैं के लिए कारणों का पता लगाने की कोशिश कर रहा हूँ:,अमान्य fastbin प्रविष्टि (मुक्त)
*** glibc detected *** ...: invalid fastbin entry (free): 0x00007fc384ced120 ***
कार्यक्रम कोर फेंक दिया तो मैं एक बहुत ही सरल इस के समान वर्ग के एक नाशक को यह वापस पता लगाने में सक्षम था:
class foo : public foo_base
{
...
...
std::vector<boost::weak_ptr<bar> > vec;
}
नाशक foo_base
में आभासी और foo
वेक्टर vec
में लागू न केवल निर्माता में और नहीं करने के लिए आवंटित किया गया है उसके बाद संशोधित
पता glibc त्रुटि ने उल्लेख किया vec._M_impl._M_start
मैं कहां से कारण के लिए खोज शुरू कर सकता है के समान है?
यह जानना कि एक फास्टबिन क्या है, यह अमान्य कैसे हो सकता है?
क्या यह एक डबल फ्री स्थिति हो सकता है, या इस मामले में ग्लिब निश्चित रूप से
double free
उठाएगा?
आप या तो अपने 'foo' को दोबारा मुक्त कर रहे हैं या आप कुछ आवंटित स्मृति के बाहर संग्रहीत कर रहे हैं (इस प्रकार आवंटन को "प्रबंधित करने" के लिए उपयोग की जाने वाली स्मृति में लिख रहे हैं)। –