内核打印基本规则
dev_info(): 启动过程、或者模块加载过程等“通知类的”信息等,一般只会通知一次,例如probe函数;
dev_dbg(): 一般使用在普通错误,如-EINVAL、-ENOMEM等errno发生处,用于调试;
dev_err(): 一般使用在严重错误,尤其是用户无法得到errno的地方,或者程序员不容易猜测系统哪里出了问题的地方;
打印dev_dbg
A) dynamic_debug
CONFIG_DYNAMIC_DEBUG=y & CONFIG_DEBUG_FS=y
mkdir debugfs
mount -t debugfs none */debugfs
cat /mnt/dbg/dynamic_debug/control
[ping]ping_rcv =_ "no socket, dropping\012" 不会打印
[ping]ping_rcv =p "rcv on socket %p\012" 则会打印
函数dynamic debug
echo -n 'func xxx +p' > */debugfs/dynamic_debug/control
echo -n 'func xxx -p' > */debugfs/dynamic_debug/control
文件dynamic debug
echo -n 'file alicert.c +p' > */debugfs/dynamic_debug/control
echo -n 'file alicert.c -p' > */debugfs/dynamic_debug/control