C言語での実行時エラーの場所を特定する方法

このQ&Aのポイント
  • C言語やC++言語でプログラムを実行した時に発生するエラーの場所を特定する方法を教えてください。
  • printf関数などで文字を出力していればエラーが起きた場所は分かることがありますが、出力されない場合もあります。特定するための便利なツールなどはありますか?
  • 使用しているコンパイラはBorand C++ Compiler 5.5です。アドバイスをお待ちしています。
回答を見る
  • ベストアンサー

C言語での実行時エラーの場所を特定するには?

こんにちは。 C言語あるいはC++言語において、プログラム(exeファイル)を実行した時にエラーが発生した場合、 どこでエラーが出ているのかをすぐに特定できる手段はあるのでしょうか? 例えば、printf関数などで、文字を出力していれば、どこでエラーが起きたのかが分かる場合もありますが、文字が出力されないでエラーが起こる場合もあります。 ですので、実行時エラーが起きている場所を特定するのに、いつも苦労します。 何か便利なツールなどは存在しないのでしょうか? ちなみにコンパイラは、Borand C++ Compiler 5.5 を使っています。 何かいい方法を知っておられる方がいらっしゃれば、是非アドバイスを頂きたいと思います。 では、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (7964/17024)
回答No.1

そういうときに使うツールをデバッガと言う。 単純なエラーであれば、デバッグすればすぐに分かる。 http://www.embarcadero.com/jp/products/free-c-compiler http://edn.embarcadero.com/jp/article/33545 Q. BCC55で作成したプログラムをデバッグするにはどうすればよいでしょうか。 A. BCC55には、デバッグツールは含まれていません。Borland C++ Suiteに含まれているTurbo Assembler 5.0J には、BCC55で作成したアプリケーションをデバッグできる Turbo Debugger for Win32 というツールが含まれています。 Turbo Debugger for Win32をお持ちの方は、コンパイル時にコマンドラインオプションとして-vを指定することで、Turbo Debugger用のデバッグ情報ファイル(.TDS)を生成できます。

MetalLover
質問者

お礼

情報提供ありがとうございます。 僕のPCには、 "C:\borland\bcc55\Bin\TD32.EXE" というファイルが存在しており、これが Turbo Debugger for Win32 の実行ファイルのようです。 ただ、マニュアルが見つからず、困っています。 ちなみに、bcc32コマンドでコンパイルすると、-vオプションを付けなくても いつもtdsファイルが作成されます。

