linux C 打印方法集锦

打印方法集锦:


将当前函数名、line number打印出来 同时将打印字符设置为蓝色
printk("\033[0;34m function and line [%s][%d] \033[0m\n",__FUNCTION__,__LINE__);

打印当前时间
printk("\033[0;34m Date and time is [%s][%s] \033[0m\n",__DATE__,__TIME__);

打印函数指针所指向的函数名:
%p:打印裸指针(raw pointer)
%pF可打印函数指针的函数名和偏移地址
%pf只打印函数指针的函数名,不打印偏移地址。

printk("%pf",func[0]->action); 结果:

打印MAC地址
%pM打印冒号分隔的MAC地址
%pm打印MAC地址的16进制无分隔

printk("%pM %pm\n", mac, mac) willprint:
2c:00:1d:00:1b:00 2c001d001b00

打印IP地址:
%I4打印无前导0的IPv4地址,%i4打印冒号分隔的IPv4地址
%I6打印无前导0的IPv6地址,%i6打印冒号分隔的IPv6地址

printk("%pI4 %pi4\n", ip, ip) will print:
127.0.0.1 127:0:0:1

其它的特殊格式字符参见
http://lxr.linux.no/#linux+v2.6.34/lib/vsprintf.c#L930


linux下还可以通过backtrace、backtrace_symbols、backtrace_symbols_fd这样的函数,结合-rdynamic


你可能感兴趣的:(Linux)