Beispiel #1
0
 public CallTreeData(GenericStackSource stackSource, StackViewerModel model, SymbolReader symbolReader)
 {
     this.stackSource  = stackSource;
     this.model        = model;
     this.symbolReader = symbolReader;
 }
Beispiel #2
0
        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);
            }
        }