*参照元 [#cce305f9] #backlinks *注意 [#g861fc5e] -より新しいバージョンがあります。 --[[linux-2.6.33/BUG()]] *説明 [#pd9831e5] -パス: [[linux-2.6.25/include/asm-generic/bug.h]] -バグ警告を出してカーネルを停止(パニック)させる。 **引数 [#na0af98b] -なし **返り値 [#j5fc4ae9] -なし **参考 [#d68682db] -x86 版の実装 --[[linux-2.6.25/BUG()(x86)]] -他のバージョンがあります。 --[[linux-2.6.33/BUG()]] *実装 [#e7675614] ***CONFIG_BUG が未定義の場合 [#pc0c4952] #ifdef CONFIG_BUG (...略...) #ifndef HAVE_ARCH_BUG -アーキテクチャ固有の BUG() がなければ共通の BUG_ON を使う。 --ほぼ全てのアーキテクチャが独自の BUG_ON を定義している。 #define BUG() do { \ printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__ ); \ panic("BUG!"); \ } while (0) -バグ警告(バグの発生したソースファイル、行番号、関数名)を表示して、 カーネルパニックさせる。 --[[linux-2.6.25/printk()]] --[[linux-2.6.25/panic()]] #endif (...略...) ***CONFIG_BUG が未定義の場合 [#f656daf4] #else /* !CONFIG_BUG */ #ifndef HAVE_ARCH_BUG #define BUG() -何もしない #endif (...略...) #endif *コメント [#q589800b]