Ce este o eroare de depășire?

Există două tipuri de erori de depășire ; unul are de a face cu stiva de memorie internă a programului, iar cealaltă are de a face cu cantitatea de memorie folosită pentru a stoca date.

Fiecare program are o secțiune de memorie alocată pentru un teanc. Stiva este folosită pentru stocarea datelor interne pentru program și este foarte rapidă și urmărește adresarea înapoi. Cu alte cuvinte, un program poate sări într-o zonă care citește unele date de pe hard disk, apoi revine din acea rutină pentru a continua prelucrarea datelor. Stack-ul ține evidența adresei inițiale, iar programul folosește pentru returnare. Ca și cum ai părăsi pesmetul pentru a-ți găsi drumul înapoi. Acestea fiind spuse, stiva are o cantitate limitată de spațiu de stocare. Între utilizarea acestuia pentru stocarea adreselor returnate și, ca și utilizarea memoriei pentru stocarea variabilelor, se pot epuiza și toți micii biți de depășire a datelor și pot cauza caderea programelor.

Problema de depășire a stivei nu este la fel de răspândită în sistemele de operare mai noi, totuși, din cauza amprentei mici pe dispozitivele mobile, aceasta poate deveni provocatoare. Dacă sistemul dvs. de operare de pe dispozitivul mobil vă oferă o eroare de depășire a stivei, este posibil să aveți prea multe aplicații în execuție. Este posibil să aveți un virus folosind spațiul de stivă. S-ar putea chiar să aveți deteriorări hardware care ar putea cauza un mesaj de eroare de suprapunere de stivă. Verificați utilizarea aplicației și protecția antivirus și rulați o aplicație de diagnosticare a memoriei pe dispozitivul dvs. mobil pentru a vedea dacă acest lucru vă ajută să vă clarificați eroarea.

O eroare de depășire care este creată de asignarea de stocare este menționată ca o depășire de tip de date. Ce înseamnă acest lucru este faptul că un anumit tip de date utilizat pentru stocarea unei fragmente de date nu era suficient de mare pentru a ține datele. De exemplu, dacă aveți o cutie care ar trebui să dețină zece cutii de supă, dar aveți doisprezece cutii de conserve pentru a pune în ea, atunci aveți un exces de două cutii de supă. În mod similar, anumite tipuri de date pot stoca numai numere de o anumită dimensiune. Dacă un tip de date este un singur octet și datele care trebuie stocate sunt mai mari de 256, atunci există o eroare de depășire generată și programul se blochează deoarece are date corupte.

Acest tip de eroare se întâmplă de obicei numai cu mașinile mai vechi care încearcă să ruleze sisteme de operare moderne, deoarece capacitatea sistemului de operare depășește capacitatea hardware-ului. Cu alte cuvinte, puteți obține erori de depășire atunci când o aplicație cere 64 de biți de stocare atunci când programul poate oferi doar 32. Acest tip de eroare de depășire este de obicei pe umeri programatori și există foarte puțini utilizatori finali pot face pentru a facilita ușor de remediat în afară de verificarea pentru o actualizare de software sau patch-uri.

Eroare, termeni de programare, Underflow