ブレークポイントの位置がずれてしまう! – プログラミング – Home

ブレークポイントの位置がずれてしまう!
 
通知
すべてクリア

ブレークポイントの位置がずれてしまう!


END
 END
(@END)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

こんにちわ。

現在、ブレークポイントを貼りながら、
デバッグをしています。

しかし、ビルド後に
「1つ以上のブレークポイントが不適切な行に設定されています。
これらのブレークポイントは次の適当な行に移されます。」
とメッセージが出てきてしまいます。

見た目は、正常な位置にセットしているのですが、
ビルド後に、空欄や、コメントの行に移動してしまいます。

上記のようなメッセージを出さず、
指定した行にブレークポイントを貼っておくには、
どうしたらいいのでしょうか?

環境
VC++6.0
Win XP


引用解決済
トピックタグ
KING・王
 KING・王
(@KING・王)
ゲスト
結合: 20年前
投稿: 122
 

> 見た目は、正常な位置にセットしているのですが、
> ビルド後に、空欄や、コメントの行に移動してしまいます。

ソースファイルと、コンパイルされたファイルが異なるとかありませんか?
一度リビルドすることをお勧めします。

あと、ソースコードの行数が約6万行を超えると、上手くブレークポイントがはれなかったよう
な気がします。
(あまり自信はないが、たしかそんな話が。。。)


返信引用
END
 END
(@END)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

レスありがとうございます。

リビルドや、*.ncb *.opt *.plgのファイルを削除してみたんですが、
実行後に強制的にずれてしまうんです・・・。

ソースコードの6万行とありますが、プロジェクト内の合計ですか?
それだと、超えてそうな・・・。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 5年前
投稿: 776
 

# VC6はもう永いこと使ってないのでうろ覚えですが。

別 DLL 内の関数にブレイクポイントを張ろうとしているとか、
inline 関数でヘッダに張ろうとして、ヘッダファイルがプロジェクトに追加されてないとか、
そういうことはありませんか。


返信引用
END
 END
(@END)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

>Banさん

レスありがとうございます。
それが、dllもinlineも使用していないのです・・・。


返信引用
kapo
 kapo
(@kapo)
ゲスト
結合: 19年前
投稿: 1
 

コンパイルオプションで最適化が設定されているのではないでしょうか
または
#if 0
#endif
が大きすぎて間違ったところにブレイクポイントを置いているか?

この辺りではないでしょうか


返信引用
END
 END
(@END)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

>Kapoさん

レスありがとうございます。

>コンパイルオプションで最適化が設定されているのではないでしょうか
とは、「/GL」のことでしょうか?

最適化ということを設定したつもりがないので、
あまりよくわかっていません。。。


返信引用
END
 END
(@END)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

最適化ですが、/GLではなくて、
VCメニュー「プロジェクト→設定→C/C++→最適化」のことでしたか?

こちらは、「無効(デバック時)」という設定になっていました。


返信引用
Tenne
 Tenne
(@Tenne)
ゲスト
結合: 19年前
投稿: 2
 

僕も、つい先ほどそのような事態に陥り、困っているところです。
環境はVC.NET2003、Win2kSP4ですが、同じ事態になっています。
小規模なプログラムなので6万行はありません。
コンパイルオプションについても最適化は無効と設定しています。
*.ncb *.suo 等、ソース・リソース・プロジェクト(ソリューション)ファイル以外の物を削除
し、リビルドしても同じ現象が起きました。
特徴としましては、ソースファイルの下の行に行くにしたがって、ズレる行数が大きくなってい
るようです。
解決方法ではなくて申し訳御座いません。ご報告までに。


返信引用
通りすがりの人
 通りすがりの人
(@通りすがりの人)
ゲスト
結合: 19年前
投稿: 1
 

改行コードが混在してませんか?(CRLFとLFとか)


返信引用
Tenne
 Tenne
(@Tenne)
ゲスト
結合: 19年前
投稿: 2
 

解決いたしました。
別テキストエディタで開いた再、何かの原因(テキストエディタの設定かもしれません)で、改
行コードが入り混じるソースコードになってしまったと思われます。
Vectorなどで改行コード一発変換ソフトを検索し、それを利用させていただきソースファイル
を全てCRLFに変換し、*.ncb *.suo、debugフォルダreleaseフォルダを削除し、プロジェクト
を読み直してリビルドしたところ、ブレークポイントは正常な場所を指すようになりました。

ここからは余談ですが、以前VC++6.0SP6で、変数の宣言位置を見る為に、変数名を右クリック
→「〇〇の定義位置を表示」を実行した際、何行かずれて定義位置を表示してしまう場合があり
ました。そちらも同じ原因かと思われますので、見直してみたいと思います。

「END」様の解決をお待ちしております。
「通りすがりの人」様、助言頂いた方々ありがとうございます。


返信引用
END
 END
(@END)
ゲスト
結合: 19年前
投稿: 10
Topic starter  

諸事情により、ここをチェックできませんでした。

レスしていただいていた方、ありがとうございました。

>改行コードが混在してませんか?(CRLFとLFとか)
一度確認してみたいと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました