精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

解決IAR不能設置斷點的問題

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-20 10:03 ? 次閱讀

寫在前面

有網友問:我在使用IAR在線調試過程中不能打斷點,但在編輯的時候可以打斷點,一點擊調試按鈕之后,所打的斷點就失效了······

類似的問題:在先調試過程中,在反匯編的窗口中可以設置斷點,在C編譯區不能設置斷點。

查看斷點的方法:菜單view->breakpoints 就會在窗口顯示所有斷點信息。

通常出現這類現象是因為你要加斷點的位置并沒有程序(或不匹配程序),也就是你的C代碼和你的實際代碼對不上號了。遇到以上問題,解決的辦法一般有下面幾種。

常見解決辦法

1.Rebuild All重新編譯

A.Project -> Clean:把前面編譯后的文件刪除;

B.Project ->Rebuild All:再重新編譯所有文件。

這種情況比較常見,有可能是在更改了部分文件。

2.查看配置是否正確

A.生產Debug信息

Project ->Options->C/C++ Compiler->Output:勾選上“Generate debug informat” 這個選項。

B.鏈接包含Debug信息

Project ->Options->linker->Output:勾選上“Include debug information in output” 這個選項。

3.代碼優化等級較高

在某些場合下,比如要求執行代碼的速度,或者代碼容量比較大而芯片容量又有限,就需要對代碼進行優化,優化的等級分多種。

沒有特別要求,代碼就可以不用優化。代碼高度優化存在弊端,特別是代碼不規范的情況下。有一點就是本文說的,高度優化的代碼,會影響在線調試,可能你某部分代碼被優化導致你不能打斷點。

這個時候就容易出現:在先調試過程中,在反匯編的窗口中可以設置斷點,在C編譯區不能設置斷點。

Project ->Options->C/C++ Compiler->Optimizations選擇優化的等級:

4.代碼處于條件編譯未選中狀態

什么是條件編譯呢?

就是#if #else #endif 這類帶有#的預處理編譯。

如果你的代碼不再預編譯里面,則不能打斷點。

5.推測的問題

我們都知道軟件一般都會存在bug,即使是強大的Windows、iOSAndroid操作系統也經常修復或升級。

若懷疑是IAR軟件自身的問題,建議升級到最新。我個人喜歡嘗試新鮮的東西,之前看過我文章的人都知道,Keil、IAR新版我和大家分享過。若你IAR出現此類問題,上面幾種方法都無效,建議更新IAR版本:

IAR for STM8介紹、下載、安裝與注冊

IAR for ARM介紹、下載、安裝與注冊

其他問題都排除了,還有可能是Windows系統高度優化的問題,這個建議重裝系統。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IAR
    IAR
    +關注

    關注

    5

    文章

    344

    瀏覽量

    36624
  • 在線調試
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6516
收藏 人收藏

    評論

    相關推薦

    TC2XX/3XX多核斷點設置無效的原因?

    TC2XX/3XX多核斷點設置無效,請問hinghtec的多核要怎么才能被觸發,(函數已經執行,但是斷點沒有被觸發)或者如何才能進行多核調試。
    發表于 07-03 07:33

    keil 斷點 執行次數設置后,出現非法變量的錯誤

    keil 斷點 執行次數設置后,出現非法變量的錯誤。希望大家幫幫忙。
    發表于 06-02 19:25

    STM32C011的芯片不能IAR識別到,為什么?

    目前我在使用IAR8.5做開發,但是發現STM32C011的芯片不能IAR識別到,顯示的沒有這顆芯片,目前除了升級IAR版本來兼容這顆芯片外還有別的方法嗎?
    發表于 05-24 07:03

    iar for stm8為什么不能用了?

    iar for stm8不能用了,求高手指點!
    發表于 05-15 06:49

    IAR調試STM32F4XX時,一下斷點就出現全局變量被覆蓋的情況是什么原因導致的?

    IAR調試STM32F405VG時,一下斷點就出現全局變量被覆蓋的情況。 //進入該函數后,單步的時候_X這個全局變量的內容被覆蓋,設置的func_triggered函數地址被改變,觸發
    發表于 05-11 06:52

    STM8S在IAR軟件仿真Simulator怎么查看運行時間?

    STM8S 在IAR軟件仿真Simulator怎么查看運行時間?在某些芯片通信時,會要求延時5us,10us,150ms等,這些延時不需要太精確,只要大概就好,但怎么在Simulator仿真里能通過斷點查看,即兩個斷點之間的運行
    發表于 05-09 07:48

    freertos啟用IAR自帶插件調試時不能查看隊列信息怎么解決?

    IAR平臺上調試freertos,想利用IAR自帶的freertos插件進行調試,但是只能看task的信息,不能看隊列信息顯示
    發表于 05-07 06:54

    STM8在STLINK中仿真設置斷點,某些行設置不了斷點是怎么回事?

    (); } 在 TIM3_CAP_IRQ()函數里某些行里設備斷點設置不了,如在337行中設置斷點,會自動跳到346行中,在337行和342行設置
    發表于 04-30 08:02

    IAR斷點停止后,鼠標放在watch窗口中查看變量,IAR卡死退出怎么解決?

    IAR版本:8.32 操作過程如下: 1.在IAR設置相關端點; 2.在觀察(watch)窗口中加入相關變量或數組,用于在程序斷點停止后觀測其數值變化; 3.運行程序至端點停止后,一
    發表于 04-19 07:21

    STM8S003仿真的時候如果打了斷點,運行到斷點后再繼續運行,程序就會出錯跑飛RAM數據都亂了,為什么?

    我用IAR 8.3 ,發現仿真的時候如果打了斷點,運行到斷點后再繼續運行,程序就會出錯跑飛,RAM數據都亂了。不打斷點,就不會出錯,這是什么問題?
    發表于 04-18 08:27

    STM32H750不能使用IAR進行仿真是為什么?

    大家好,我現在正在使用STM32H750,使用的IDE 是IAR 現在在進行Debug的時候遇到一個問題,由于使用了QSPI-flash,現在程序可以下載,但是不能仿真,是參照CebuMX的例程寫的,想請教下有沒有前輩遇到過這個問題。
    發表于 04-09 08:14

    STM32F103中斷服務程序里設置斷點沒有停下來是什么原因引起的?

    STM32F103程序,調試時在定時器中斷服務程序中設置斷點,但是沒有停下來,程序能正常運行,看中斷里的變量也有變化。多設置幾個斷點也沒用。 其它地方
    發表于 04-07 08:02

    STlink仿真的時候斷點個數有限是為什么?不能多打嗎?

    比較好奇,為什么STlink仿真的時候斷點個數有限?。亢孟窬椭С?個吧,還是幾個來著,為什么不像jlink一樣,斷點可以多打呢?
    發表于 03-20 07:36

    STM32G030F6PCUbe生成的TIM中斷不能運行,打斷點都沒有進入是為什么?

    STM32G030F6PCUbe生成的TIM中斷不能運行,打斷點都沒有進入
    發表于 03-13 06:56

    請問UDE調試有些函數前面是不能設置斷點的嗎?

    如下函數不能設置斷點:IfxPort_togglePin( MODULE_P33, 8);IfxStm_waitTicks( MODULE_STM0, 5000000);
    發表于 02-20 06:55