0

GameObjectから継承するクラスがありObjectます。両方のコンストラクターにステップインするとおかしくなりましたが、オブジェクトは問題なく作成されます。誰かが尋ねる前に、私はデバッグ ビルドを使用しています。披露させて:

編集人々が不満を言ったので、画像ではなく実際のコードを投稿します。

GameObject::GameObject(string name) : Object(name)
{
    // ...
}

Component* GameObject::AddComponent(SharedPtrComponent component)
{
    if (find(components.begin(), components.end(), component) == components.end())
    {
        components.push_back(component);
        return component.get();
    }

    return nullptr;
}

プログラムがGameObjectコンストラクターの最初の行 (つまり、初期化) を実行した後、ブレースとinObjectの間の空の行にスキップします。return nullptrAddComponent

どうしたの?

PS。エクスプレス版と究極版の両方でこれを試しました。まったく同じステップ シーケンス。そして、クリーニングなどを試みました。Objectコンストラクターも同様に動作しています。んん。

更新:わかりました、これでうまくいくかもしれません: これは、まだ奇妙なステッピングを示す最小限のプロジェクトです: VS2013 プロジェクト

4

2 に答える 2

0

デバッガーでコードをステップ実行するときに問題が発生した場合は、逆アセンブリ ビュー ( ALT + 8) に切り替えてステップ実行することをお勧めします。

アセンブリの多くを理解する必要はありません。説明書などを探してcallください。F11 キーを使用して (逆アセンブリ ビューから) 別の関数にステップcallインした場合は、実際のソース コードに戻ることができます (ある場合)。

于 2013-11-11T10:48:55.633 に答える