stackparse

package
v0.9.879 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 10, 2026 License: MIT Imports: 3 Imported by: 0

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

func IsAppClass(class string) bool

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

func AppFrames(frames []Frame, n int) []Frame

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

func ParseJava(stack string) []Frame

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

func (f Frame) PackagePath() string

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ş.

func (Frame) String

func (f Frame) String() string

String — "com.x.Y.m(Y.java:246)". Prompt'ta ve kaynak satırında frame'i tek parça göstermek için.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL