① 誰用過IAR Embedded Workbench,為什麼有時不能設置斷點
斷點設置的時候,這段程序必須是機器編譯過並且可執行的,你可以從這個方面找一個原因。還有一個就是IAR本身對於賦值語句,判斷語句之類的語句就不能設置斷點,我也是今天才遇到的,具體原理不明。你也可以這樣想一下。祝你解決問題。
② keil4中調試模式不能插入斷點
調試時
關閉匯編窗口,看看黃色的箭頭是不是在主程序中。
如果是的話,選擇某一條執行語句,按
f9鍵
或
點擊工具欄的
實心圓點
添加斷點。
不能插入斷點,也可以,先清除所有斷點,工具欄上有按鈕,然後插入一個,可能是你的斷點太多了。
③ keil5 為什麼好多指令不能打斷點
在一定級別的優化之後,有些源程序代碼行根本就沒有對應的編譯內容了,自然也就沒辦法打斷點。
優化級別調高以後,調試的策略也要對應變化,以匯編代碼段為准。
④ C#有的行能添加斷點,有的不能
能添加斷點的行都是程序能單步執行(F11)到的地方,但是這里的行和我們寫代碼的行不是一個概念
比如我寫了很大一個LINQ方法,我希望把它們分行顯示以方便閱讀;雖然我們能按Ctrl+G到達這些行,但是它們其實只在第一個字元所在的那一行;因為如果你後面的行報錯了,程序提示的錯誤行號還是第一個字元所在的行
還有表示代碼范圍的{},左右花括弧也是程序無法到達的行,所以也不能添加斷點
⑤ 請教CCS中不能加斷點是怎麼回事
在ccs3.3環境下,程序在FLASH中調試。不能設置斷點。因為系統默認會設置兩個斷點。這樣在程序段中就不能設置斷點了。通過設置,CCS3.3中的選中Option中的Customize。接著選中Program/Project/CIO,子菜單中勾選Do Not Set CIO Breakpoint AT和D
⑥ 用Release版測試程序調試Dll,怎麼不能設置斷點了
1.使用release程序和debug版本的dll或者debug程序和release版本的dll這種組合,本身不是一種明智的選擇,因為這樣組合會出現莫名其妙的錯誤。
2.release設置的斷點可能是無效的斷點,需要修改工程的屬性,使release下可以使用斷點,我想系統重新安裝,可能導致以前的設置無效,所以建議重新設置一下編譯環境。
3.CVPACK : fatal error CK1007: invalid Types table in mole obj\i386\objidl_i.obj
LINK : warning LNK4027: CVPACK error
這個錯誤可能是由於你的dll沒有編譯成功。
4.調試release程序可以使用輸出日誌的形式來測試。
⑦ 請教:為什麼keil c51 中不能設斷點
keil優化的問題,設置斷點的程序段被keil優化掉了,詳見keil優化級別說明
級別
說明
0
常數合並:編譯器預先計算結果,盡可能用常數代替表達式。包括運行地址計算。
優化簡單訪問:編譯器優化訪問8051系統的內部數據和位地址。
跳轉優化:編譯器總是擴展跳轉到最終目標,多級跳轉指令被刪除。
1
死代碼刪除:沒用的代碼段被刪除。
拒絕跳轉:嚴密的檢查條件跳轉,以確定是否可以倒置測試邏輯來改進或刪除。
2
數據覆蓋:適合靜態覆蓋的數據和位段被確定,並內部標識。bl51連接/定位器可以通
過全局數據流分
,選擇可被覆蓋的段。
3
窺孔優化:清除多餘的mov指令。這包括不必要的從存儲區載入和常數載入操作。當存
儲空間或執行時間可節省時,用簡單操作代替復雜操作。
4
寄存器變數:如有可能,自動變數和函數參數分配到寄存器上。為這些變數保留的存
儲區就省略了。
優化擴展訪問:idata、xdata、pdata和code的變數直接包含在操作中。在多數時間沒
必要使用中間寄存器。
局部公共子表達式刪除:如果用一個表達式重復進行相同的計算,則保存第一次計算
結果,後面有可能就用這結果。多餘的計算就被刪除。
case/switch優化:包含switch和case的代碼優化為跳轉表或跳轉隊列。
5
全局公共子表達式刪除:一個函數內相同的子表達式有可能就只計算一次。中間結果
保存在寄存器中,在一個新的計算中使用。
簡單循環優化:用一個常數填充存儲區的循環程序被修改和優化。
6
循環優化:如果結果程序代碼更快和有效則程序對循環進行優化。
7
擴展索引訪問優化:適當時對寄存器變數用dptr。對指針和數組訪問進行執行速度和
代碼大小優化。
8
公共尾部合並:當一個函數有多個調用,一些設置代碼可以復用,因此減少程序大小
。
9
公共塊子程序:檢測循環指令序列,並轉換成子程序。cx51甚至重排代碼以得到更大的循環序列。
⑧ 為什麼有些程序在調試的時候,不能加斷點
你的代碼沒有編譯到程序,可能是條件編譯,把這段代碼跳過了。
⑨ keil4 模擬stm32程序時 不能插入斷點 在匯編語句里可以插入斷點,但不能在main()不能插入斷點
調試時 關閉匯編窗口,看看黃色的箭頭是不是在主程序中。 如果是的話,選擇某一條執行語句,按 F9鍵 或 點擊工具欄的 實心圓點 添加斷點。 不能插入斷點,也可以,先清除所有斷點,工具欄上有按鈕,然後插入一個,可能是你的斷點太多了。