Ⅰ
寫在前面
有網(wǎng)友問:我在使用IAR在線調(diào)試過程中不能打斷點(diǎn),但在編輯的時候可以打斷點(diǎn),一點(diǎn)擊調(diào)試按鈕之后,所打的斷點(diǎn)就失效了······
類似的問題:在先調(diào)試過程中,在反匯編的窗口中可以設(shè)置斷點(diǎn),在C編譯區(qū)不能設(shè)置斷點(diǎn)。
查看斷點(diǎn)的方法:菜單view->breakpoints 就會在窗口顯示所有斷點(diǎn)信息。
通常出現(xiàn)這類現(xiàn)象是因為你要加斷點(diǎn)的位置并沒有程序(或不匹配程序),也就是你的C代碼和你的實(shí)際代碼對不上號了。遇到以上問題,解決的辦法一般有下面幾種。
Ⅱ
常見解決辦法
1.Rebuild All重新編譯
A.Project -> Clean:把前面編譯后的文件刪除;
B.Project ->Rebuild All:再重新編譯所有文件。
這種情況比較常見,有可能是在更改了部分文件。
2.查看配置是否正確
A.生產(chǎn)Debug信息
Project ->Options->C/C++ Compiler->Output:勾選上“Generate debug informat” 這個選項。
B.鏈接包含Debug信息
Project ->Options->linker->Output:勾選上“Include debug information in output” 這個選項。
3.代碼優(yōu)化等級較高
在某些場合下,比如要求執(zhí)行代碼的速度,或者代碼容量比較大而芯片容量又有限,就需要對代碼進(jìn)行優(yōu)化,優(yōu)化的等級分多種。
沒有特別要求,代碼就可以不用優(yōu)化。代碼高度優(yōu)化存在弊端,特別是代碼不規(guī)范的情況下。有一點(diǎn)就是本文說的,高度優(yōu)化的代碼,會影響在線調(diào)試,可能你某部分代碼被優(yōu)化導(dǎo)致你不能打斷點(diǎn)。
這個時候就容易出現(xiàn):在先調(diào)試過程中,在反匯編的窗口中可以設(shè)置斷點(diǎn),在C編譯區(qū)不能設(shè)置斷點(diǎn)。
Project ->Options->C/C++ Compiler->Optimizations選擇優(yōu)化的等級:
4.代碼處于條件編譯未選中狀態(tài)
什么是條件編譯呢?
就是#if #else #endif 這類帶有#的預(yù)處理編譯。
如果你的代碼不再預(yù)編譯里面,則不能打斷點(diǎn)。
5.推測的問題
我們都知道軟件一般都會存在bug,即使是強(qiáng)大的Windows、iOS、Android操作系統(tǒng)也經(jīng)常修復(fù)或升級。
若懷疑是IAR軟件自身的問題,建議升級到最新。我個人喜歡嘗試新鮮的東西,之前看過我文章的人都知道,Keil、IAR新版我和大家分享過。若你IAR出現(xiàn)此類問題,上面幾種方法都無效,建議更新IAR版本:
IAR for STM8介紹、下載、安裝與注冊
IAR for ARM介紹、下載、安裝與注冊
其他問題都排除了,還有可能是Windows系統(tǒng)高度優(yōu)化的問題,這個建議重裝系統(tǒng)。
-
IAR
+關(guān)注
關(guān)注
5文章
382瀏覽量
37484 -
在線調(diào)試
+關(guān)注
關(guān)注
0文章
5瀏覽量
6613
發(fā)布評論請先 登錄
IAR平臺現(xiàn)已提供對Zephyr RTOS的量產(chǎn)級支持
邊緣計算網(wǎng)關(guān)支持斷點(diǎn)續(xù)傳嗎
openocd不能調(diào)試的原因?
Keil C51與Proteus聯(lián)調(diào),為何在Keil中設(shè)置的斷點(diǎn)失效?
openocd為什么不能調(diào)試?
HarmonyOS NEXT 原生應(yīng)用/元服務(wù)-ArkTS代碼調(diào)試使用斷點(diǎn)
IAR正式加入Zephyr項目,成為銀牌會員
IAR正式加入Zephyr項目
IAR升級VS Code調(diào)試擴(kuò)展,引入Listwindow技術(shù)
?IAR C-SPY為VS Code社區(qū)樹立調(diào)試新標(biāo)準(zhǔn)
斷點(diǎn)續(xù)傳工業(yè)網(wǎng)關(guān)有什么應(yīng)用場景
網(wǎng)關(guān)斷點(diǎn)續(xù)傳可以實(shí)現(xiàn)什么功能
GD32F103 Keil和IAR pack包
在Linux服務(wù)器上使用IAR Build Tools實(shí)現(xiàn)DevOps和CI/CD

評論