Yığın taşması, belirli bir bellek bloğuna veri yazma girişiminin başarısız olduğu bir programlama hatasıdır, çünkü blokta boş yer kalmaz. Bu hata türü, arabellek taşması, yığın taşması ve yığın arabellek taşması ile aynı şekilde gerçekleşir. Bu tür hatalar arasındaki fark, kullanılan bilgisayar veri yapısına bağlıdır ve ortak özellik, onu tutmak için kullanılabilir alandan daha fazla veri yazma girişiminde bulunulmasıdır.
Yığın taşması belirtileri, kullanılan bilgisayar diline ve mevcut hata raporlama makinesine bağlı olarak değişebilir. C ++ 'da bir yığın taşması sıklıkla kendini bir segmentasyon hatası olarak gösterir ve sıklıkla taşma olayının nerede veya nasıl gerçekleştiğini belirlemek için verilen hiçbir bilgi yoktur. Java'da bir taşma, genellikle oldukça ayrıntılı bir hata dosyası veren sanal bir makine çökmesine neden olur. Taşma olan dilden bağımsız olarak, taşma akışı orijinal taşma kaynağının doğru şekilde ayıklanması ve tanımlanmasıyla hemen hemen her zaman düzeltilebilir.
Açık bellek yönetimi sunan bilgisayar dilleri yığın taşmalarına karşı korunmak için genellikle daha kolaydır. Yaygın olarak kabul edilen programlama uygulaması genellikle bir programın ayırdığı her bellek bölümü için programın kendisini silmesi gerektiğini de belirtir. C ++ bu mekanizmaya izin verir ve bu şekilde dikkatle izlenmesi bir programın kullandığı bellek miktarını minimumda tutabilir. Açık bellek yönetimi sunmayan ve bunun yerine örtük bellek yönetimi kullanan dillerin yığın taşması hatalarından korunması daha zordur. Java, kendi hafızasını sanal makinesinde tutar, böylece daha fazlasını elde etmek için veriler açıkça silinemez.
Acemi programcıların sık karşılaşılan bir yanı, kendi bellek yönetimini idare eden bilgisayar dillerinde yığın taşması olamayacağını varsaymaktır. Bu ilk bakışta makul görünmekle birlikte, aslında durum böyle değil. Örtük bellek yönetimine sahip dillerde, genellikle gereksiz bellek bloklarını serbest bırakan çöp toplayıcıları bulunur, ancak bu çöp toplayıcıları bir programcının beklediği zamanda her zaman çalışmaz. Çöp toplayıcılarına güvenmek nispeten tehlikelidir ve bir programı bir taşma hatasından her zaman koruyamaz.
Taşma hataları felaket olabilir ve bütün bir programı durdurabilir veya neredeyse sessiz olabilir ve bir programın devam etmesine izin verebilir. Bu ikinci tür hataları genellikle bulmak zordur, çünkü daha önce birçok kod satırından taşan bir hata meydana gelebilir. Bir yığın taşması genellikle tüm program boyunca arama yapmayı gerektirmez, ancak bir taşma işleminden sonra bir programın çalışması ne kadar uzun sürerse, hatanın bulunması ve düzeltilmesi o kadar zor olabilir.


