none
デバッグできない RRS feed

  • 質問

  • VC++2005で簡単なC++プログラミングを行っています.

    空のプロジェクトを作成し,ソースファイルにC++ファイルを追加した,シンプルなソリューションです.

    デバッグモードを試そうと思い,以下のプログラムを作成し,●印の場所で

    右クリック - ブレークポイントの挿入

    でブレークポイントを設定しました.

    #include <stdio.h>

    void main(void)
    {
        int i;
    ●  for(i=0;i<10;i++)
        {
            printf("%d\n",i);
        }
    }

    そしてデバッグの開始を実行しましたが,すぐ終了してしまいました.そこでステップインを試したところ,ダイアログボックスが表示され

    ”呼び出し履歴のフレームにシンボルは読み込まれません。ソースコードを表示できません。”

    ”OK””逆アセンブルを表示する”

    と出てきてしまいました.

    従来のVC++6.0のような感覚でデバッグできないのでしょうか?

    何か設定が間違っているのでしょうか?

    御教示の程,よろしくお願いします.

    2006年5月9日 10:35

すべての返信

  •  しゅう さんからの引用

    何か設定が間違っているのでしょうか?

    Release モードでビルドしてたりしませんか?

     

    2006年5月9日 12:38
  • 渋木さん

    モードはきちんとDebugモードになっています。編集ツールバーのところに"Debug"と表示されていました。

    何がいけないのでしょうか。気になるとしたら、VIsual Studio 6.0が入った状態で2005をインストールしているという点だけです。それとももっと単純なミスなのでしょうか。

    2006年5月10日 1:09
  • 私のPCも VC6 と VS2005 が共存しています(WinXp Sp2)が、そのようなことにはなりませんでした。

    もう一度、1から作成しなおして同じ現象になるか検証してみては如何でしょうか?

    また、ブレイクポイントではなく、ステップ実行しても同じかも調べてみてください。

     

    それと、環境が絡んでくるかもしれませんので、

    OS、VS2005のエディション、VS6のエディション+SP等必要そうな情報も載せたほうがよいです。

    2006年5月10日 1:30
  • あ、もしかしたら

     しゅう さんからの引用

    空のプロジェクトを作成し,ソースファイルにC++ファイルを追加した,シンプルなソリューションです.

    が問題なのかも。

    (空のプロジェクトではなくて、VC6と同じということならば、Win32~のプロジェクトからつくらないとダメとか)

    私は、そうやってプロジェクトをつくったことがないので、なんともいえませんが。

    (今の環境にVS2005がないので検証できない。(あるのは自宅PC))

    2006年5月10日 1:35
  • 蒼の洞窟さん

    開発環境は以下の通りになっています。

    OS : Windows XP Professional Version 2002 Service Pack 2

    VS2005 : Visual Studio 2005 Academic Edition Version 2.0.50727

    VC6.0 : Visual C++ 6.0 Professional Edition Service Pack 6適用済み

    また、同じようにプロジェクトを構築しても、ブレークポイントでとまってくれませんでした。
    ステップ実行すると、ブレークポイントで止まるのですが、逆アセンブラ表示になってしまいました。

     蒼の洞窟 さんからの引用

    あ、もしかしたら

     しゅう さんからの引用

    空のプロジェクトを作成し,ソースファイルにC++ファイルを追加した,シンプルなソリューションです.

    が問題なのかも。

    空のプロジェクトではなくて、VC6と同じということならば、Win32~のプロジェクトからつくらないとダメとか

    その通りでした!以下にどのようにしてデバッグ処理を行うことができたか記します。

    今までは

    [新規作成] - [プロジェクト] - [Visual C++] - [全般] - 空のプロジェクト

    で生成していました。

    そこでWin32~のプロジェクトで作ろうと思い、

    [新規作成] - [プロジェクト] - [Visual C++] - [Win32] - Win32 コンソール アプリケーション

    を選択し、"Win32 アプリケーション ウィザード"で

    アプリケーションの種類 : コンソール アプリケーション
    追加のオプション : 空のプロジェクト

    にして作成しました。

    そして同じソースコードを入力し、ブレークポイントを設定したら、
    デバッグを行うことができました!!どうもありがとうございました。

    しかし、空のプロジェクトとは一体何を行うためのものなのでしょう?
    また、VC6.0がWin32のコンソールアプリケーションを作成していたということを初めて知りました。ありがとうございました。

    2006年5月10日 6:10
  • 単にPDBファイルが作られてなかっただけでは?

    ソースをよく見ると、VC2005で作られたコンソールアプリケーションだと、_tmainのはずなのにmainになってます。

    と言う事は、VC2005で作成したプロジェクトではなくて、VC6で作成したプロジェクトをVC2005にコンバートしたような気がします。(推測で外れていたらごめんなさい)

    VC6のプロジェクトをVC2005でデバッグすると、デバッグ出来ない場合が生じます。

    大きな違いは、VC6のReleaseはデバッグ機能がないが、VC2005のReleaseはデバッグ出来ます。

    違いは、拡張子(.PDB)を作らないんです。

    このPDBファイルにデバッグ情報が入っていて、このファイルがないときに問題の現象が起こるような体験があるんです。

    確認して欲しいのは、先ず本当にデバッグモードになっているか?(メニューのビルドの構成マネージャーを選択して、出てくるダイアログの2箇所とも本当にDEBUGになっているか?)

    次に、DEBUGフォルダーにVC80.PDBとプログラム名.PDBが両方とも存在するか?

    それ以外に怪しいのが、メニューのツールのオプションを選択し、デバッグタグの全般を選択して「元のバージョンと完全に一致するソースを必要とする」にチェックが入ってないか?

    あと、VC2005でリビルドしてない?

    こんなとこです。年寄りの経験で外れていたら、ごめんなさいね。

    2006年5月10日 11:41