ブレイクポイント – プログラミング – Home

通知
すべてクリア

[解決済] ブレイクポイント

固定ページ 1 / 2

ナノ
 ナノ
(@ナノ)
ゲスト
結合: 19年前
投稿: 5
Topic starter  

VC2003.netで質問です。
変数=-1.#IND000000000000で条件していして
ブレイクポイントを設定したいのにできません。
変数=1なら出来ます。
どうやったら出来るのでしょうか?


引用未解決
トピックタグ
久世
 久世
(@久世)
ゲスト
結合: 19年前
投稿: 1
 

多分、むりなんじゃないの?
指定の仕方が違うとか?


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

「1.#IND000000000000」は、設定できない値です。
デバックモード時に値がおかしい「オーバフロー」している時に
表示される値です。


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

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

>>「1.#IND000000000000」は、設定できない値です。
>>デバックモード時に値がおかしい「オーバフロー」している時に
>>表示される値です。
そのオーバーフローしたときにブレイクしたいのですが可能ですか?


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

try-catch文か、Assert文などチェックできたかと思いましたが......


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

どこで1.#IND000000000000になってるかわからないので
try-catchとか仕掛けることができません。
どうにかデバッグ機能で条件でブレイクとかできないでしょうか?


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

どんな計算をしているのか、どこで「1.#IND000000000000」の値になるのを
ナノさんが気づくのか分らないと答えようがないです。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

__int64型にmemcpyしての判定は?


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

VC7.1でやってみた。

for (int i = 0; i < 10; i++) {
double a = 10;
double b = i - 3;
double c = a / b;
__int64 d;
memcpy(&d, &c, sizeof(c));
if (d == 0x7ff0000000000000) {
cout << error at i == << i << endl;
break;
}
cout << i << : << c << endl;
}

環境依存だと思うが一応成功。


返信引用
dark
 dark
(@dark)
ゲスト
結合: 20年前
投稿: 12
 

> どうにかデバッグ機能で
どうも、ソースをいじりたくないというのが第1にあるような。

> 「1.#IND000000000000」は、設定できない値です。
なのから、ソースいじるしかないんだけど。


返信引用
たいちう
 たいちう
(@たいちう)
ゲスト
結合: 23年前
投稿: 662
 

>> どうにかデバッグ機能で
>どうも、ソースをいじりたくないというのが第1にあるような。

そうかもしれませんね。
私としては、再現性の低いバグについて、
場所の特定に苦労されているような印象を受けていますが。

それと訂正と補足。

> 変数=-1.#IND000000000000で条件していして

とあるので、0xfff0000000000000でした。
WEBでは以下の定義も見かけましたが、私の環境では定義されていない
ようでした。

#define IEEE_PINF 0x7ff0000000000000
#define IEEE_NINF 0xfff0000000000000


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

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

自分で調べててオーバーフローって
-1.#IND000000000000じゃなくて

1.#INF000000000000と-1.#INF000000000000のようですけど

INDとINFにどういう違いがあるんでしょうか?
ネットでもMSDNでもみつからないし…


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

皆さんのレスをきちんとよんでいますか。

僕も同意見ですがレスの内容は、
 「強制的にデバックモ-ドでブレイクさせて調べるより、
  ソ-スを見直して手直しすることによって
  エラーを修正したほうがいい。」
という内容です。

どんな計算をしているのか、
ソース上どんな処理で「1.#INF000000000000」
が出るのが分らないと話が先に進みません。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

修正します。
「1.#INF000000000000」→「-1.#IND000000000000」


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

ちゃんと読んでないのはあなたでしょ?
どこかわからないっていってるんですよ
ソースを全部張らないとだめですか?無理です。
こっちの質問理解してます?
出来ないなら出来ないと回答くれればいいんです。

もう無理そうなんで別のとこで聞いてみます。
ここでは閉めさせていただきます。
回答者のみなさん。ありがとうございました。


返信引用
固定ページ 1 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

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