Skip to content

How to make program stop only when exceptions are raised? #1793

Closed

Description

@xylin0

If run debugpy with --wait-for-client, the program stops and wait for connection. After client's connection, breakpoint() makes program stop, and also raised exceptions if Raised Exceptions is checked in VSCode.

But in my use cases, I don't want to use --wait-for-client as it stops the whole thing. I just want to debug the program if something goes wrong, such as assertions failed. If nothing goes wrong, the program proceeds normally to the end.

For example, this program

# foo.py
x=1
assert x==0
x=2

Run it with python -m debugpy --listen 1234 foo.py. The program did not stop at assert x==0, but this uncaught exception make it exit.

Activity

  1. rchiodo commented on Jan 6, 2025

    @rchiodo
    Contributor

    Sorry but what you're asking for isn't currently possible. A debugger must be attached in order to stop on exceptions. There's no way to launch a debugger after the program has already thrown the exception.

    Theoretically the idea is possible though. You wouldn't use debugpy though, but something smaller that just listened to exception events and then possibly stopped the program and called out to VS code to attach.

    I'll transfer this to a discussion item.

  2. locked and limited conversation to collaborators on Jan 6, 2025
  3. converted this issue into a discussion #1796 on Jan 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

needs reproIssue has not been reproduced yet

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions