MCPcopy Create free account
hub / github.com/microsoft/debugpy / _process_event

Method _process_event

tests/debug/session.py:547–593  ·  view source on GitHub ↗
(self, event)

Source from the content-addressed store, hash-verified

545 return request
546
547 def _process_event(self, event):
548 occ = self.timeline.record_event(event, block=False)
549
550 if event.event == "exited":
551 self.observe(occ)
552 self.exit_code = event("exitCode", int)
553 self.exit_reason = event("reason", str, optional=True)
554 assert self.exit_code == self.expected_exit_code
555
556 elif event.event == "terminated":
557 # Server socket should be closed next.
558 self.expected_adapter_sockets.pop("server", None)
559
560 elif event.event == "debugpyAttach":
561 self.observe(occ)
562 pid = event("subProcessId", int)
563 watchdog.register_spawn(pid, f"{self.debuggee_id}-subprocess-{pid}")
564
565 elif event.event == "debugpySockets":
566 assert not self.is_subprocess
567 sockets = list(event("sockets", json.array(json.object())))
568 for purpose, expected_socket in self.expected_adapter_sockets.items():
569 if expected_socket is None:
570 continue
571 socket = None
572 for socket in sockets:
573 if socket == expected_socket:
574 break
575 assert (
576 socket is not None
577 ), f"Expected {purpose} socket {expected_socket} not reported by adapter"
578 sockets.remove(socket)
579 assert not sockets, f"Unexpected sockets reported by adapter: {sockets}"
580
581 if self.start_command == "launch":
582 if "launcher" in self.expected_adapter_sockets:
583 # If adapter has just reported the launcher socket, it shouldn't be
584 # reported thereafter.
585 self.expected_adapter_sockets["launcher"] = None
586 elif "server" in self.expected_adapter_sockets:
587 # If adapter just reported the server socket, the next event should
588 # report the launcher socket.
589 self.expected_adapter_sockets["launcher"] = {
590 "host": some.str,
591 "port": some.int,
592 "internal": False,
593 }
594
595 def run_in_terminal(self, args, cwd, env):
596 exe = args.pop(0)

Callers

nothing calls this directly

Calls 5

record_eventMethod · 0.80
observeMethod · 0.80
popMethod · 0.80
itemsMethod · 0.80
removeMethod · 0.45

Tested by

no test coverage detected