Tool之dprintf

原创
2019/11/21 18:25
阅读数 41

重发一下,正文不变,之前忘了加原创了 :(

 

没人能保证自己编码一次成功,只要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的几个属性


 

这正是:

不改源码查变量,

无需编译有良方。

实时追踪似断点,

动态打印看端详。

 

我是泰山,专注VX 15年!

欢迎关注VxWorks567,

一起学习,共同进步!


本文分享自微信公众号 - 这里只有VxWorks(VxWorks567)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
在线直播报名
返回顶部
顶部