dmesg @打印存在数组中的信息
console=ttySAC0 @print to console
console=tty1 @print to lcd
打印方法一:
#define DBG_PRINTK printk //打印#define DBG_PRINTK(...) //不打印
DBG_PRINTK("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);
printk("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);
打印方法二:
msg_log_level < console_loglevel (默认是7)
printk(KERN_DEBUG"%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);
打印级别为7,不会打印,所以扩大这个取值范围。动态修改打印级别
cat /proc/sys/kernel/printk
7 4 1 7
modify :
echo "8 4 1 7" > /proc/sys/kernel/printk
打印三:debug=10
去掉所以内核调试信息,设置console_loglevel为0,可以在bootargs中设置
set bootargs loglevel=0 console=ttySAC0,115200 root=/dev/mtdblock3
set bootargs debug console=ttySAC0,115200 root=/dev/mtdblock3
应用程序调试:源码下载地址:点击这里!
strace调试:
tar -xjvf strace-4.5.15.tar.bz2 /* 解压 */
cd strace-4.5.15
patch -p1 < ../strace-fix-arm-bad-syscall.patch /* 打补丁 */
./configure --host=arm-linux CC=arm-linux-gcc /* 配置 */
make && cp strace /work/nfs_root/ /*编译并把strace 放到开发板的bin目录下 */
strace -o log.txt ./test on /* ./test on就是我们需要跟踪的命令,后面可以跟任意的命令 */
就会生成一些系统调用信息放到log.txt中。