none
MFCソースにステップインしない VC2013 RRS feed

  • 質問

  • 以下の過去の同様の質問について目を通しましたが、解決できないので質問をあげさせてください。

    • 「デバック時にMFCのソースコードを表示したい」
    • 「MFCソースにステップインしない」

    環境は、Windows7(x64), VS Professional  2013 Update 1 + MBCS_SupportのMFC です。「マルチバイト文字セットを使用する」をやめることはできません。

    以下の項目は確認しました:

    • VSのソースファイルのパスの設定は問題ないようです。
    • MFCソースはパス設定の場所にインストールされていました。

    なお、ローカル Windows デバッガー を起動すると 「'C:\Windows\SysWOW64\msctf.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。」 のようなメッセージが表示されます。

    チェックすべき事項がありましたらご教示をお願いいたします。

    2014年4月17日 3:07

回答

  • 気になったのでちょっと試してみました。

    MBCS版に限らず、UNICODE版もPDBファイルがありません。なのでそのままではステップインできません。

    どうすればいいのか?とちょっと検索してみたところ中国語らしきサイト(漢字ばっかりなので多分そうですw)の、画面写真にシンボルサーバーの文字が見えたので

    一度つないでみたところ、無事デバッグできるようになりました。

    ちょっと面倒ですが、NETにつながる環境で(つながらないと解決できない)、一度メニューの[ツール-オプション]でオプションダイアログを開き、

    ツリーの[デバッグ-シンボル] のところで、[Microsoft シンボルサーバー]にチェックを入れ、

    [このディレクトリにシンボルをキャッシュ]に適切なフォルダ(実在するフォルダで十分な空き容量のあるフォルダ)を指定して

    デバッグ実行します。

    初回は、各種PDBをダウンロードしてくることになるため、かなり時間がかかりますが、一度デバッグ実行でアプリが起動(PDBを読み込むところまでたどり着くことが条件)したら

    さっさと終了し、先ほどのシンボルサーバーのチェック「だけ」はずして、改めてデバッグ実行します。

    そうすれば、ローカルなシンボルを参照してデバッグ実行されるため、ソースにステップインできるようになります。

    いつからローカルPDBなくなったんだろう?全然気づいてなかった><


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

    • 回答としてマーク bokashi 2014年4月17日 5:47
    2014年4月17日 5:15

すべての返信

  • VS2013以降、標準のままではMBCS版のMFC、ATLは提供されません。
    以下を参照してみてはどうでしょう。

    http://msdn.microsoft.com/ja-jp/library/5z097dxa.aspx
    http://msdn.microsoft.com/ja-jp/library/dn251007.aspx

    別にダウンロードすればできそうな内容ですが、やったことがありません。あしからず。
    2014年4月17日 3:25
  • ありがとうございます。

    下記で配布していたアドオンを適用済みです。

    http://www.microsoft.com/en-us/download/details.aspx?id=40770

    なお、「Unicode文字セットを使用する」設定のプロジェクトでも、「マルチ バイト文字セットを使用する」設定のプロジェクトでも MFC ソースにステップインすることができませんでした。


    2014年4月17日 4:04
  • 気になったのでちょっと試してみました。

    MBCS版に限らず、UNICODE版もPDBファイルがありません。なのでそのままではステップインできません。

    どうすればいいのか?とちょっと検索してみたところ中国語らしきサイト(漢字ばっかりなので多分そうですw)の、画面写真にシンボルサーバーの文字が見えたので

    一度つないでみたところ、無事デバッグできるようになりました。

    ちょっと面倒ですが、NETにつながる環境で(つながらないと解決できない)、一度メニューの[ツール-オプション]でオプションダイアログを開き、

    ツリーの[デバッグ-シンボル] のところで、[Microsoft シンボルサーバー]にチェックを入れ、

    [このディレクトリにシンボルをキャッシュ]に適切なフォルダ(実在するフォルダで十分な空き容量のあるフォルダ)を指定して

    デバッグ実行します。

    初回は、各種PDBをダウンロードしてくることになるため、かなり時間がかかりますが、一度デバッグ実行でアプリが起動(PDBを読み込むところまでたどり着くことが条件)したら

    さっさと終了し、先ほどのシンボルサーバーのチェック「だけ」はずして、改めてデバッグ実行します。

    そうすれば、ローカルなシンボルを参照してデバッグ実行されるため、ソースにステップインできるようになります。

    いつからローカルPDBなくなったんだろう?全然気づいてなかった><


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

    • 回答としてマーク bokashi 2014年4月17日 5:47
    2014年4月17日 5:15
  • 詳細情報、ありがとうございます。

    記載の手順どおり進めたところステップインできるようになりました。

    2014年4月17日 5:47