私は次の原因を見つけようとしています:
*** 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 とは何かを知っているのに、なぜそれが無効になるのでしょうか?
double free
これはダブル フリーの状況でしょうか? それとも、この場合、glibc は間違いなく aを発生させますか?