Panic log nasıl okunur?
Panic-full dosyası ilk bakışta anlaşılmaz görünür, ama işe yarayan kısmı birkaç satırdır. Gerisi sürüm bilgisi, zaman damgası ve bellek adresleridir. Aşağıda hangi satıra bakılacağı ve sık görülen ifadelerin ne anlama geldiği anlatılıyor.
Dosyanın bölümleri
Dosya bir künye satırıyla başlar. İçinde şunlar bulunur:
- bug_type — Kaydın türü. Panic kayıtlarında genellikle 210'dur.
- timestamp — Telefonun yeniden başladığı an.
- os_version — O sırada yüklü iOS sürümü.
- product — Model kodu. Örneğin iPhone15,2 bir iPhone 14 Pro'dur. Bu satır önemlidir: iPhone 13 ve sonrasında aynı kod farklı modellerde farklı parçaya karşılık gelir, model bilinmeden doğru sonuç çıkmaz.
Künyenin altında panicString gelir. Asıl bilgi buradadır.
panicString satırı
Bu satır genellikle panic(cpu 4 caller 0x…): ile başlar. Parantez içindeki numaralar işlemci çekirdeği ve bellek adresidir, tanı için gerekmez. İki nokta üst üsteden sonrası okunacak kısımdır. Birkaç örnek:
SMC PANIC
SMC, telefonun sensörlerini yöneten birimdir. Bu satırla birlikte genellikle bir sensor array dizisi ve sayılar görünür. O sayılar hangi sensörün cevap vermediğini kodlar. iPhone 13 ve sonrasında bu kodlar modelden modele değişir; bu yüzden "product" satırı olmadan okunamaz.
Bu tür arızalarda telefon çoğu zaman belirli aralıklarla, saat gibi yeniden başlar.
AOP PANIC
AOP, telefon kapalıyken bile çalışan, sensörleri dinleyen bölümdür. Ortam ışığı sensörü, basınç sensörü, bazı mikrofonlar buna bağlıdır. "AOP PANIC" ifadesinin yanındaki kelime hangi alt birimde olduğunu söyler; her biri farklı parçaya işaret eder.
Watchdog timeout / WDT
Telefonun bir bileşenden beklediği cevap gelmediğinde çıkar. Yanında eksik olan sensörün adı yazıyorsa (örneğin PRS0 ya da Mic1 gibi) doğrudan o sensörün bulunduğu parçaya bakılır. Hiçbir sensör adı yoksa ve yalnızca bir servis adı varsa yazılım ihtimali artar.
i2c
i2c, parçaların anakartla konuştuğu bir hattır. Logda bir i2c numarası geçiyorsa o hat üzerindeki parçalardan biri cevap vermiyor demektir. Hangi parçanın o hatta bağlı olduğu modele göre değişir.
Yazılım kaynaklı ifadeler
Bazı satırlar donanımı değil çekirdeği işaret eder. "Invalid kernel stack pointer" ya da "Undefined kernel instruction" gibi ifadeler çoğunlukla yazılım ya da bellek tarafındadır; önce geri yükleme denenir.
Güven seviyesi ne demek?
Bu sitedeki analiz sonucunda her bulgunun yanında bir güven etiketi görürsünüz:
- Yüksek — İfade belirli bir parçaya net karşılık geliyor.
- Orta — Karşılık biliniyor ama aynı ifade başka bir arızadan da çıkabilir.
- Düşük — Yönlendirme niteliğinde; kontrol sırası verir, tek bir parçayı işaret etmez.
Ekran görüntüsünden okunan loglarda güven bir kademe düşük gösterilir, çünkü harflerin yanlış okunma ihtimali vardır.
Okurken dikkat edilecekler
- Panic log bir ipucudur. Aynı ifade farklı arızalardan çıkabilir; sonucu sağlam bir parçayla test ederek doğrulayın.
- Birden fazla log alın. Hep aynı parçayı gösteriyorsa donanım, her seferinde farklı ifade çıkıyorsa yazılım ya da anakart olasılığı artar.
- Logun tamamını kullanın. Yalnızca panicString satırı yeterli değildir; "product" satırı olmadan model bilinmez.
- Eski bir log yanıltabilir. Dosya adındaki tarihe bakıp en yenisini seçin.
Elinizdeki logu analiz sayfasına yapıştırarak hangi parçaya karşılık geldiğine bakabilirsiniz.