セグメンテーション違反があります。gdb でデバッグすると、スタックの最初のフレームは
MyClass() の typeinfo で
誰かが typeinfo について何か知っていますか?
セグメンテーション違反があります。gdb でデバッグすると、スタックの最初のフレームは
MyClass() の typeinfo で
誰かが typeinfo について何か知っていますか?
同じ問題がありました。他の誰かを助けるかもしれないので、解決策を投稿してください:
プロジェクトを完全に再構築することで問題が解決しました。オブジェクト ファイルの一部が異なるバージョンのヘッダー ファイルを使用していたため、不整合が発生していました。依存関係が正しく表現されていないため、実際のバグはビルド スクリプトにあります。
この場合、フレームの上部にある typeinfo は完全にニシンであると思われます。独自のコードが見つかるまでコールスタックを調べて、その時点でより詳細に調べる必要があります。ほとんどの場合、null ポインターから typeinfo を取得しようとしていますが、それが単なるガベージ ポインター値である可能性はいくらかあります (あまり明白ではありません)。
RTTI は、少なくとも仮想メソッドを持つクラスにのみ適用されるため、仮想メソッドがあることを確認してください。
また、RTTI を直接 (dynamic_cast、typeinfo、typeid) または間接的に使用できることも覚えておいてください (catch は dynamic_cast に関して実装されているか、実装可能です)。