| import subprocess | |
| def attach(pid: int, suspended: bool = False) -> None: | |
| script = """ | |
| on run argv | |
| set targetPID to item 1 of argv as integer | |
| set shouldSuspend to item 2 of argv as boolean | |
| tell application "Xcode" | |
| activate | |
| if (count of workspace documents) is greater than 0 then | |
| set debuggingWorkspace to workspace document 1 | |
| else | |
| set debuggingWorkspace to create temporary debugging workspace | |
| end if | |
| attach debuggingWorkspace to process identifier targetPID suspended shouldSuspend | |
| end tell | |
| end run | |
| """ | |
| subprocess.run(["osascript", "-e", script, str(pid), str(suspended)], check=True) |