関連するQ&A

  • C言語、実行でエラー。

    いつも大変お世話になり誠にありがとうございます。 標記の件。 shift jifでコンパイルしているのですが コンパイルはお陰様で成功したのですが、 実行でエラーが発生します。 下記にコードとエラーメッセージを書きます。        記 コード #include <stdio.h> int main(void) { printf("8進数101の文字コードをもつ文字は%cです。\n", '\101'); printf("16進数61の文字コードをもつ文字は%cです。\n", '\x61'); return 0; } 実行 C:\MinGW>gcc text4.c -o test4 C:\MinGW>text4.exe 'text4.exe' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ご多忙のところ 度々申し訳ございません。 ご回答の程宜しくお願い申し上げます。

  • C言語でのエラーの直し方について?

    C言語でのエラーが発生したとします。その時、どのようにして、エラーを見つけ直していくのですか? 私はprintfを用いて値を見ることでエラーを見つけています。 ステップインで実行して変数にどのような値が入っているか見つけようともしているのですが、変数にa値が16進数で格納されていたり、アドレスがあったりと見方が複雑でうまく発見できていません。 正しい、エラーの見つけ方、直し方とはどういったやり方なのでしょうか?

  • C言語

    最近C言語を始めたばかりなのですが、コンパイラをしたあと、オブジェクトファイルをexeしようとすると、エラーがでます。 そのエラーとは ”問題が発生したため、error.exe を終了します。 ご不便をおかけして申し訳ありません。この問題を Microsoft に報告してください。”です。 どなたかわかる方教えてください。 以下が、問題のプログラムです。 #include <stdio.h> int main(void) { int na; puts("身長を入力してください。"); printf("身長:"); scanf("%d",&na); printf("標準体重は[%.1f]です。%n", (double)(na - 100) * 0.9); return(0); }

  • 実行時エラー(E2206)についての質問です。

    当方初心者です。 C言語を学習したいと思い、Borlandのフリーコンパイラを入れて 動作チェックをしてみた所、コンパイルは通ったのですが 実行時に下記のよなエラーが出てしまい、自分なりに色々と 調べてはみたのですが(bcc32.cfg、ilink32.cfg、パスなど) どうにもならず、これ以上進みようがなくなってしまったので 投稿いたしました。 先輩方のご教授を頂きたく思います どうぞ宜しくお願い致します。 【test1.c】 ----------------------------------------- #include <stdio.h> main() { printf("Hello World\n"); return 0; } ------------------------------------------ C:\test2>bcc32 test1.exe Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland test1.exe: エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 ' ' (0x2) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 ' ' (0x4) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 ' ' (0xf) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0xff) エラー E2206 test1.exe 1: 不正な文字 '' (0xff) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 'ク' (0xb8) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2206 test1.exe 1: 不正な文字 '@' (0x40) エラー E2206 test1.exe 1: 不正な文字 '' (0x0) エラー E2141 test1.exe 1: 宣言の構文エラー *** 24 errors in Compile ***

  • C++の実行

    Borland C++ Compiler 5.5をインストールして、 コンパイルはできましたが、 exeファイルを実行できません。 どうしたらよいでしょうか?

  • C言語での実行

    C言語(ボーランドのCpad)を使っています。 いつも使ってるパソコンと違うパソコンでC言語のプログラムをし始めました。 前のパソコンと同じようにプログラムのコードをCファイルで保存して同じように新しいパソコンから開いて同じように実行ボタン押したのですが、実行できず、exeファイルが存在しませんって表示されます。 ちなみに、動かすプログラムは4つあり、そのうちの3つはちゃんと実行でき、ファイルも作成できるのですが、同じ方法でやってるあと1つのプログラムだけがうまくいきません。 4つとも同じフォルダにするようにしていて、3つはちゃんと実行できるので、フォルダが違うことはないと思います。 なぜ「exeファイルが存在しません」ってなるのか。 ちゃんとフォルダにCファイルはあるのに。 ちなみに、正確にできる3つのように、実行できると「OBJファイル」とか「アプリケーション」とかも同時に作成されます。 ただ、問題の1つのプログラムは当然、実行できず、exeファイルが存在しませんって表示されるので何も作成されません。 ボーランドのC言語、実行、ファイル、など詳しい方ぜひ教えて下さい。 同じやり方で今までのパソコンではできていたのに、パソコン変えると実行できなくなります。 フォルダやCファイルが正確ではないのかとも思いましたが、前までのパソコン通りにやっているので問題ないと思います。 ぜひアドバイス下さい。

  • C言語のオススメのコンパイラを教えてください

    C言語の勉強を始めようと思い、コンパイラを探しているのですが、どれが良いのかわっぱりわかりません。 Windows7で動作する、初心者向けのコンパイラをご存知でしたら教えて頂きたいです。 少し探してみたところ、Microsoft Visual Basic 2010 Expressは試してみたのですが強制終了してしまい、Borland C++ Compilerは現在は公開されていないようなので、それ以外でお願いします。

  • C言語のコンパイラ

    C言語の勉強がしたいと思っているのですが、コンパイラっていうんですかね、それについて少し調べてみたら 無料なら"Borland C++ Compiler"で、有料ならなんかかなり高いっぽいけど"Visual C++"っていうのがあることが解りました。 よくプログラミング系のサイトの人で"Borland C++"のコンパイラを利用してとてもプログラミングがしやすくなったということが書いてあるのですが、"Visual C++"と比べたらどっちの方がいいんですか?(やっぱり有料の方?) もし人それぞれなら、みなさんは両方あったらどっちを使いますか? 初心者なら無料ので十分すぎるのだとは思いますが、プログラマーみたいな人から見るとどうなのかな~と思ったので教えていただけますか。 お願いします。 ついでに"Visual C++"って言語があるんですかね?何かそんな風に書いてあるところもあったもんで。 かさねがさねお願いします。

  • C言語の参考書について

    大学の後期の授業でC言語の参考書を買ってくるように言われました。 でもどの参考書がいいのかわからないので教えてください!! 前期の授業では ・C言語で作成したプログラムのコンパイルと実行の 流れ ・コンパイルエラーのエラーメッセージの見方 ・実行時のエラーとプログラムの修正 ・C言語のプログラムの基本形 ・printf()と定数 ・変数 ・数値型 ・文字型 ・文字列 ・printf()の書式指定 ・プログラム記述時の約束、予約語 ・算術演算子 ・代入演算子 ・インクリメント、デクリメント演算子 ・比較演算子(関係演算子) ・式が持っている値 ・論理演算子 ・条件付き代入 を勉強しました。 その範囲は、まだちゃんとに覚えてないけど授業でもらったプリントを見れば一応できます。 それで先生いわく、参考書は入門編でもいいらしいんですけど、さらに実践編も買い足さなければいけないらしいんです。 今の状態で実践編でも大丈夫ですかねぇ??

  • C言語でいきなりつまづいてます。

    C言語でいきなりつまづいてます。 何がダメなのかご教授ください。 OSはウインドウズXPです。 (1)Borland C++ Compiler 5.5 With Command Line Tools Version 5.5.1をインストールしました。 (2)BCC5.5.1 環境ファイルパス設定プログラムをインストールしました。 (3)以下のソースを書きました。 #include <stdio.h> int main(void) { printf("Hello, \nworld"); return 0; } (4)hello.cというファイル名で保存しました。 (5)コマンドプロンプトでフォルダを(4)のファイルが置いてあるフォルダに指定し bcc32 hello.cと入力しました。 (6)出力が   hello.c になります。 エラーなどはありません。 以上です。 よろしくお願いします。

専門家に質問してみよう