none
VS2005Proで、デバックでブレークポイントが設定できず、"ソースコードが元のバージョンと異なります"となる RRS feed

  • 質問

  • お世話になります。

     

    VS2005Proでのことですが、突然デバックにて設定したブレークポイントに、ブレークしなくなります。

    設定した無効ブレークポイントにカーソルをあてると、理由が吹き出しで表示されます。

    以下のURLのVB.NETと同様です。

     

    http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1720008&SiteID=7

     

    いろいろしらべたのですが、そもそもなぜこのようなことになるのでしょうか?

    何をもって元のバージョンと異なると言っているのでしょうか?

     

    ./Debug の中身を消してもためでした。

     

    オプションのチェックをはずせばできるようになりますが、

    チェックをはずさず通常どうりデバックができるようになる方法はあるのでしょうか?

     

    何のためにあるチェック機能なのか、理由も知りたいです

     

    これだけのために無駄な時間を費やしてしまいました。

     

    2008年11月27日 10:08

回答

  •  大ちゃん さんからの引用

    VS2005Proでのことですが、突然デバックにて設定したブレークポイントに、ブレークしなくなります。

    この手のもので、VS2005のバグがあるように思います。

    (ケースによっては単なるミスもありますが…)

     

    ※前に経験したときは、コンパイル後には意味のなくなるはずの、C++のコメントやホワイトスペースを編集するだけでブレークできたり、できなかったり変化していた…。会社のコードでしか起きなかったのでフィードバックできなかったのが悩ましい。

     

     大ちゃん さんからの引用

    いろいろしらべたのですが、そもそもなぜこのようなことになるのでしょうか?

    何をもって元のバージョンと異なると言っているのでしょうか?

    チェックサムか何かを見ているのだと思います。

    詳細は分かりません。

     

     大ちゃん さんからの引用

    オプションのチェックをはずせばできるようになりますが、

    チェックをはずさず通常どうりデバックができるようになる方法はあるのでしょうか?

    統一的な手法はないと思って下さい。

    私の経験した現象と同じであれば、どこかに意味のないスペースやコメントを置くと状況が変わるかもしれません。

     

     大ちゃん さんからの引用

    何のためにあるチェック機能なのか、理由も知りたいです

    単純にF5キーでデバッグ開始したとき、ビルドが走らなかったが、手元のソースコードと実行されたバイナリのバージョンが異なるとき、異なるソースコードでデバッグしていると、実行位置がずれるなど、正常なデバッグができないことがあります。

    それを消極的に気づかせるためのチェック機能かなと思っています。

     

    分かった上でこのチェックをOFFにする分は特に問題ないと思います。

    2008年11月27日 14:49
    モデレータ
  • 同じ状況になったので、

    ソースのチェックをしてみたところ、

     

    //#if 0

    というのを消したら、解消されました。

    プリプロセッサの命令をコメントアウトしたりとか

    そういう状況があれば、消すことで解消するかもしれません。

     

    2008年12月3日 8:30

すべての返信

  •  大ちゃん さんからの引用

    VS2005Proでのことですが、突然デバックにて設定したブレークポイントに、ブレークしなくなります。

    この手のもので、VS2005のバグがあるように思います。

    (ケースによっては単なるミスもありますが…)

     

    ※前に経験したときは、コンパイル後には意味のなくなるはずの、C++のコメントやホワイトスペースを編集するだけでブレークできたり、できなかったり変化していた…。会社のコードでしか起きなかったのでフィードバックできなかったのが悩ましい。

     

     大ちゃん さんからの引用

    いろいろしらべたのですが、そもそもなぜこのようなことになるのでしょうか?

    何をもって元のバージョンと異なると言っているのでしょうか?

    チェックサムか何かを見ているのだと思います。

    詳細は分かりません。

     

     大ちゃん さんからの引用

    オプションのチェックをはずせばできるようになりますが、

    チェックをはずさず通常どうりデバックができるようになる方法はあるのでしょうか?

    統一的な手法はないと思って下さい。

    私の経験した現象と同じであれば、どこかに意味のないスペースやコメントを置くと状況が変わるかもしれません。

     

     大ちゃん さんからの引用

    何のためにあるチェック機能なのか、理由も知りたいです

    単純にF5キーでデバッグ開始したとき、ビルドが走らなかったが、手元のソースコードと実行されたバイナリのバージョンが異なるとき、異なるソースコードでデバッグしていると、実行位置がずれるなど、正常なデバッグができないことがあります。

    それを消極的に気づかせるためのチェック機能かなと思っています。

     

    分かった上でこのチェックをOFFにする分は特に問題ないと思います。

    2008年11月27日 14:49
    モデレータ
  • 同じ状況になったので、

    ソースのチェックをしてみたところ、

     

    //#if 0

    というのを消したら、解消されました。

    プリプロセッサの命令をコメントアウトしたりとか

    そういう状況があれば、消すことで解消するかもしれません。

     

    2008年12月3日 8:30
  • こんにちは。中川俊輔です。

     

    Azuleanさん、ルルさん、回答ありがとうございます。

     

    大ちゃんさん、フォーラムのご利用ありがとうございます。

    VS2005のブレークポイントについては、VSで対象ファイルを開いてから[ファイル] - [保存オプションの詳細設定]と

    たどり、エンコードをUnicodeに変更することで回避できることもあるみたいです。

    ご面倒ですが、よろしければお試しください。

     

    また、有用な情報と思われたため、Azuleanさん、ルルさんの回答へ回答済みチェックをつけさせていただきました。

     

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

    それでは!

     

    この投稿は現状のまま何の保証もなく掲載しているものであり、何らかの権利を許諾するものでもありません。

    コミュニティにおけるマイクロソフト社員による発言やコメントは、マイクロソフトの正式な見解またはコメントではありません。詳しくは http://www.microsoft.com/japan/communities/msp.mspx をご覧ください。

    2008年12月17日 9:02
  • 同じ現象にて、辿りつきました。
    現象についての根本的な理由につきましては、詳しく調べませんでしたが、

    .NET開発画面のメニューバーにある「ビルド(B)」→「ソリューションのクリーン(C)」

    を行った後にデバッグを開始したところ、正常に戻りました。

    2009年4月14日 10:56
  • 同じ現象にて、辿りつきました。
    現象についての根本的な理由につきましては、詳しく調べませんでしたが、.NET開発画面のメニューバーにある「ビルド(B)」→「ソリューションのクリーン(C)」を行った後にデバッグを開始したところ、正常に戻りました。
    ビルドとソースの状態が一致しない、よくあるケースではその操作で解消します。
    しかし、私が過去に経験した現象は、クリーンしようが、ソース管理から別の場所に最新版を取り直してビルドしようが解消しませんでした。
    再現条件が非常に分かりづらい不具合があるということだけ記憶に留めて頂ければと思います。(再現させるソースは会社資産であるため提示できなくてフィードバックできず仕舞いですが)

    解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
    2009年4月14日 14:37
    モデレータ