導航:首頁 > 軟體知識 > 為什麼有些程序不能加斷點

為什麼有些程序不能加斷點

發布時間:2022-12-10 10:28:04

① 誰用過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鍵 或 點擊工具欄的 實心圓點 添加斷點。 不能插入斷點,也可以,先清除所有斷點,工具欄上有按鈕,然後插入一個,可能是你的斷點太多了。

閱讀全文

與為什麼有些程序不能加斷點相關的資料

熱點內容
電工忘記市場部分斷電罰款多少錢 瀏覽:776
平涼市長熱線的程序是什麼 瀏覽:988
待產包都需要什麼產品 瀏覽:881
虛擬產品怎麼做到24小時 瀏覽:874
蘋果哪個會攔截信息 瀏覽:360
seegreen都有什麼產品 瀏覽:678
早上怎麼發信息給餐飲客戶訂位 瀏覽:17
小米手機代言什麼產品好 瀏覽:708
青浦區信息網站有哪些 瀏覽:864
聯合華鵬汽車市場有哪些品牌 瀏覽:174
常州信息職業學院官網如何刷題 瀏覽:142
黃金主要是交易什麼 瀏覽:648
東城區多功能網路技術怎麼樣 瀏覽:76
發快遞如何查物流信息 瀏覽:628
如何開機自動運行程序 瀏覽:299
插畫師和程序員哪個更累 瀏覽:140
安卓系統如何清除id信息 瀏覽:190
撫州有哪些傢具市場 瀏覽:693
珀萊雅代理費用多少錢 瀏覽:370
南京朝天宮古玩市場怎麼坐車 瀏覽:529