博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内核dynamic_debug调试相关
阅读量:3557 次
发布时间:2019-05-20

本文共 7147 字,大约阅读时间需要 23 分钟。

内核中有用pr_debug及dev_debug的log输出, 可以使用内核动态调试开关来选择。

 

具体操作如下:

1. make menconfig 使能 dynamic_debug相关配置

2. cat /sys/kernel/debug/dynamic_debug/control  | grep "dwc3/gadget.c"

debug/control :/run/media/mmcblk0p1# cat /sys/kernel/debug/dynamic_debug/control | grep "dwc3/gadget.c"drivers/usb/dwc3/gadget.c:814 [dwc3]dwc3_gadget_ep_enable =_ "dwc3: invalid parameters\012"_ddrivers/usb/dwc3/gadget.c:819 [dwc3]dwc3_gadget_ep_enable =_ "dwc3: missing wMaxPacketSize\012"drivers/usb/dwc3/gadget.c:846 [dwc3]dwc3_gadget_ep_disable =_ "dwc3: invalid parameters\012"drivers/usb/dwc3/gadget.c:2679 [dwc3]dwc3_endpoint_interrupt =_ "Stream %d found and started"

3. 此时动态打印时关闭的, 如何开启?

echo -n 'file gadget.c +p' > /sys/kernel/debug/dynamic_debug/control     即可

查看有啥区别

debug/control :/run/media/mmcblk0p1# cat /sys/kernel/debug/dynamic_debug/control | grep "dwc3/gadget.c"drivers/usb/dwc3/gadget.c:814 [dwc3]dwc3_gadget_ep_enable =p "dwc3: invalid parameters\012"_ddrivers/usb/dwc3/gadget.c:819 [dwc3]dwc3_gadget_ep_enable =p "dwc3: missing wMaxPacketSize\012"drivers/usb/dwc3/gadget.c:846 [dwc3]dwc3_gadget_ep_disable =p "dwc3: invalid parameters\012"drivers/usb/dwc3/gadget.c:2679 [dwc3]dwc3_endpoint_interrupt =p "Stream %d found and started"

是滴...后面有个p...

 


ok, 不管咋样, 这样这个log就能输出了...

哦, 不对, 还是没看见相应log啊...

忘了一句 echo 8 > /proc/sys/kernel/printk

 


ok, 具体内容挺多, 也很灵活, 可参考内核文档:

Documentation/admin-guide/dynamic-debug-howto.rst

 

摘录一些内容:

208 The flags specification comprises a change operation followed                                                                    209 by one or more flag characters.  The change operation is one                                                                     210 of the characters::                                                                                                              211                                                                                                                                  212   -    remove the given flags                                                                                                    213   +    add the given flags                                                                                                       214   =    set the flags to the given flags                                                                                          215                                                                                                                                  216 The flags are::                                                                                                                  217                                                                                                                                  218   p    enables the pr_debug() callsite.                                                                                          219   f    Include the function name in the printed message                                                                          220   l    Include line number in the printed message                                                                                221   m    Include module name in the printed message                                                                                222   t    Include thread ID in messages not generated from interrupt context                                                        223   _    No flags are set. (Or'd with others on input)
308 Examples                                                                                                                         309 ========                                                                                                                         310                                                                                                                                  311 ::                                                                                                                               312                                                                                                                                  313   // enable the message at line 1603 of file svcsock.c                                                                           314   nullarbor:~ # echo -n 'file svcsock.c line 1603 +p' >                                                                          315 ›   ›   ›   ›   
/dynamic_debug/control 316 317 // enable all the messages in file svcsock.c 318 nullarbor:~ # echo -n 'file svcsock.c +p' > 319 › › › ›
/dynamic_debug/control 320 321 // enable all the messages in the NFS server module 322 nullarbor:~ # echo -n 'module nfsd +p' > 323 › › › ›
/dynamic_debug/control 324 325 // enable all 12 messages in the function svc_process() 326 nullarbor:~ # echo -n 'func svc_process +p' > 327 › › › ›
/dynamic_debug/control 328 329 // disable all 12 messages in the function svc_process() 330 nullarbor:~ # echo -n 'func svc_process -p' > 331 › › › ›
/dynamic_debug/control 332 333 // enable messages for NFS calls READ, READLINK, READDIR and READDIR+. 334 nullarbor:~ # echo -n 'format "nfsd: READ" +p' > 335 › › › ›
/dynamic_debug/control

ok, that's it.

转载地址:http://wscrj.baihongyu.com/

你可能感兴趣的文章
泛型详解
查看>>
泛型实现斗地主
查看>>
List集合
查看>>
ArrayList集合,LinkedList集合,Vector集合
查看>>
HashSet集合
查看>>
并发与并行,线程与进程
查看>>
方法引用,通过对象名引用成员变量
查看>>
常用工具类 Math:数学计算 Random:生成伪随机数 SecureRandom:生成安全的随机数 2020-2-13
查看>>
Java的异常Exception 2020-2-13
查看>>
Java标准库定义的常用异常,自定义异常 2020-2-15
查看>>
Java问题百度/Google记录 2020-2-16
查看>>
【PADS9.5】9,对比ECO核心板,Router移动元件后布线消失,Router找不到自动布线策略文件丢失或损坏
查看>>
【STM32+w5500汇总】23,HTTP_Client 连接到ONENET上传了一段数据之后会断开,数据上传格式的设置
查看>>
【STM32+W5500+MQTT】24,所有功能都可以通过API函数的调用来实现;HTTP接入ONENET,API开发手册和打包函数,串口软件HTTP连接服务器上传数据,2018年12月28日
查看>>
【STM32+W5500+HTTPClient】25,路由器DHCP租赁IP时间为2h,NetBios可以很好的解决IP变化的问题,DNS,2018年12月25日
查看>>
【STM32+MQTT+ONENET】26,MQTT协议接入OneNET
查看>>
【STM32+W5500+MQTT+ONENET】27,MQTT协议接入OneNET实际编程操作 2018年12月27日
查看>>
【STM32Cube+FreeRTOS 】28,KEIL5的F12不起作用;***JLink Error: Can not read register x while CPU is running
查看>>
【STM32CubeMX+FreeRTOS 】29,prtinf卡死;4任务只运行了3个;W5500联网失败(堆栈不能太大或者太小)
查看>>
【STM32+FreeRTOS +W5500移植要点】30,RTOS中断;从TIM2,主TIM3;RTOS主要用在LCD中;RT-Thread;标志重定义问题 2019年01月22日
查看>>