Yığın Taşması Nedir?



Yığın taşması, belirli bir bellek bloğuna veri yazma girişiminin blokta kalmadığı için başarısız olduğu bir programlama hatasıdır. Bu tür bir hata, arabellek taşmaları, yığın taşmaları ve yığın arabellek taşmaları ile aynı şekilde kredi notum düşük nasıl kredi çekerimgerçekleşir. Bu tür hatalar arasındaki fark , kullanılan bilgisayar veri yapısına bağlıdır ve ortak özellik, tutulması gereken boş alan olduğundan daha fazla veri yazmak için bir girişimde bulunmasıdır.
Yığın taşması belirtileri, kullanılan bilgisayar diline ve hata raporlama makinesine bağlı olarak değişebilir . C ++ 'da, bir yığın taşması genellikle kendini bölümleme hatası olarak gösterir ve sıklıkla taşmanın nerede ve nasıl gerçekleştiğini belirlemek için verilen hiçbir ek bilgi yoktur. Java'da bir taşma genellikle, makul bir şekilde ayrıntılı bir hata dosyası veren bir sanal makine kazasında sonuçlanır. Bir taşmanın meydana geldiği dilden bağımsız olarak, taşma, her zaman doğru hata ayıklama ve orijinal taşma kaynağının tanımlanmasıyla düzeltilebilir .
Açık bellek yönetimi sunan bilgisayar dilleri, yığın taşmasına karşı koruma sağlamak için genellikle daha kolaydır. Yaygın olarak kabul edilen programlama pratiği genellikle bir programın ayırdığı her bellek segmenti için programın kendini silmesi gerektiğini belirtir. C ++ bu mekanizmaya izin verir ve bu şekilde dikkatli bir izleme, bir programın en az kullandığı bellek miktarını koruyabilir. Açık bellek yönetimi gelir belgesiz kredi veren bankalarsunmayan ve bunun yerine örtük bellek yönetimi kullanan diller, yığın taşması hatalarından korunmak için daha zordur. Java, kendi belleğini sanal makinesinde işler, böylece veriler daha fazla yer açmak için açık bir şekilde silinemez.
Acemi programcıların yaygın bir hatası, kendi bellek yönetimini yürüten bilgisayar dillerinde yığın taşması olamayacağını varsaymaktır. Bu başlangıçta makul gibi gözükse de, aslında durum böyle değildir. Gizli bellek yönetimine sahip diller genellikle gereksiz bellek bloklarını serbest bırakan çöp toplayıcılarına sahiptir, ancak bu çöp toplayıcıları her zaman bir programcının beklediği zamanda çalışmazlar . Çöp toplayıcılarına güvenmek nispeten tehlikelidir ve bir programı her zaman taşma hatasından koruyamaz.
Taşma hataları, felaketsiz olabilir ve tüm programı durdurabilir veya neredeyse sessiz olabilir ve bir programın devam etmesine izin verebilir. Bu ikinci tür hatalar genellikle bulmak en zor olanıdır, çünkü bir kod satırından önce gelen bir hatadan kaynaklanan bir hata oluşabilir. Yığın taşması genellikle bir programın tamamını aramayı gerektirmez, ancak bir program taşma işleminden sonra ne kadar uzun sürebilirse, hata bulmak ve düzeltmek daha zor olabilir.

Yorumlar

Bu blogdaki popüler yayınlar

ScanDisk nedir?

Hobo İşaretleri nedir?

SEO Analizi Nedir?