打印方法集锦:
将当前函数名、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
联系客服