internal bool ReadDebuggingDataModel(ref NativeStream.Reader reader, EntityFrameData entityFrameData, out TracingStep tracingStep) { tracingStep = default; IPortModel portModel; switch (reader.Read <DotsFrameTrace.StepType>()) { case DotsFrameTrace.StepType.ExecutedNode: entityFrameData.FrameTrace.ReadExecutedNode(ref reader, out NodeId id, out byte progress); if (!NodeMapping.TryGetValue(id, out var nodeModel)) { return(false); } tracingStep = TracingStep.ExecutedNode(nodeModel, progress); break; case DotsFrameTrace.StepType.TriggeredPort: entityFrameData.FrameTrace.ReadTriggeredPort(ref reader, out OutputTriggerPort triggeredPort); if (!PortMapping.TryGetValue(triggeredPort.Port.Index, out portModel)) { return(false); } tracingStep = TracingStep.TriggeredPort(portModel); break; case DotsFrameTrace.StepType.WrittenValue: entityFrameData.FrameTrace.ReadWrittenValue(ref reader, out Value writtenValue, out OutputDataPort outputDataPort); if (!PortMapping.TryGetValue(outputDataPort.Port.Index, out portModel)) { return(false); } tracingStep = TracingStep.WrittenValue(portModel, writtenValue.ToPrettyString()); break; case DotsFrameTrace.StepType.ReadValue: entityFrameData.FrameTrace.ReadReadValue(ref reader, out Value readValue, out InputDataPort inputDataPort); if (!PortMapping.TryGetValue(inputDataPort.Port.Index, out portModel)) { return(false); } tracingStep = TracingStep.ReadValue(portModel, readValue.ToPrettyString()); break; default: throw new ArgumentOutOfRangeException(); } return(true); }
void DisplayStepValues(TracingStep step) { switch (step.Type) { case TracingStepType.ExecutedNode: // Do Nothing, already handled in HighlightTrace() break; case TracingStepType.TriggeredPort: var p = step.PortModel.GetUI <DebuggingPort>(m_GraphView); if (p != null) { p.ExecutionPortActive = true; } break; case TracingStepType.WrittenValue: step.NodeModel.GraphModel.AddBadge(new DebuggingValueBadgeModel(step)); break; case TracingStepType.ReadValue: step.NodeModel.GraphModel.AddBadge(new DebuggingValueBadgeModel(step)); break; case TracingStepType.Error: step.NodeModel.GraphModel.AddBadge(new DebuggingErrorBadgeModel(step)); break; } var hasProgress = step.NodeModel as IHasProgress; if (hasProgress?.HasProgress ?? false) { var node = step.NodeModel.GetUI <CollapsibleInOutNode>(m_GraphView); if (node != null) { node.Progress = step.Progress; } } }
void AddStyleClassToModel(TracingStep step, string highlightStyle) { var node = step.NodeModel.GetUI <Node>(m_GraphView); if (step.NodeModel != null && node != null) { // TODO TRACING errors // if (step.type == DebuggerTracer.EntityFrameTrace.StepType.Exception) // { // ui.AddToClassList(k_ExceptionHighlight); // // if (m_PauseState == PauseState.Paused || m_PlayState == PlayModeStateChange.EnteredEditMode) // { // ((VseGraphView)m_GraphView).UIController.AttachErrorBadge(ui, step.errorMessage, SpriteAlignment.TopLeft); // } // } // else { node.AddToClassList(highlightStyle); } } }
static string GetName(TracingStep step) { return($"{step.Type} {step.NodeModel} {step.PortModel}"); }
public StepSearcherItem(TracingStep step, int i) : base(GetName(step), "No help available.") { Index = i; }
public DebuggingErrorBadgeModel(TracingStep step) : base(step.NodeModel) { m_ErrorMessage = step.ErrorMessage; }
public DebuggingValueBadgeModel(TracingStep step) : base(step.PortModel, step.ValueString) { }