ページビューの合計

2011年9月13日火曜日

linuxプログラミングでのバグとりgcc,make,ddd

UNIXでの統合開発環境emacsでのプログラミング作業環境を引き続き構築する。(windows環境でのプログラミングは多くの方が行っており・・・visual studioの簡易無料版など、UNIXではfreeで、制限のないプログラミングが出来るので)

プログラミングで一番手こずるのがバグ取りだ。UNIXの長い歴史でこの分野の 開発tool が成長している。

バグには3つの種類がある。

①コンパイルエラー:コンパイルの際その言語の文法にそぐわないためバイナリー(機械語)に変換出来ない。
②ランタイムエラー:実行ファイルになってからのエラーで実行時に発生するエラー。
③論理エラー:コードのコンパイルと実行でエラーが発生しなくても、操作の結果が予想と異なるエラー。


emacsには、この3つのバグ取り作業 tool がシームレスにメニューにあり、この3つに対応した作業が出来る。

①にはgccがありメニューのコンパイルをクリックすればコンパイルモードに変身し、コンパイル出来ない箇所を一覧に表示する。バグのある行番号が明示されるのでこれをクリックとソースコード該当箇所に飛びバグ取り作業が行える。emacsを2つ起動して作業すれば迅そくに作業が行える。

②にはGDBがメニューにある。GDBはGCCでコンパイルされたデバック情報を扱うことが出来デバッガーだ。 ただしこれを使う場合、コンパイル時に -g オプションをつける。gdbで使えるデバック情報が実行ファイルに追加される。 (sampleファイルのコンパイル)

    $ gcc -g -o sample sample.c
 
(注意しなければいけないのは通常のコンパイルでは -g は外す。処理が遅くなるので。makeファイルを、test用と2つつくるとよい)

③についてはDDDがある。②の作業をGUIで行うツールで GDB のフロントエンドとなってり、③の作業もこれによって大巾にデバッグ作業が視覚化され、はかどる。
 DDDは各デストリビューションのリポジトリーからGUIツール(yumなど)で簡単にインストール出来た。MULTI_BOOT環境でのプログラミング環境構築がすすむ。