none
デバック時にMFCのソースコードを表示したい RRS feed

  • 質問

  • お世話になります。

    VS2010 C++MFCを使用しています。

    できるかどうかもわからないのですが、デバック時に、呼び出し履歴でCView::OnPaint()をDBクリックすると
    逆アセンブルが表示されるのですが、ソースコードが表示されるようにる方法ってありますでしょうか。

    なければ、MFCソースを直接見る方法でもいいのですが、質問するとソースコードをみたらとかアドバイスいただけるのですが、どうすればMFCのソースを参照することができるのか、わかりません。

    2013年5月7日 8:41

すべての返信

  • まず、デバッグ時に、MFCのソースコードへのステップインは通常はできます。
    少なくとも2008までのバージョンではできてます。
    それができない理由はいくつか考えられるのですが、

    1.そもそもデバッグビルドされていない。
    2.debug構成でない状態から起動した。
    3.VSから起動しなかった。

    は、まぁありえないとして、おいといて、

    4.VSのライブラリファイルのパス、ソースファイルのパスの設定が間違っている。
    5.何らかの原因でMFCソースがインストールされなかったか、削除された。

    等は確認してみましたか。
    現在2008しかないので、2010の具体的確認方法が示せませんが、
    「ツール」の「オプション」DLGにあると思います。

    • 編集済み 仲澤@失業者 2013年5月7日 9:25
    • 回答の候補に設定 星 睦美 2013年5月15日 0:55
    • 回答としてマーク 星 睦美 2013年5月20日 4:54
    • 回答としてマークされていない Brillia 2013年8月6日 2:16
    2013年5月7日 9:18
  • VS2010でも、MFCのソースをインストールしていれば、ステップインすることができます。実際日常的にデバッガでステップインするし、ブレークポイントも張りますし。。。

    細かな部分はすでに仲澤さんが書いてるので、省略。

    デフォルトのインストール状態であれば、MFCのソースは、

    64bitOSの場合は、C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc

    32bitOSの場合は、C:\Program Files\Microsoft Visual Studio 10.0\VC\atlmfc\src\mfc

    にインストールされています。ソースをインストールしないというオプションはなかったと記憶していますが...それは2012だったかなぁ?


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/

    2013年5月7日 11:31
  • 2010の具体的確認方法が示せませんが、
    「ツール」の「オプション」DLGにあると思います。

    2010 からはツールのオプションダイアログにはありません。(ノードはありますが、ここでは編集できないというラベルのみ)

    お手軽に確認する方法としてはプロジェクトを選択してプロパティダイアログを表示し、構成プロパティ - VC++ ディレクトリ のノードを見ることです。

    編集が必要になる場合は、表示 - その他 - プロパティマネージャーから表示されるプロパティシートで適切なシートを編集する必要があります。
    ただ、ここら辺は継承関係があるので、むやみに触ることはおすすめできませんが…。


    2013年5月7日 13:45
    モデレータ
  • ご返事ありがとうございます。

    MFCソースはインストールされていました。

    Azuleanさんの内容で確認したところ、その場所を指しているようになっています。なっていると思います。
    ステップインをためしたところ、関数の定義がヘッダーファイルの場合には、ヘッダーソースが表示されます。

    CPPにステップインへの確認を、新規作成したプロジェクトから簡単に試せる関数って代表的なものありますか?

    2013年5月9日 3:02
  • 試したのは、定義へ移動ではありませんか?この場合、昔のVSと違って、宣言に飛びます(定義位置にはジャンプしません)。

    ステップインはデバッグ時にのみ利用可能な仕組みです。

    >新規作成したプロジェクトから簡単に試せる関数

    MFCのプロジェクトを作成し(サンプル事例として、ダイアログベース飾りは可能な限り外す)、アプリケーションクラスのInitInstance の DoModalにブレークポイントを置いてデバッグ実行します。

    ブレークしたら、ステップインをすれば、ソースの位置に移動するはずです。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/

    • 回答の候補に設定 星 睦美 2013年5月15日 0:55
    • 回答としてマーク 星 睦美 2013年5月20日 4:54
    • 回答としてマークされていない Brillia 2013年8月6日 2:17
    2013年5月9日 4:08
  • 主フレームのOnCreate()で、派生元のOnCreate()にステップインしてみてはどうでしょう。
    • 回答の候補に設定 星 睦美 2013年5月15日 7:04
    • 回答としてマーク 星 睦美 2013年5月20日 4:55
    • 回答としてマークされていない Brillia 2013年8月6日 2:17
    2013年5月9日 4:13
  • フォーラム オペレーターの星 睦美です。

    Brillia さんが今回質問しているMFCのソースコードへのステップインは通常可能で、
    もしできない場合の確認点をコミュニティからの回答者からアドバイスいただいています。

    同様の情報をお探しの方にも参考になると思いますので、私からスレッドに[回答としてマーク]させていただきました。

    回答の内容に疑問がありましたら、[回答としてのマーク]を解除して返信できます。

    それでは今後ともMSDN フォーラムをよろしくお願いします。


    日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美

    2013年5月20日 5:07