- ベストアンサー
現場のデバック方法
はじめまして。これまで私がデバックを行っていた方法として、あやしいところにprintf()を使って表示させて、バグが取り除けたらprintf()を消すという原始的な方法でしてきました。最近になって条件つきコンパイルやデバッカーを使うようになり、デバックも少しずつ楽になってきました。そこで実際にソフトウェア開発に携わったことのある方やその辺りの知識のある方にお伺いしたいのですが、どのようなデバックをなされているのでしょうか? (1)printf()を使う。 (2)条件つきコンパイルや組み込みマクロを使う。 #ifdef DEBUGや__DATE__などetc (3)デバッカーを使う。 私はemacs上でgdbを使っています。 (4)その他 ちなみに私の開発環境は ・プログラミング言語 : C言語 ・OS : FreeBSD ・エディタ : emacs ・コンパイラ : gcc です。 C言語以外のプログラミング言語での意見でも構いませんのでご意見をよろしくお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (6)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
- sha-girl
- ベストアンサー率52% (430/816)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
- tama_2001
- ベストアンサー率18% (21/111)
- sha-girl
- ベストアンサー率52% (430/816)
- Tsukasa0215
- ベストアンサー率22% (280/1257)
関連するQ&A
- emacsでデバックできない
linux & プログラミング初心者です。 GNU emacs 22.1.1を使いc++でのプログラミングを勉強しています。 間違ったプログラムを書いてM-x compile でコンパイルしたときに make: *** ターゲットが指定されておらず、makefileも見つかりません。中止。 とでてデバックできません。何が原因なのでしょうか?? OSはubuntu 7.10です。
- ベストアンサー
- C・C++・C#
- arm-linux-gdbをMeadowで使う方法ありますか?
Cを書くのに、GDB + Meadowを使い始めました。 今回、arm-linux-gccで、組込み用のプログラムをクロスコンパイルしています。そこで、M-x gdbのような感じで、arm-linux-gdbをMeadow上で使うことはできますでしょうか?(例えば、M-x arm-linux-gdb みたいな)やり方、もしくは、参考になるサイトがあればお教えください。 ちなみに、現段階では、gdbserverをターゲットに置いて、arm-linux-gdbをCygwin上から直接起動してデバッグすることには成功しております。Cygwin暦はそれなりにあるのですが、emacs関連の知識は最近始めたばかりで、ほぼ初心者レベルです。よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- Emacsでのgccのインクルードパスの設定方法
こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 gccのインクルードパスの問題により、Emcasのcompileコマンドで、Cのソースファイルをコンパイルするができなくて困っています。 具体的には、CのソースファイルをEmacsで開き、「M-x compile」と入力した後、ミニバッファで「gcc -c test.c」と入力すると、以下のようなコンパイルエラーが表示されます。 ------------------------------------------------------------ gcc -c test.c test.c:1:19: no include path in which to search for stdio.h Compilation exited abnormally with code 1 at Sun Jul 08 18:24:05 ------------------------------------------------------------ どうやら、インクルードパスが設定されていないようです。 ちなみに、test.cは以下のような非常に単純なCプログラムです。 ------------------------------------------------------------ include <stdio.h> int main(void) { printf("Hello!\n"); return 0; } ------------------------------------------------------------ コマンドプロンプトや、ktermといった端末から、同じように gcc -c test.c というコマンドを実行すると、エラーが出る事はなく上手くコンパイルできますので、 適切なインクルードパスが設定されているはずです。 どうすれば、Emacsのcompileコマンドから、gccでコンパイルを行う時に使われる、インクルードパスを設定する事ができるのでしょうか? (gccの-Iオプションで、毎回インクルードパスを設定する必要をなくす方法が知りたいです。) では、よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- Insightでデバックする際にSIGBUSでエラーになりデバックが進みません
初めて質問します。 マイコン初心者です。 現在、GCC Developer Liteを使用してSH7144の勉強をしているのですが、付属のデバッカのInsight(GDB6.1)でデバックしようとすると、"Program received signal SIGBUS, Bus error"というエラーが出てデバックが進まなく困っています。コンパイルしたソースを実機で動かすと動いている為、コンパイルの方法が悪いのか、Insightが悪いのかわからない状態です。 下記にソースファイルを示します。 #include <7144.h> void initIO(void) { PFC.PEIORL.WORD = 0x0003; } void wait(void) { long int t=1000000; while(t--); } void main(void) { initIO(); while(1) { PE.DRL.BIT.B0 = 1; wait(); PE.DRL.BIT.B0 = 0; wait(); PE.DRL.BIT.B1 = 1; wait(); PE.DRL.BIT.B1 = 0; wait(); } } プログラムはマイコンに接続したLEDを点滅させるプログラムです。 GCC Developer Liteでのコンパイルオプションはデフォルト、マイコンは"SH7144F 内蔵フラッシュROM"を選択しています。 御教授の程よろしくお願いいたします。
- 締切済み
- C・C++・C#
- gcc バージョン違いによるコンパイルエラー
C言語でWeb系のプログラムを作成している者です。 以前まで、OSはFreeBSD 4.11-RELEASE-p12・gccのバージョンは2.95.4でコンパイルできていたプログラムが、OSはFreeBSD 5.4-RELEASE-p8・gccのバージョンは・gccのバージョンは 3.4.2で、今まで出なかったようなエラーが沢山出現し、コンパイルできなくなってしまいました。 OSをインストールし直すのは、既に稼働中のサイトですので厳しく、GCCのバージョンを下げるかソースを書き換えるかして対処する方向で行きたいと考えております。 しかし、gccの2.95.4の圧縮ファイルはもう、gccの公式サイトに落ちておらず、バージョンダウンは難しそうです。 gccのバージョンによるコンパイルエラーを乗り越えた方、ご指摘など有りましたらお教えくださると幸いです。
- ベストアンサー
- C・C++・C#
- Foderaでプログラムを実行する方法
C言語の勉強のためにFodera Core 6を入れて Windowsとデュアルブート環境にしたのですが gccでコンパイルしたファイルを実行できません。 どうしたら実行できるのか教えてください。 プログラミングにはあんまり詳しくなくて 初歩的な質問ですみません。
- ベストアンサー
- C・C++・C#
- bash.exeを直接起動するとgccが実行できま
C言語を始めてみようと思ってcygwinをインストールしました。初心者です。 Cygwin.batから起動するとキチンとgccコマンドが使えるのに、bash.exeから直接起動すると、なぜかcommand not foundとなってしまいます。emacsからコンパイルできるようにしたいと思っているので、不都合で困っています。どうすればよいのでしょうか。
- ベストアンサー
- C・C++・C#
- Ubuntuで手軽にSubversionを使いたい
Ubuntu 11.04で簡単に設定できてGUIでソースのバージョン管理できるツールを教えていただきたいです。 会社の研修で、LinuxでのC言語プログラミングをやっています。 GUIの端末上でviでソースを書いてgccでコンパイル、という原始的なスタイルですが、ソース管理のためにSubversionを入れようとしています。 しかし、検索して見つけたnautilussvnとかtortoisehg-nautilusとかをいくつか試したんですが、うまく動いてくれない上に、OSの動作まで不安定になってしましました。 途中で自分がなにかおかしなことをやったんだろうなとは思いますが、原因を考えることに時間を使いたくないので、環境作成をOSインストール(VMware2.5.5+Ubuntu)からやり直そうと思っています。 昔、Windowsでプログラムを書いていたときにTortoiseSVNというのを使っていたので、できればGUIがいいんですが、プログラム開発自体がかなり原始的なので、CUIでも良いツールがあれば教えていただきたいです。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- h8300-linux-elf-gccで指定可能な配列の大きさ
AKI-H8/3069Fを使ってプログラムのC言語による組込ソフトの勉強をしています。そこで、教えていただきたいのですが、配列の大きさの上限値はいくつなのでしょうか? 例えば、unsigned int char a[1025];としてもコンパイル時にエラーが出なければ大丈夫なのでしょうか? 参考にしているのは、書籍『はじめる組込みLinux』です。そして、そのサポートサイトからダウンロードしたGCCコンパイラ(h8300-linux-elf-gcc)を使用しています。
- 締切済み
- C・C++・C#
お礼
回答ありがとうございます。とても参考になりました。規模が大きくなるとデバック用の関数も作成するのは初めて聞きました。makeコマンドで自動チェックやCVSもまだまだ浅はかな知識しか持ち合わせていないので勉強したいと思います。どうもありがとうございました。