Documentation
¶
Overview ¶
Package stackparse — stack trace metnini yapısal frame'lere çeviren SAF çözümleyici (v0.9.830).
Amacı tek: bir frame'i KAYNAK KODDA konumlandırabilmek. Bunun için dosya adı, satır numarası ve "bu uygulama kodu mu, çerçeve gürültüsü mü?" bilgisi gerekir; gerisi (repo eşleme, dosya çekme) devops paketinin işi.
fingerprint bilinçli ayrı, bkz. spec 2026-08-09 ¶
chstore.topFrames / FingerprintException bu paketi KULLANMAZ ve kullanmamalıdır. Parmak izi, ClickHouse'ta hâlihazırda milyonlarca satırın kimliği: buradaki normalizasyonun (war// öneki soyma, JPMS modülü ayırma) oraya sızması mevcut TÜM grupları yeniden numaralandırır — operatörün ekranında bir gecede "yeni" exception seli, üstelik sessiz. Bu paket yalnız OKUMA tarafıdır; gruplama hattına dokunmaz. İki taraf da aynı metni okur, farklı soruyu cevaplar ve bilinçli olarak ayrı kalır.
Java önce (operatörün filosu JBoss/WildFly ağırlıklı). Go/Python istenirse aynı Frame sözleşmesiyle eklenir.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsAppClass ¶
IsAppClass — sınıf adı uygulama kodu mu? Saf; tablo-testli.
Önek eşleşmesi, "içeriyor" DEĞİL: com.example.jdk.Helper bir uygulama sınıfıdır, "jdk." alt dizgisi geçiyor diye elenmemeli.
Types ¶
type Frame ¶
type Frame struct {
// Class — tam nitelikli sınıf adı (paket dahil), örn.
// com.example.billing.CardService. İç sınıflarda $ korunur.
Class string
// Method — metot adı; <init> / <clinit> / lambda$x$0 aynen kalır.
Method string
// File — kaynak dosya adı (yol YOK, Java stack'i yol taşımaz).
File string
// Line — kaynak satırı; 0 = bilinmiyor.
Line int
// Module — soyulan önek: "deployment.BSAWEB.war", "java.base",
// "org.jboss.as.ee", "mymodule@1.2.3". Boş = önek yoktu.
Module string
// IsApp — uygulama kodu mu? Çerçeve/JDK frame'leri false.
IsApp bool
}
Frame — çözümlenmiş tek stack satırı.
File/Line boş olabilir ("Unknown Source", "Native Method") — o frame kodda konumlandırılamaz, çağıran atlar.
func AppFrames ¶
AppFrames — IsApp olan ve kodda konumlandırılabilen (dosya+satır) ilk n frame. Kod çekmenin girdisi; saf.
Satırsız app frame'i ELENİR: dosya adı eşleşse bile pencere merkezi olmaz, "dosyanın başından 60 satır" ise kanıt değil gürültüdür.
func ParseJava ¶
ParseJava — Java/Kotlin/Scala stack trace'ini frame'lere çevirir.
Tanınmayan satırlar (mesaj başlığı, "Caused by:", "... 42 more", yarım kesilmiş satır) sessizce ATLANIR: stacktrace'ler log alanlarında kırpılmış gelir, tek bozuk satır tüm çözümlemeyi düşürmemeli. "Caused by:" zincirindeki frame'ler sıralarıyla listeye girer — kök nedene en yakın kod genelde oradadır.
func (Frame) PackagePath ¶
PackagePath — sınıfın paket yolu, "/" ayraçlı: com.x.billing.Card → "com/x/billing". Depo ağacında dosya eşleştirirken skorlayıcının girdisi. Paketsiz sınıf → boş.