VC++なんですが、デバッグコマンドでステップ・オーバーで追っていますが、、、 – プログラミング – Home

VC++なんですが、デバッグコマンドで...
 
通知
すべてクリア

VC++なんですが、デバッグコマンドでステップ・オーバーで追っていますが、、、


困ったな!追ってるうちにreturnコマンドにぶつかった。
 困ったな!追ってるうちにreturnコマンドにぶつかった。
(@困ったな!追ってるうちにreturnコマンドにぶつかった。)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

いいところまで、バグを追い詰めたと思ったら、
return(0L);
これ、この後、またステップ・オーバーで
やると、変なコード(アセンブラー?)が
走るて走っているところがわからなくなるし、
本当は、そのRETURNコマンドの
直後の戻り先に飛んで、トレースを続けたいのですが、
どうやればいいのでしょうか?


引用解決済
トピックタグ
渋木宏明(ひどり)
 渋木宏明(ひどり)
(@渋木宏明(ひどり))
ゲスト
結合: 22年前
投稿: 196
 

どこに戻ってくるべきかは分かってますよね?

であれば、目当ての箇所にブレークポイントを張って待ち構えるとか。


返信引用
困ったな!追ってるうちにreturnコマンドにぶつかった。
 困ったな!追ってるうちにreturnコマンドにぶつかった。
(@困ったな!追ってるうちにreturnコマンドにぶつかった。)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

なんとか、ここは切り抜けて止まっているところがわかりました。

fopenです。
なぜか、オープンするファイルは、当該DIRECTRYに存在するにも
かかわらず、NULLが帰ってくるのです。
どんなことが考えられますか?


返信引用
困ったな!追ってるうちにreturnコマンドにぶつかった。
 困ったな!追ってるうちにreturnコマンドにぶつかった。
(@困ったな!追ってるうちにreturnコマンドにぶつかった。)
ゲスト
結合: 22年前
投稿: 3
Topic starter  

ファイルを変えてみても同じです。
何でこうなるのか(結構長いループをやっているうちに出る。
ただ不思議なことに、どういった違うRAMの容量を持つパソコンを使っても、
それが出る個所(2重ループの何重目かの値)が同じなのです)
わからないのですが、
確実にFOPEN
出来るように、このFOPENコマンドの直前に、何らかの
処置は出来ないのでしょうか?

ファイルがこのCのファイルを実行しているのと同じ個所にあるのは間違いないです。


返信引用
.
 .
(@.)
ゲスト
結合: 23年前
投稿: 37
 

単なるfcloseし忘れ


返信引用
あくびちゃん
 あくびちゃん
(@あくびちゃん)
ゲスト
結合: 22年前
投稿: 1
 

>どんなことが考えられますか?
プログラムのバグ。 その他はMSDNを参照。

>確実にFOPEN
>出来るように、このFOPENコマンドの直前に、何らかの
>処置は出来ないのでしょうか?
アクセスして存在や書き込み権限など確認してみては?
まぁ、できない時はできないけど。

想像を膨らませれば原因は色々考えられますが
ソースをみないことにはなんとも言えません。
「ファイルが壊れてるんじゃない?スキャンディスクでもすれば」
と書かれたくなければソースを提示しましょう。 あ、書いちゃった。。

>ただ不思議なことに、どういった違うRAMの容量を持つパソコンを使っても、
>それが出る個所(2重ループの何重目かの値)が同じなのです)
なぜRAMにこだわるのか? だれかを思い出しますねぇ。


返信引用
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

まず日本語を勉強するべきでは?


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

どのパソコンでも同じ現象がおきるのなら、RAMは
関係なくプログラムのどこかが間違っていると考えられます。

というわけで、ソースコードを提示するのが
解決への近道かと思いますが。


返信引用
ん
 ん
(@ん)
ゲスト
結合: 23年前
投稿: 106
 

fopen でのファイル名の指定の時に例えば C:\WinNT\aaa.txt を C:\WinNT\aaa.txt
とか、記述してませんよね?
C:\\WinNT\\aaa.txt のように記述してますよね?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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