アサーションは非常に役立つ形式のアクティブドキュメントです。ASSERT(9F) の構文は次のとおりです。
void ASSERT(EXPRESSION)
ASSERT() マクロは、真であることが予期されている条件が実際には偽である場合、カーネルの実行を停止します。ASSERT() はプログラマに、特定のコードによって作成された前提条件を検証する方法を提供します。
ASSERT() マクロが定義されるのは、DEBUG コンパイルシンボルが定義されている場合のみです。DEBUG が定義されていない場合、ASSERT() マクロは有効になりません。
次のアサーションの例では、特定のポインタの値は NULL ではないという前提条件をテストしています。
ASSERT(ptr != NULL);
ドライバが DEBUG を使用してコンパイルされていて、実行のこの時点で ptr の値が NULL である場合、次のパニックメッセージがコンソールに出力されます。
panic: assertion failed: ptr != NULL, file: driver.c, line: 56