Ⅰ
寫(xiě)在前面
有網(wǎng)友問(wèn):我在使用IAR在線調(diào)試過(guò)程中不能打斷點(diǎn),但在編輯的時(shí)候可以打斷點(diǎn),一點(diǎn)擊調(diào)試按鈕之后,所打的斷點(diǎn)就失效了······
類似的問(wèn)題:在先調(diào)試過(guò)程中,在反匯編的窗口中可以設(shè)置斷點(diǎn),在C編譯區(qū)不能設(shè)置斷點(diǎn)。
查看斷點(diǎn)的方法:菜單view->breakpoints 就會(huì)在窗口顯示所有斷點(diǎn)信息。
通常出現(xiàn)這類現(xiàn)象是因?yàn)槟阋訑帱c(diǎn)的位置并沒(méi)有程序(或不匹配程序),也就是你的C代碼和你的實(shí)際代碼對(duì)不上號(hào)了。遇到以上問(wèn)題,解決的辦法一般有下面幾種。
Ⅱ
常見(jiàn)解決辦法
1.Rebuild All重新編譯
A.Project -> Clean:把前面編譯后的文件刪除;
B.Project ->Rebuild All:再重新編譯所有文件。
這種情況比較常見(jiàn),有可能是在更改了部分文件。
2.查看配置是否正確
A.生產(chǎn)Debug信息
Project ->Options->C/C++ Compiler->Output:勾選上“Generate debug informat” 這個(gè)選項(xiàng)。
B.鏈接包含Debug信息
Project ->Options->linker->Output:勾選上“Include debug information in output” 這個(gè)選項(xiàng)。
3.代碼優(yōu)化等級(jí)較高
在某些場(chǎng)合下,比如要求執(zhí)行代碼的速度,或者代碼容量比較大而芯片容量又有限,就需要對(duì)代碼進(jìn)行優(yōu)化,優(yōu)化的等級(jí)分多種。
沒(méi)有特別要求,代碼就可以不用優(yōu)化。代碼高度優(yōu)化存在弊端,特別是代碼不規(guī)范的情況下。有一點(diǎn)就是本文說(shuō)的,高度優(yōu)化的代碼,會(huì)影響在線調(diào)試,可能你某部分代碼被優(yōu)化導(dǎo)致你不能打斷點(diǎn)。
這個(gè)時(shí)候就容易出現(xiàn):在先調(diào)試過(guò)程中,在反匯編的窗口中可以設(shè)置斷點(diǎn),在C編譯區(qū)不能設(shè)置斷點(diǎn)。
Project ->Options->C/C++ Compiler->Optimizations選擇優(yōu)化的等級(jí):
4.代碼處于條件編譯未選中狀態(tài)
什么是條件編譯呢?
就是#if #else #endif 這類帶有#的預(yù)處理編譯。
如果你的代碼不再預(yù)編譯里面,則不能打斷點(diǎn)。
5.推測(cè)的問(wèn)題
我們都知道軟件一般都會(huì)存在bug,即使是強(qiáng)大的Windows、iOS、Android操作系統(tǒng)也經(jīng)常修復(fù)或升級(jí)。
若懷疑是IAR軟件自身的問(wèn)題,建議升級(jí)到最新。我個(gè)人喜歡嘗試新鮮的東西,之前看過(guò)我文章的人都知道,Keil、IAR新版我和大家分享過(guò)。若你IAR出現(xiàn)此類問(wèn)題,上面幾種方法都無(wú)效,建議更新IAR版本:
IAR for STM8介紹、下載、安裝與注冊(cè)
IAR for ARM介紹、下載、安裝與注冊(cè)
其他問(wèn)題都排除了,還有可能是Windows系統(tǒng)高度優(yōu)化的問(wèn)題,這個(gè)建議重裝系統(tǒng)。
-
IAR
+關(guān)注
關(guān)注
5文章
381瀏覽量
37472 -
在線調(diào)試
+關(guān)注
關(guān)注
0文章
5瀏覽量
6611
發(fā)布評(píng)論請(qǐng)先 登錄
IAR平臺(tái)現(xiàn)已提供對(duì)Zephyr RTOS的量產(chǎn)級(jí)支持
邊緣計(jì)算網(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)
如何將項(xiàng)目從IAR遷移到Embedded Studio

IAR正式加入Zephyr項(xiàng)目,成為銀牌會(huì)員
IAR正式加入Zephyr項(xiàng)目
IAR升級(jí)VS Code調(diào)試擴(kuò)展,引入Listwindow技術(shù)
?IAR C-SPY為VS Code社區(qū)樹(shù)立調(diào)試新標(biāo)準(zhǔn)
斷點(diǎn)續(xù)傳工業(yè)網(wǎng)關(guān)有什么應(yīng)用場(chǎ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

評(píng)論