IAR在線調試不能設置斷點 、 IAR斷點無效android
轉載自http://blog.csdn.net/ybhuangfuguiios
有網友問:我在使用IAR在線調試過程當中不能打斷點,但在編輯的時候能夠打斷點,一點擊調試按鈕以後,所打的斷點就失效了······優化
相似的問題:在先調試過程當中,在反彙編的窗口中能夠設置斷點,在C編譯區不能設置斷點。ui
查看斷點的方法:菜單view->breakpoints 就會在窗口顯示全部斷點信息。spa
一般出現這類現象是由於你要加斷點的位置並無程序(或不匹配程序),也就是你的C代碼和你的實際代碼對不上號了。遇到以上問題,解決的辦法通常有下面幾種。操作系統
A.Project -> Clean:把前面編譯後的文件刪除;.net
B.Project -> Rebuild All:再從新編譯全部文件。debug
這種狀況比較常見,有多是在更改了部分文件。調試
A.生成Debug信息orm
Project -> Options -> C/C++ Compiler -> Output:勾選上「Generate debug informat」 這個選項。
B.連接包含Debug信息
Project -> Options -> linker -> Output:勾選上「Include debug information in output 」 這個選項。
在某些場合下,好比要求執行代碼的速度,或者代碼容量比較大而芯片容量又有限,就須要對代碼進行優化,優化的等級分多種。
沒有特別要求,代碼就能夠不用優化。代碼高度優化存在弊端,特別是代碼不規範的狀況下。有一點就是本文說的,高度優化的代碼,會影響在線調試,可能你某部分代碼被優化致使你不能打斷點。
這個時候就容易出現:在先調試過程當中,在反彙編的窗口中能夠設置斷點,在C編譯區不能設置斷點。
Project -> Options -> C/C++ Compiler -> Optimizations選擇優化的等級:
什麼是條件編譯呢?
就是#if #else #endif 這類帶有#的預處理編譯。
若是你的代碼再也不預編譯裏面,則不能打斷點。
咱們都知道軟件通常都會存在bug,即便是強大的Windows、iOS、Android操做系統也常常修復或升級。
若懷疑是IAR軟件自身的問題,建議升級到最新。我我的喜歡嘗試新鮮的東西,以前看過我文章的人都知道,Keil、IAR新版我和你們分享過。若你IAR出現此類問題,上面幾種方法都無效,建議更新IAR版本:
其餘問題都排除了,還有多是Windows系統高度優化的問題,這個建議重裝系統。