Linux中printk和strace命令调试的一些技巧
dmesg ? ? ? ? ? ? ? ? ? ? @打印存在數(shù)組中的信息?
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,不會打印,所以擴大這個取值范圍。動態(tài)修改打印級別
cat /proc/sys/kernel/printk
7 ? ? ? 4 ? ? ? 1 ? ? ? 7
modify :
echo "8 4 1 7" > ?/proc/sys/kernel/printk
打印三:debug=10
去掉所以內(nèi)核調(diào)試信息,設(shè)置console_loglevel為0,可以在bootargs中設(shè)置
set bootargs loglevel=0 console=ttySAC0,115200 root=/dev/mtdblock3?
set bootargs debug console=ttySAC0,115200 root=/dev/mtdblock3?
應(yīng)用程序調(diào)試:源碼下載地址:點擊這里!
strace調(diào)試:
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 放到開發(fā)板的bin目錄下 */
strace -o log.txt ./test on ? ? ? ?/* ./test on就是我們需要跟蹤的命令,后面可以跟任意的命令 */
就會生成一些系統(tǒng)調(diào)用信息放到log.txt中。
總結(jié)
以上是生活随笔為你收集整理的Linux中printk和strace命令调试的一些技巧的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 容器、二叉树操作、107
- 下一篇: 自动批量修改linux用户密码