有時最簡單的解決方案就是最有效的。IAR Listwindows 就像是 C-SPY 版本的試算表,為開發者提供程式運行時所需的所有資訊。作為這項技術的開發者,我們相信您會和我們一樣對這項新功能感到興奮。
只要有數據,就有 Listwindows
理解程式發生問題的關鍵在於底層資料。有時候是指標遺失,有時候只是括號放錯了位置。不管是哪種情況,解決問題的關鍵在於能夠高效地查看資料。這正是 Listwindows 存在的意義——row-based的視圖概念,能夠呈現您需要的一切資訊,甚至更多。
透過 Listwindows,VS Code 用戶可以直覺地檢視與理解以下內容:
- 核心暫存器(Core registers)
- 符號記憶體(Symbolic Memory)
- 即時監視(Live Watch)
- ETM/SWO 追蹤(ETM/SWO Trace)
- 功能分析(Functional Profiling)
- 程式碼覆蓋率(Code Coverage)

使用 Listwindows 提升除錯體驗
嵌入式開發的兩大核心部分是記憶體管理與安全性,尤其在現今連網環境中,安全性變得越來越重要。因此,我們將展示如何使用 Listwindows 來協助管理您的嵌入式裝置記憶體與安全性。
暫存器視圖(Register View) 提供裝置不同暫存器的深入資訊,變更的數值會以紅色標示,並可透過右鍵選單輕鬆更改每個暫存器的顯示格式。使用 “Register User Groups Setup” 視圖,您可以建立自訂暫存器組,或選擇預設組來快速瀏覽不同區段。

符號記憶體(Symbolic Memory) 讓您更高效地搜尋與操作記憶體。透過 “GO TO” 功能,您可以依變數名稱或地址搜尋,並檢視其類型、數值與位址。此外,您可以直接點擊數值欄位來修改變數值。

在安全性方面,程式碼覆蓋率是一種有效的方法,可確保所有程式碼都經過執行與測試。其概念相當簡單,就是確認每條指令至少被執行過一次,以避免日後發生意外問題。要啟用程式碼覆蓋率,請在底部面板開啟 IAR Trace,然後點擊工具列中的啟用按鈕,並確保追蹤功能已開啟。如果是在實際硬體上運行,建議使用 ETM Trace 以獲得最高精準度。程式碼覆蓋率視圖會持續顯示已執行指令的比例,範圍涵蓋整個程式,甚至可以細化到單一 if 分支的執行情況。
另一個實用的功能是雙擊追蹤視圖以啟用「瀏覽模式」。在瀏覽模式下,您可以點擊特定的追蹤條目,編輯器將自動跳轉到對應的程式碼行,方便你快速理解程式的執行情境。

依您的需求自訂使用體驗
由於Listwindows提供了大量的資訊,因此有效運用螢幕空間至關重要。為了讓你能夠更方便地存取所需資訊,你可以選擇隱藏不需要的Listwindows,或將其移動到更合適的位置。
若要隱藏或顯示Listwindows,請先右鍵點擊其標題。在出現的選單中,你會看到該視圖下所有可用的視窗,已勾選的項目代表目前可見。點擊條目即可切換 Listwindows的可見狀態。

你也可以拖曳Listwindows的標題來移動它,將其放置在合適的位置。我們建議將常用的Listwindows移動至VS Code的「次要側邊面板」,只需將其拖曳至螢幕右側,次要側邊面板就會自動顯示。此外,Listwindows 也可以移動到底部面板的不同標籤頁,或獨立成一個專屬的標籤頁。例如,你可以將 Listwindows放在除錯主控台旁,或將Trace、Profiling或Code Coverage視窗獨立至專屬標籤頁,以最佳化工作流程。
總結
整體而言,Listwindows讓C-SPY不只是VS Code的除錯工具,而是成為VS Code上的終極除錯工具。在處理複雜資料時,視覺化呈現至關重要,而 Listwindows正是提升效率的最佳利器。不論是檢視特定暫存器的數值,還是分析單一指令的影響,我們的VS Code擴充功能都能幫助你更有效率地完成工作。
下一步?
如果您對Listwindows感興趣,請立即下載 IAR Embedded Workbench,並從 Visual Studio Marketplace安裝最新的擴充功能!
若想實際觀看這些功能如何運作,歡迎觀看影片,發掘如何徹底革新您的除錯流程!
本文由 iar 提供