@@ -156,14 +156,14 @@ impl<'a> EngineExecutor<'a> {
156156 // InputType references resolve against the currently running node.
157157 value_store. set_current_node_id ( node. id ) ;
158158
159- let frame_id = self . trace_enter ( node) ;
159+ let frame_id = self . trace_enter ( node, value_store ) ;
160160 let signal = match & node. execution_target {
161161 NodeExecutionTarget :: Local => self . execute_local_node ( node, value_store, frame_id) ,
162162 NodeExecutionTarget :: Remote { service } => {
163163 self . execute_remote_node ( node, service, value_store, frame_id)
164164 }
165165 } ;
166- self . trace_exit ( frame_id, & signal) ;
166+ self . trace_exit ( frame_id, & signal, value_store ) ;
167167
168168 NodeExecutionResult { signal, frame_id }
169169 }
@@ -519,15 +519,17 @@ impl<'a> EngineExecutor<'a> {
519519 }
520520 }
521521
522- fn trace_enter ( & self , node : & CompiledNode ) -> Option < u64 > {
522+ fn trace_enter ( & self , node : & CompiledNode , value_store : & ValueStore ) -> Option < u64 > {
523523 self . tracer . map ( |tracer| {
524- tracer
525- . borrow_mut ( )
526- . enter_node ( node. id , node. handler_id . as_str ( ) )
524+ tracer. borrow_mut ( ) . enter_node (
525+ node. id ,
526+ node. handler_id . as_str ( ) ,
527+ value_store. trace_snapshot ( ) ,
528+ )
527529 } )
528530 }
529531
530- fn trace_exit ( & self , frame_id : Option < u64 > , signal : & Signal ) {
532+ fn trace_exit ( & self , frame_id : Option < u64 > , signal : & Signal , value_store : & ValueStore ) {
531533 let Some ( frame_id) = frame_id else {
532534 return ;
533535 } ;
@@ -550,7 +552,9 @@ impl<'a> EngineExecutor<'a> {
550552 } ,
551553 Signal :: Stop => Outcome :: Stop ,
552554 } ;
553- tracer. borrow_mut ( ) . exit_node ( frame_id, outcome) ;
555+ tracer
556+ . borrow_mut ( )
557+ . exit_node ( frame_id, outcome, value_store. trace_snapshot ( ) ) ;
554558 }
555559
556560 fn trace_record_arg ( & self , frame_id : Option < u64 > , arg : ArgTrace ) {
0 commit comments