Linux中printk和strace命令调试的一些技巧
生活随笔
收集整理的這篇文章主要介紹了
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 放到開發板的bin目錄下 */
strace -o log.txt ./test on ? ? ? ?/* ./test on就是我們需要跟蹤的命令,后面可以跟任意的命令 */
就會生成一些系統調用信息放到log.txt中。
總結
以上是生活随笔為你收集整理的Linux中printk和strace命令调试的一些技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 容器、二叉树操作、107
- 下一篇: 关于tar无法解压缩问题