void mdb_warn(const char *format, ...);
エラーまたは警告メッセージを標準エラーに出力します。mdb_warn() 関数では、書式文字列と mdb_printf() で掲げられているすべての指示子を含む可変の引数リストを指定することができます。ただし、mdb_warn() の出力が標準エラーに送られる場合は、バッファには格納されず、出力ページャを通して送信されたり、dcmd パイプラインの一部として処理されることはありません。すべてのエラーメッセージの先頭には自動的に、“mdb:” という接頭辞が付けられます。
さらに、format パラメータには復帰改行 (\n) 文字は含まれず、書式文字列の先頭には暗黙的に文字列 “ : %s\n” が付けられます。 ここで、%s は、モジュール API 関数が最後に記録したエラーに対応するエラーメッセージ文字列に置換されます。 たとえば、次のソースコードの場合を考えます。
if (mdb_lookup_by_name("no_such_symbol", &sym) == -1) mdb_warn("lookup_by_name failed");
この場合、次のような出力が得られます。
mdb: lookup_by_name failed: unknown symbol name