我試圖找到病因:無效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
我在哪裏可以開始搜索的原因是什麼?
知道什麼是fastbin,它怎麼會失效?
難道這是一個雙免費的情況下,或將glibc明確提出
double free
在這種情況下?
您要麼釋放你的'foo',要麼在某些分配的內存之外存儲(因此寫入用於「管理」分配的內存)。 –