LibCrossライブラリ - デバッグ関数

_ASSERT

ASSERTの出力

書式

int _ASSERT( nFlag ) 
int nFlag 

引数

nFlag   ASSERT発行フラグ

戻り値

常に0

解説

ASSERTの発行を行います。

引数 nFlag は、ASSERT発行の評価のために用いられます。 引数に与えた演算式の評価結果が、偽(0)のときのみASSERTがホストに発行されます。 ホストはASSERTを受け付けると、ダイアログボックスを表示してユーザーの指示を待ちます。 次の3つの項目から選択してください。

 ボタン   意味 
 Yes   プログラムを終了させ、CodeScapeの _ASSERT行にカーソルを移動する 
 No   ASSERTを無視し、プログラムの実行を継続する 
 Cancel   ダイアログボックスをキャンセルし、すべてのASSERTを進める 

CodeScapeの[Tools]メニューの[Option...]で表示される[Global Options]ダイアログボックスで、 ステータスの表示とセット、およびすべて無視をコントロールすることができます。

コンパイラは、次に続く_ASSERTインストラクションの上でCodeScapeを止めるためのコードを生成します。 以下のサンプルプログラムは _ASSERT行で止めることを確実にするマクロを含んでいます。 また、このプログラムではすべてのASSERT行をいっぺんに無効にするように記載されています。
{
/*
* Macro Redefinition of _ASSERT to ASSERT. This is performed to cause the
* compiler to insert at least one opcode after the jsr _ASSERT has returned
* it also permits the ASSERT code to be included / removed based on a
* compiler define.
*/
#ifdef _DEBUG_BUILD_
/* Since _ASSERT always return zero the expression will only be evaluated once */
#define ASSERT(X) while(_ASSERT(X)){ ; }
#else
#define ASSERT(X)
#endif /* _DEBUG_BUILD_ */
}


_ASSERT
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999