没人能保证自己编码一次成功,只要Coding,就难免有Bug。因此才有了《Tool之Debugger》存在的必要;在调试过程中,又难免添加一些打印语句,通常使用函数printf(),或者logMsg(),再或者《Component之kprintf》。但这会改变代码,并且需要重新编译、下载,有些麻烦。有没有更省事的方法呢?可以考虑WorkBench的"dynamic printf"
这个"dynamic printf"是从Vx67开始新加的功能。它是在WorkBench中(而不是Code中),基于断点,动态插入打印语句,当程序执行到特定位置时,可以用来打印变量的值,目前支持的变量类型有int和char*
启动一个最简单的例子
程序里有个变量i,它的值一直在变。因为是Local的,不能在Shell里查看它;加断点的话,又会打断程序的执行,影响循环的周期。
那就试试dprintf:先启动Debugger(例如通过Attach这个任务)
然后在代码合适的位置右击,选择Add Dynamic printf
在打开的dprintf属性页面里添加要打印的内容即可
点击确定之后,在断点窗口里就可以看到这条dprintf语句了。很快,Target端也输出了dprintf的执行结果
有兴趣的话,可以试试dprintf的几个属性