public CallTreeData(GenericStackSource stackSource, StackViewerModel model, SymbolReader symbolReader) { this.stackSource = stackSource; this.model = model; this.symbolReader = symbolReader; }
public async ValueTask <ICallTreeData> GetCallTreeAsync(StackViewerModel model, GenericStackSource stackSource = null) { await this.EnsureInitialized(); lock (this.callTreeDataCache) { if (!this.callTreeDataCache.TryGetValue(model, out var value)) { value = new CallTreeData(stackSource ?? this.deserializer.GetStackSource((ProcessIndex)int.Parse(model.Pid), int.Parse(model.StackType)), model, this.symbolReader); this.callTreeDataCache.Add(model, value); } return(value); } }