Linux中printk和strace命令调试的一些技巧

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 -o log.txt ./test on

你可能感兴趣的:(调试,编译,嵌入式开发,交叉编译,Linux驱动开发)