こんにちわ。
現在、ブレークポイントを貼りながら、
デバッグをしています。
しかし、ビルド後に
「1つ以上のブレークポイントが不適切な行に設定されています。
これらのブレークポイントは次の適当な行に移されます。」
とメッセージが出てきてしまいます。
見た目は、正常な位置にセットしているのですが、
ビルド後に、空欄や、コメントの行に移動してしまいます。
上記のようなメッセージを出さず、
指定した行にブレークポイントを貼っておくには、
どうしたらいいのでしょうか?
環境
VC++6.0
Win XP
> 見た目は、正常な位置にセットしているのですが、
> ビルド後に、空欄や、コメントの行に移動してしまいます。
ソースファイルと、コンパイルされたファイルが異なるとかありませんか?
一度リビルドすることをお勧めします。
あと、ソースコードの行数が約6万行を超えると、上手くブレークポイントがはれなかったよう
な気がします。
(あまり自信はないが、たしかそんな話が。。。)
レスありがとうございます。
リビルドや、*.ncb *.opt *.plgのファイルを削除してみたんですが、
実行後に強制的にずれてしまうんです・・・。
ソースコードの6万行とありますが、プロジェクト内の合計ですか?
それだと、超えてそうな・・・。
# VC6はもう永いこと使ってないのでうろ覚えですが。
別 DLL 内の関数にブレイクポイントを張ろうとしているとか、
inline 関数でヘッダに張ろうとして、ヘッダファイルがプロジェクトに追加されてないとか、
そういうことはありませんか。
>Banさん
レスありがとうございます。
それが、dllもinlineも使用していないのです・・・。
コンパイルオプションで最適化が設定されているのではないでしょうか
または
#if 0
#endif
が大きすぎて間違ったところにブレイクポイントを置いているか?
この辺りではないでしょうか
>Kapoさん
レスありがとうございます。
>コンパイルオプションで最適化が設定されているのではないでしょうか
とは、「/GL」のことでしょうか?
最適化ということを設定したつもりがないので、
あまりよくわかっていません。。。
最適化ですが、/GLではなくて、
VCメニュー「プロジェクト→設定→C/C++→最適化」のことでしたか?
こちらは、「無効(デバック時)」という設定になっていました。
僕も、つい先ほどそのような事態に陥り、困っているところです。
環境はVC.NET2003、Win2kSP4ですが、同じ事態になっています。
小規模なプログラムなので6万行はありません。
コンパイルオプションについても最適化は無効と設定しています。
*.ncb *.suo 等、ソース・リソース・プロジェクト(ソリューション)ファイル以外の物を削除
し、リビルドしても同じ現象が起きました。
特徴としましては、ソースファイルの下の行に行くにしたがって、ズレる行数が大きくなってい
るようです。
解決方法ではなくて申し訳御座いません。ご報告までに。
改行コードが混在してませんか?(CRLFとLFとか)
解決いたしました。
別テキストエディタで開いた再、何かの原因(テキストエディタの設定かもしれません)で、改
行コードが入り混じるソースコードになってしまったと思われます。
Vectorなどで改行コード一発変換ソフトを検索し、それを利用させていただきソースファイル
を全てCRLFに変換し、*.ncb *.suo、debugフォルダreleaseフォルダを削除し、プロジェクト
を読み直してリビルドしたところ、ブレークポイントは正常な場所を指すようになりました。
ここからは余談ですが、以前VC++6.0SP6で、変数の宣言位置を見る為に、変数名を右クリック
→「〇〇の定義位置を表示」を実行した際、何行かずれて定義位置を表示してしまう場合があり
ました。そちらも同じ原因かと思われますので、見直してみたいと思います。
「END」様の解決をお待ちしております。
「通りすがりの人」様、助言頂いた方々ありがとうございます。
諸事情により、ここをチェックできませんでした。
レスしていただいていた方、ありがとうございました。
>改行コードが混在してませんか?(CRLFとLFとか)
一度確認してみたいと思います。