估計很多人是不知道keil除錯工具的這個功能的。就算是已經工作了4、5年的工程師也不見得知道有這個功能。我們可以通過keil的除錯**工具設定某個變數被讀或者被寫操作的時候產生除錯斷點。這時就可以快速定位到一些棘手的問題。例如:之前有位小朋友,發現他的程式中有個關鍵的變數在某個地方被莫名奇妙的被修改了。導致程式執行的是老是出錯,但是他又很難定位到這個變數在那被修改了,他通過全域性找的功能來查詢這個變數,發現這個變數賦值的時候都沒有異常。其實很明顯是個記憶體操作越界導致這個變數被修改了,這時候如果他使用這個功能,在keil工具中設定這個變數寫操作產生斷點。那麼就可以很快知道錯誤的地方了。
進入debug模式後,右擊選擇需要監控的變數設定新增到watch視窗,watch1或者watch2都可以。這裡我將其新增到watch2。
然後我們再在對應的watch2那裡右擊對應的變數設定斷點,如下圖所示。
在跳出的設定視窗那裡設定我們想要的寫斷點或者讀斷點就完成。
全速執行後,只要產生斷點的地方沒有進行程式的賦值的地方,那邊肯定就是記憶體越界的地方了。
這個功能相當高效,強力推薦。
stm32嵌入式你不一定知道的除錯方法系列 3
相信大家學習的第乙個c言語程式是 printf hello word 那麼編寫stm32這樣的程式是否可以也可以列印呢?答案是肯定的。下面介紹兩種除錯列印的方式,第二種估計很多人都不知道哦。實現很簡單,我們只要新增乙個重對映函式就可以實現列印的功能了。具體操作如下 新增一下 if 1 pragma ...
abap系列 你不一定知道的open sql用法
作為abaper open sql中的select和in 子查詢屬於日常必備的技能。然而,open sql還有一些語法你可能沒用過甚至沒聽過,這些語法用好了可以大大減少 複雜度和提高效能,下面就來看看這些用法吧。場景1 取建立日期晚於憑證日期的採購憑證,用於統計補單率。1 select eneln ...
你不一定知道的UrlPrefix路由規則
接上文,容器內web程式一般會繫結到或http 以確保使用容器ip可以訪問到web應用。正如我們在asp.net core官方映象顯示的,asp.net core程式在容器內80埠監聽請求 web程式啟動後,根據監聽位址urlprefix中的主機元素,會向系統元件http server api註冊不...