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