in sapp/ui/interactive.py [0:0]
def frame(self, frame_id: int) -> None:
with self.db.make_session() as session:
selected_frame = (
session.query(TraceFrame.id, TraceFrame.kind, TraceFrame.run_id)
.filter(TraceFrame.id == frame_id)
.first()
)
if selected_frame is None:
self.warning(
f"Trace frame {frame_id} doesn't exist. "
"Type 'frames' for available trace frames."
)
return
if selected_frame.kind == TraceKind.POSTCONDITION:
self.sinks = set()
self.sources = trace.get_leaves_trace_frame(
session, int(selected_frame.id), SharedTextKind.SOURCE
)
else:
self.sinks = trace.get_leaves_trace_frame(
session, int(selected_frame.id), SharedTextKind.SINK
)
self.sources = set()
self.current_frame_id = selected_frame.id
self.current_issue_instance_id = DBID(-1)
print(f"Set trace frame to {frame_id}.")
if int(selected_frame.run_id) != self._current_run_id:
self._current_run_id = selected_frame.run_id
print(f"Set run to {self._current_run_id}.")
print()
self._generate_trace_from_frame()
self.show()