ここのコードスニペットで分離するのが難しい特定のケースがありますが、それを説明することができます...
私はクラスAを持っています:パブリックBとAはあるタイプのメンバーポインタを持っていますfoo*f。Aの仮想デストラクタには、次のようなものがあります。
A::~A() { shutdown(); }
ここで、shutdownは非仮想であり、次のようになります。void A :: shutdown(){delete f;}
実行時に、これにより「アクティブな例外なしで呼び出された終了と呼ばれる純粋仮想メソッドが中止されました(コアダンプ)」が得られますが、デストラクタの本体からshutdown()を削除して直接呼び出し、デストラクタを実行させると...私はもうこれを取得しません...
この種の動作を引き起こしている可能性があるのは何ですか?gdbを使ってステップしてみましたが、それは巨大で、何を探すべきかさえわかりません。どんなアイデアでも大歓迎です!