def frame()

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()