Links
UJML Language Reference
デバッグ

デバッグとは、ソースコード内のエラーを探し出し修正する作業のことを指します。

プログラムのデバッグとは、アプリケーションを誤動作させているソースコード内のミスを探し出し修正する作業のことを指します。  

UJMLは _trace() 関数と条件付きコンパイル機能を通じて、言語レベルのデバッグサポートを提供しています。 関連項目: コンパイル_trace() function。 またコードをステップ実行や、ランタイム時の変数の値を表示する機能を備えた、 言語レベルのサポートを必要としないUJML用のデバッガプログラムもあります。 これらの機能を使用するには、'Debug' 設定を有効にしてプログラムをコンパイルします。 関連項目: コンパイル

_trace() 関数の使用方法

_trace() 関数を任意のスクリプティングコード内の場所から呼ぶと、デバッガーのトレースペーン またはその他の出力用デバイスに文字列値が出力されます。 関連項目: _trace() function_trace() 関数を使用するには、コンパイラ設定 'Trace' を有効にしなければなりません。

条件付きコンパイルの使用

条件付きコンパイルは、条件付きコンパイル名の定義に従い、UJMLファイル内の特定部分のコードを選択的にコンパイルします。 例えば、コンパイル名 'DEBUG' が定義されている場合にのみコンパイルしたい箇所を'DEBUG' で指定します。'DEBUG' で指定されたコードブロックにデバイスの画面に値を表示するなどの処理を記述することにより、コードの中で何が起こっているかを把握することが容易になります。

次の例では、ローカル変数の値をデバッガーのトレースペーンに出力しています。 このサンプルコードは、events.ujml サンプルコードの一部です。

_trace(message);

 

次の例では、ヘルプテキストを作成する関数をオーバーライドして文字列を出力し、デバイスコンテキストを一覧表示しています。 このサンプルコードは lunarlander.ujml サンプルコードの一部です。

<?ujml-ifdef DEBUG?>
<!--
    Builds a string listing the device context.
-->
<function name="getHelpText" type="string">
    <variables>
        <var name="text" type="string" />
    </variables>
    <script>
        text = _strcat("PLATFORM: ", _getStringProperty(&_PROPERTY_STRING_PLATFORM;));

        text = _strcat(text, " -- SCREEN WIDTH: ",
            _getIntProperty(&_PROPERTY_INT_SCREEN_WIDTH;));

        text = _strcat(text, " -- SCREEN HEIGHT: ",
            _getIntProperty(&_PROPERTY_INT_SCREEN_HEIGHT;));

        text = _strcat(text, " -- COLOR DEPTH: ",
            _getIntProperty(&_PROPERTY_INT_COLOR_DEPTH;));

        text = _strcat(text, " -- PREFERRED IMAGE EXTENSION: ",
            _getStringProperty(&_PROPERTY_STRING_PREFERRED_IMAGE_EXTENSION;));

        text = _strcat(text, " -- PREFERRED SOUND EXTENSION: ",
            _getStringProperty(&_PROPERTY_STRING_PREFERRED_SOUND_EXTENSION;));
    </script>
    <return>
        <eval>text</eval>
    </return>
</function>
<?ujml-else?>
Copyright (c) 2000-2005 by UIEvolution, Inc. All rights reserved.
この項目に関するフィードバックをお寄せください。 Send feedback!