STREAMS Programming Guide

Kernel Debug Printing

The kernel routine cmn_err(9F) enables printing of formatted strings on a system console. It displays a specified message on the console and can also store it in the msgbuf that is a circular array in the kernel. The format of cmn_err(9F) is:

#include <sys/cmn_err.h>

void cmn_err (int level, char *fmt, int args)

where level can take the following values:

fmt and args are passed to the kernel routine printf that runs at splhi and should be used sparingly. If the first character of fmt is ! (an exclamation point), output is directed to msgbuf. msgbuf can be accessed with the crash command. If the destination character begins with ^ (a caret) output goes to the console. If no destination character is specified, the message is directed to both the msgbuf array and the console.

cmn_err(9F) appends each fmt with “\n”, except for the CE_CONT level, even when a message is sent to the msgbuf array. args specifies a set of arguments passed when the message is displayed. Valid specifications are %s (string), %u (unsigned decimal), %d (decimal), %o (octal), and %x (hexadecimal). cmn_err(9F) does not accept length specifications in conversion specifications. For example, %3d is ignored.

Note –

crash has reached EOL and is not supported in the Solaris 9 operating environment. For information about how to transition from crash to mdb, see the Solaris Modular Debugger Guide.