• ベストアンサー
  • 困ってます

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

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

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数577
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
  • f272
  • ベストアンサー率45% (5504/12040)

そういうときに使うツールをデバッガと言う。 単純なエラーであれば、デバッグすればすぐに分かる。 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)を生成できます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • C言語のコンパイラ

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

  • 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言語の勉強をしている初心者です。突然ですが 例えば、このようにプログラムしたら・・・ #include <stdio.h> int main(void) { int n; printf("何か数字を入力してください:"); scanf("%d",&n); printf("\n入力した数字は%dです。\n",n); return 0; } <<実行結果>>  何か数字を入力してください:2 [Enter]  入力した数字は2です。 って普通は出力されますよね??しかし、私の使っているBorland C++ Compiler 5.5 では <<実行結果>>  2 [Enter]  何か数字を入力してください:  入力した数字は2です。 っていう風に、まず、なにか入力しないとprintfの内容を出力してくれないんです。(汗)これって実行結果の順番がおかしいですよね・・・(。。;) どうかこの状態を直せるアドバイスをください。 よろしくお願い致します。m(__)m

  • C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると

    C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると結果が130固定となってしまいます。 #include <stdio.h> #include <stdlib.h> int main(void){ int x; x = rand(); printf("%d",x); return 0; } 使っているコンパイラはBorland C++ 5.5.1です。何か間違いでもあるのでしょうか?よろしくお願いします。

  • windowsのコンパイラーで正しく実行されたのに、gccのコンパイラーでエラーがでた

    windowsのコンパイラーで正しく実行されたのに、gccのコンパイラーでエラーがでたソースコードです。ファィル名test.c です。Linux(Red Hat9) gccです。windowsのコンパイラーはCPad for Borland C++Compilerです。 #include <stdio.h> void main() //intからvoidに変更した { int i, j; for (i=1; i<=9; i++){ printf("%2d ",i); //%2dで、iが2桁に表示 } printf("\n"); printf("***************************\n"); //この罫線もどきの書き方はダサいので工夫してください for (i = 1; i<=9; i++){ for (j = 1; j<= 9; j++) { printf("%2d ", i*j); if (j == 9) printf("\n"); //1行表示後改行 } } return; //voidにしたので0を取った! } これがLinux(RedHat9)gccでは以下のエラーが出ます。 (test.c: 関数 `main' 内: test.c:4: 警告: `main' の戻り値の型が `int' ではありません)  なぜ、同じソースコードでエラーが起こるのですか?  Linux gccでは、この場合`int' 以外の何が必要なのでしょうか? 以上よろしくお願いします。

  • CとC++って何が違うのでしょうか?

    こんにちは。今までjavaでプログラミングしていたのですが、C言語を使わなくてはいけなくなりました。 そこで本屋さんに行って「初めてのCプログラミング」というのを買いました。それに付いてた「BorlandC++Compiler」というコンパイラをインストールして、プログラムを作成して実行しました。 昔、大学の授業ではコンパイルするとき「cc」、実行するときは「a.out」とした記憶があるのですが、これでは、「bcc」です。 もしかして、この本は、C言語ではなく、C++というCとは異なる高水準言語なのですか? C言語とC++とは全く異なるものなら、このまま、新しい本を買わないとどのような支障がでてくるでしょうか?

  • C言語をコンパイルしたいのですが、無料のコンパイル環境はありますか?

    学校で、C言語習いました。 課題で出されたレポートの動作確認をしたいのですが、コンパイル環境がありません。 学校に行けばコンパイルできるのですが、エラーが出たら持ち帰り家で考える→再度学校で実行→以下続く をしていたら時間がかかってしょうがありません。 フリーのコンパイル環境はあるのでしょうか? あれば入手方法を教えてください。(PC環境はWindowsXPです。) もちろん、違法入手ではなくて安全なものを探しています。 ない場合は、どのくらいの値段で売っているものなのでしょうか? 検索してよく見かけるのは、『Borland C++Compiler 5.5 』なのですが、Windows2000(!?)までしか対応しておらず、現在はサイトが停止(!?よくわからないのですが、DL不可)していたので入手できませんでした。 入手方法を知りたいのはもちろんなのですが、Cファイルを作成して実行する方法など、短くても簡単でもよいので合わせて使い方を教えていただければ嬉しいです。 あと、素人質問で申し訳ないのですが、C言語のコンパイラでC++やその他の言語のコンパイルはできますか?(その逆もできますか?)

  • 実行時エラー(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言語のオススメのコンパイラを教えてください

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

  • 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); }

専門家に質問してみよう