什么 CPU 診斷緩沖區(qū)報錯“區(qū)域長度錯誤”
如圖 1 所示,CPU 診斷緩沖區(qū)報錯報錯“區(qū)域長度錯誤”,發(fā)生此類錯誤的原因是,訪問地址所尋址的值超出或未完全包含在所允許的操作數(shù)范圍(CPU 特定變量或數(shù)據(jù)塊大小)。
圖 1. “區(qū)域長度錯誤”
可以點擊診斷緩沖區(qū)下方的“在編輯器中打開”按鈕,跳轉(zhuǎn)到發(fā)生錯誤的程序段,如圖 2 所示。
在程序段 2 中,通過對數(shù)組下標(biāo)賦值的方式間接尋址數(shù)組中的元素,在程序段 1 中為數(shù)組下標(biāo)賦值為 2。
在數(shù)據(jù)塊的聲明中,數(shù)組只聲明了 2 個數(shù)組元素,下標(biāo)為 0-1,下標(biāo)為 2 超出了數(shù)據(jù)塊中聲明變量的范圍,故報故障“區(qū)域長度錯誤”。
可以修改數(shù)組下標(biāo)或者修改數(shù)據(jù)塊中數(shù)組元素的個數(shù),保證數(shù)據(jù)訪問的范圍在允許的范圍內(nèi)。
圖 2. 出錯的程序段位置
圖 3. 數(shù)組的聲明
此類錯誤在間接尋址訪問變量時易出現(xiàn),需要編程人員確保訪問地址所尋址的值不超出操作數(shù)范圍。
審核編輯:劉清
-
cpu
+關(guān)注
關(guān)注
68文章
10905瀏覽量
213032
原文標(biāo)題:為什么 CPU 診斷緩沖區(qū)報錯“區(qū)域長度錯誤”
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
使用UART FIFO緩沖區(qū)時,緩沖區(qū)中的數(shù)據(jù)有時會損壞的原因?
使用malloc建立緩沖區(qū)時出現(xiàn)錯誤怎么解決?
基于狀態(tài)圖的緩沖區(qū)溢出攻擊分析
Windows緩沖區(qū)溢出攻擊的實例研究
CPU與GPU維護數(shù)據(jù)結(jié)構(gòu)來保證環(huán)形緩沖區(qū)的正確工作
![<b class='flag-5'>CPU</b>與GPU維護數(shù)據(jù)結(jié)構(gòu)來保證環(huán)形<b class='flag-5'>緩沖區(qū)</b>的正確工作](https://file.elecfans.com/web1/M00/4E/78/pIYBAFq94XaAI0drAAAYstvQPMQ120.png)
環(huán)形緩沖區(qū)的實現(xiàn)原理
![環(huán)形<b class='flag-5'>緩沖區(qū)</b>的實現(xiàn)原理](https://file.elecfans.com/web1/M00/B8/82/pIYBAF5y0neAdrPjAAB_tdZgU0Y609.png)
緩沖區(qū)是啥意思 STM32串口數(shù)據(jù)接收之環(huán)形緩沖區(qū)
STM32串口數(shù)據(jù)接收 --環(huán)形緩沖區(qū)
![STM32串口數(shù)據(jù)接收 --環(huán)形<b class='flag-5'>緩沖區(qū)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
環(huán)形緩沖區(qū)的實現(xiàn)思路
西門子博途如何聯(lián)機訪問CPU?
![西門子博途如何聯(lián)機訪問<b class='flag-5'>CPU</b>?](https://file1.elecfans.com/web2/M00/AE/C7/wKgZomVK8MGAN-TdAAA0kpgo19A670.png)
C++環(huán)形緩沖區(qū)設(shè)計與實現(xiàn)
![C++環(huán)形<b class='flag-5'>緩沖區(qū)</b>設(shè)計與實現(xiàn)](https://file1.elecfans.com/web2/M00/AE/FD/wKgZomVMUCmAf_A4AAB1sbO2qKI881.jpg)
評論