“工欲善其事必先利其器”,Biu~大家好, 今天小编带大家磨刀,正所谓“磨刀不误砍柴工”,当你提着40米的大刀,你可以笑看先跑39米的对手,可见工具的重要性。
Debug是程序猿的必修课,是程序猿的必杀技,是程序猿的40米大刀。不会debug的程序猿不配穿格仔衫,不会debug的程序猿不配拥有光头,而会debug的程序猿光头的速度会比普通人快几倍。
新版本的pydbg加入了两个设备同时打印功能,不是那种分开打印,而是把log打印到同一个界面中,这大大方便了程序猿查看和对比log,挺高工作效率。那么如何去使用这个功能呢?
首先,这个功能在MDE中是可以使用,我们只需要接上需要打印log的设备,到MDE右下角的这个小圈圈去刷新识别到设备
当有两个设备时,就可以开始打印了,打开pydbg,并开始运行
点击开始后,就会有个弹窗出来,选择OK
这时窗口就可以对这两个设备写指令了,但这个指令和之前的指令不一样,毕竟有两个设备了,一样就傻傻分不清了。这里面的设备用A和B区分,A是第一个设备,也就是右下角显示的那个
对A写指令就在原来的指令前缀多加一个A,B也如此,例如:
原来是apps1.live_log(),现在就是apps1A. live_log()
如两个一起打log是apps1AB. live_log()吗?
当然不是啦~
是用system.apps1.live_log(),输入之后就能清楚看到A和B的log
Tips:当前的log是有等级的,换句话说就是log根据等级限制来决定哪些log要打印,这个等级在logging.h中的DEFAULT_LOG_LEVEL设置,对应的等级在中debug_log_level_t定义。那如果我已经打印了呢,要重新烧程序?不需要。只需要在pydbg中输入apps1.fw.gbl.debug_log_level__global.value = 5 即可改变,再用apps1.fw.gbl.debug_log_level__global就能看到是否已经修改。如果是接了两个设备的,记得指令修改一下前缀。
本篇再说另外一个技巧,很多人想打印开机时的log,但往往手速没有当年快了,总是来不及输指令。这里默认有个暂停的功能,让你准备好了再继续工作
在工程中加入INIT_DEBUG 宏定义即可
里面的函数,实际就是在等一个pydbg的指令,让这个while循环跳出来,apps1.fw.env.vars['appInitDebugWait'].set_value(0)输入之后,系统就开始正常工作了。记得不用debug时,关闭这个,不然开不了机都不知道怎么回事。
如想要了解别的基本debug功能,可以回看“Biu~笔记:高通蓝牙ADK6.x(3)-- Pydbg常用功能(点我(*^▽^*))”。以上是本期博文的全部内容,如有疑问请在博文下方评论留言,或者有什么想了解的都可以留言,我会尽量安排上(o´ω`o)و。谢谢大家浏览,我们下期再见。
多看文档,多上官网
多看文档,多上官网
多看文档,多上官网
评论
melodydiy
2023年1月3日
Biu~
2020年9月25日
Biu~
2020年9月14日
Gavin
2020年9月9日
Biu~
2020年9月8日
Biu~
2020年9月4日
Carrie
2020年8月21日
Carrie
2020年8月21日