Tool之dprintf

  • 2019 年 11 月 20 日
  • 筆記

沒人能保證自己編碼一次成功,只要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的幾個屬性