Table of Contents

Struct CpuFrameSymbol

Namespace
Typhon.Profiler
Assembly
Typhon.Profiler.dll

One resolved frame symbol in the trailing CpuSampleSection of a .typhon-trace file (#351). Interned stacks reference frame symbols by FrameId; a frame symbol carries the display method name and, when the frame resolved to source, a FileId / Line.

public readonly struct CpuFrameSymbol
Inherited Members

Remarks

FileId indexes the same FileTable the SourceLocationManifest uses — path interning is shared across both sections. A frame with no resolved source (BCL / native / dynamic) has Line = 0 — HasSource reports it. (The FileTable does not reserve a 0-index sentinel — index 0 is a real file — so Line, not FileId, is the "has source" discriminator.) Such a frame still renders, it just has no editor link.

Constructors

CpuFrameSymbol(ushort, ushort, uint, string)

Construct a resolved frame symbol.

public CpuFrameSymbol(ushort frameId, ushort fileId, uint line, string method)

Parameters

frameId ushort

Section-local frame id.

fileId ushort

Index into the shared FileTable; meaningful only when line is non-zero.

line uint

1-based source line, or 0 when the frame has no resolved source.

method string

Display name of the method; null is coerced to the empty string.

Properties

FileId

Index into the shared FileTable. Meaningful only when HasSource is true.

public ushort FileId { get; }

Property Value

ushort

FrameId

Section-local frame id (a dense u16 space, distinct from the source-location manifest's site-id space).

public ushort FrameId { get; }

Property Value

ushort

HasSource

True when the frame resolved to a source location (FileId / Line are usable).

public bool HasSource { get; }

Property Value

bool

Line

1-based source line, or 0 when the frame has no resolved source.

public uint Line { get; }

Property Value

uint

Method

Display name of the frame's method; never null.

public string Method { get; }

Property Value

string