2012年12月6日木曜日

Ada勉強メモ 3

ADA-言語とプログラミング方法論』p.3「Ada 入門」から読みます。

1.1 背景
  • Adaは米国国防総省(DoD)が、1976年頃から開発を始めた。
  • FORTRANやCOBOLのように特定の用途向けではなく、Adaは汎用言語。
  • Adaは世界最初のプログラマの名前。

1.2 プログラミング言語Ada
  • Adaはコンパイル言語である。
  • オブジェクトプログラム(機械語プログラム)は、通常「プログラムライブラリ」に格納される。
    • プログラムライブラリって、Cで言うところのライブラリと同じかな?
  • プログラムライブラリには、完結したプログラム、副プログラム、パッケージが格納される。
  • Adaの識別子は文字から始まり、文字、アンダースコア、数字の羅列。ただしアンダースコアの連続はダメ
今日はここまで。
Adaの歴史と基本的な約束事が分かりました。
次回はいよいよAdaのプログラムを書いていきます。

2012年12月3日月曜日

【Eclipse】プラグインをデバッグする

Eclipseのプラグインでデバッグメッセージを出力する良い方法が見つかったのでメモ。

問題


  • Eclipseに自作プラグインを入れてEclipseを通常起動させても、標準出力・標準エラー出力が表示されない。
    つまり System.out.println を用いてデバッグメッセージを表示しようと思っても、画面に表示されない。
  • java.util.logging.Loggerを使おうと思っても、やっぱり標準出力が表示できないので無意味。
    もし標準出力が出るようになっても、ロギングレベルの設定方法が分からない。(まさか常にsetLevel(Level.ALL)するわけにも行かないですし)

やりたいこと

デバッグしたいなあ、と思ったときに、プラグインを再コンパイルせずに、デバッグメッセージをターミナルへ表示したい


解決策

Eclipseをデバッグモードで起動する方法を覚える

詳しくはRunning Eclipseを読みましょう。要点をまとめます。

Eclipseは
$ eclipse -debug
でデバッグモードで起動できます。Macならこんな感じ。
$ /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse -debug

さらに、 -consolelog オプションを付けると、標準出力がコンソールへ接続されます。

プラグインのデバッグメッセージの表示のON/OFFをフラグ化


フラグ化することで、プラグインの再コンパイルなしにデバッグメッセージのON/OFFを制御できるようになります。

こんなクラスを作ります。
/**
 * .options読み込みクラス
 * @author uchan
 *
 */
public class DebugOptions {

    public static final boolean verbose;

    static {
        verbose = Boolean.parseBoolean(Platform.getDebugOption(
                "com.github.uchan_nos.c_helper/verbose"));
    }
}

プログラム中では
if (DebugOptions.verbose) {
    logger.fine("debug message");
}
という風に使います。

あとはこんな感じの設定ファイルを作ります。

~/eclipse.options
# Output verbose messages
com.github.uchan_nos.c_helper/verbose=true

そして、Eclipseの -debug オプションの引数として指定します。

$ eclipse -debug ~/eclipse.options

起動ログに

Debug options:
    file:/Users/uchan/eclipse.options loaded
という表示があれば成功です。