前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3

27.1. 診断用マクロ

表 27.1. 診断用マクロ

マクロ 意味
TRACE デバッグメッセージを BREW 出力ウィンドウに表示します。
ASSERT BREW シミュレータ用ビルドの場合、引数の評価結果が false であるとき、警告メッセージを BREW 出力ウィンドウに出力します。 BREW 実機用ビルドの場合、警告メッセージは出力されず、引数も評価されません。
VERIFY BREW シミュレータ用ビルドの場合、引数の評価結果が false であるとき、警告メッセージを BREW 出力ウィンドウに出力します。 BREW 実機用ビルドの場合、警告メッセージは出力されませんが、引数は評価されます。
[Caution] 注意
診断用マクロは、TARGET_BUILD_DEBUG マクロが定義されているときのみ有効になります。

27.1.1. TRACE マクロ

TRACE マクロは、デバッグ出力を行うときに使います。

TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていると、 TRACE マクロは SFXHelper::dbgprintf ( BREW ヘルパー関数 DBGPRINTF ) に置き換えられます。

使用例

ComplicatedCaculation の戻り値とコード上での現在値を BREW 出力ウィンドウに表示します。

SInt16 ComplicatedCaculation(SInt16 data);

Void Evaluate(Void)
{
  SInt16 val = 0;
  ...  // val の値が変化するような処理
  SInt16 result = ComplicatedCalculation(val);
  TRACE("result = %d (in Evaluate, Line = %d)", result, __LINE__);
  ...
}
[Caution] %s / %S

TRACE マクロの最初のパラメータ(書式制御文字列)の中で %s / %S を使用して文字列変数の値を表示する場合、 対応する変数の型はそれぞれ ACharConstPtr / WCharConstPtr でなければいけません。

SFXAnsiString / SFXWideString クラスの文字列を表示するには、 下記の例にあるようにそれぞれ SFXAnsiString::GetCString / SFXWideString::GetCString 関数を使用して ACharConstPtr / WCharConstPtr 型の文字列へのポインタを取得する必要があります。

SFXAnsiString ansi("ANSI_STRING");
SFXWideString wide("WIDE_STRING");

TRACE("SFXAnsiString = %s, SFXWideSring = %S", ansi.GetCString(), wide.GetCString());
[Caution] TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていない場合

TRACE マクロは "空" として定義されます。TRACE マクロの引数への代入やメンバ変数を変更する関数の呼び出しには注意が必要です。

参照: BREW API DBGPRINTF

27.1.2. ASSERT マクロ

ただ 1 つの Bool 型引数を持つ ASSERT マクロは、「必ず満足すべき条件」を開発時に検証するときに使います。 (BREW シミュレータ用ビルドとBREW 実機用ビルドでプログラムの動作が異なることがあります。)

TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていると(BREW シミュレータ用ビルドの場合)、 引数を評価した値が false であれば、ソースファイル名と行番号を含む警告メッセージとを BREW 出力ウィンドウに表示します。

使用例

// Example.cpp

SFMTYPEDEFCLASS(MyClass)
class MyClass{
public:
  Initialize(Void);
...
};

...
// ここが 4093 行目
Void Function(MyClassConstPtr obj)
{
  ASSERT(obj != null); // Function に渡される引数の値が NULL でないことを検証する
  obj->Initialize;
...
}
...
[Note] 注意
obj が空ポインタではないことを確認しています。 obj が空ポインタである場合は、BREW 出力ウィンドウに
ASSERT failed : line 4096, file 'Example.cpp'
と表示します。
[Caution] TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていない場合(BREW 実機用ビルドの場合)

ASSERT マクロは "空" として定義されます。ASSERT マクロの引数への代入やメンバ変数を変更する関数の呼び出しには注意が必要です。

[Caution] その他

ASSERT マクロは引数の比較結果が偽の場合は警告メッセージを表示するだけです。プログラムは停止しません。

27.1.3. VERIFY マクロ

ただ 1 つの Bool 型引数を持つVERIFY マクロは、「必ず満足すべき条件」を開発時に検証するときに使います。 (BREW シミュレータ用ビルドとBREW 実機用ビルドでプログラムの動作は同じです。)

TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていると(BREW シミュレータ用ビルドの場合)、 引数を評価した値が false であれば、ソースファイル名と行番号を含む警告メッセージとを BREW 出力ウィンドウに表示します。

TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていないと(BREW 実機用ビルドの場合)、 引数の評価だけを行います。

[Caution] TARGET_ENVIRONMENT_SIMULATOR マクロが定義されていない場合(BREW 実機用ビルドの場合)

ASSERT マクロと違うのは、VERIFY マクロの場合、引数が評価される点だけです。