# Stack trace

Adres: https://softwaredictionary.org/tr/terimler/stack-trace
Kategori: Programlamanın Temelleri
Son güncelleme: 2026-10-05
İngilizcesi: Stack Trace
Türkçe karşılığı: yığın izi
Okunuşu: stek treys

Kısaca: Stack trace, bir hata oluştuğu anda devam eden fonksiyon çağrılarının listesidir; hatanın çıktığı satırdan programın başladığı yere kadar uzanır.

## Stack trace (yığın izi) nedir?

Bir program çöktüğünde ya da bir exception fırlattığında genellikle bir stack trace yazdırır: o anda çalışmakta olan fonksiyonlar, her biri dosya adı ve satır numarasıyla birlikte. Bu, call stack'in, yani programın hangi fonksiyonun hangisini çağırdığını tuttuğu ve her fonksiyonun işi bitince nereye döneceğini bildiği kaydın o anki fotoğrafıdır.

Çoğu dil en içteki çağrıyı önce yazar: hatanın çıktığı satır en üsttedir, ardından onu çağıran fonksiyon, sonra onun çağıranı gelir ve liste programın giriş noktasına kadar iner. Python bunu tersten yapar ve traceback'ini en son çağrı en altta, hata mesajının hemen üstünde olacak şekilde yazar. Okunması gereken satırlar genellikle kendi kodunuzdakilerdir; kütüphanelerden ve çalışma ortamından gelen frame'ler çağrının oraya nasıl ulaştığını gösterir.

Stack trace okumak, anahtarlarınızı kaybettiğinizde adımlarınızı geri izlemeye benzer: kayıp olduklarını fark ettiğiniz yerden başlar, gittiğiniz her yerden geriye doğru ilerlersiniz. Canlı ortamda stack trace'ler loglara ve hata izleme araçlarına gönderilir; böylece geliştiriciler yeniden üretemedikleri hataları bulabilir. Kullanıcılara asla gösterilmemelerinin nedeni de budur: dosya yolları ve fonksiyon adları bir saldırganın işine yarayabilir.

## Önemli noktalar

- Stack trace, bir hata oluştuğu anda devam eden fonksiyon çağrılarını listeler.
- Her satır, yani her frame, bir fonksiyonu, bir dosyayı ve bir satır numarasını gösterir.
- Çoğu dil hatalı satırı en üste yazar; Python ise en alta.
- Stack trace'lerin yeri loglar ve hata izleme araçlarıdır, kullanıcının ekranı değil.

## Örnek: Bir JavaScript hatasının stack trace'i, yukarıdan aşağı okunur

```javascript
function parsePrice(text) {
  return Number(text.trim());
}

function total(items) {
  return items.reduce((sum, item) => sum + parsePrice(item.price), 0);
}

total([{ price: "4.50" }, {}]);
// TypeError: Cannot read properties of undefined (reading 'trim')
//     at parsePrice (cart.js:2:22)        ← where it failed
//     at cart.js:6:44
//     at Array.reduce (<anonymous>)
//     at total (cart.js:6:16)
//     at Object.<anonymous> (cart.js:9:1) ← where it started
```

## Sık sorulan sorular

**Stack trace ile log mesajı arasındaki fark nedir?**

Log mesajı, programın ne yaptığını anlatmak için bilerek yazdığı bir satırdır. Stack trace ise bir hata oluştuğunda kendiliğinden üretilir ve hatanın kodun neresinde çıktığını gösterir. İyi bir hata kaydında ikisi de bulunur: neyin başarısız olduğunu söyleyen bir mesaj ve nerede olduğunu gösteren stack trace.

**Stack trace neden benim yazmadığım kodu da gösteriyor?**

Kodunuz başka kodların içinde çalışır: framework'ler, kütüphaneler ve dilin çalışma ortamı sizin fonksiyonlarınızı çağırır ve onlar tarafından çağrılır; bu frame'ler çağrının izlediği yolu gösterir. Okumaya kendi dosyalarınızdaki ilk frame'den başlayın; düzeltme genellikle oradadır.

## Kaynaklar

- [MDN: Error.prototype.stack](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stack)
- [Python documentation: traceback — Print or retrieve a stack traceback](https://docs.python.org/3/library/traceback.html)

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
