Skip to content

Is it possible to start debugger on a specific line? #120

Open

Description

@max-arnold

Trying it like this:

PYTHONHUNTER='Q(kind="line",lineno=253,module_in=["mymodule"],action=Debugger())'

But the debugger starts not at the specified line (which is a variable assignment), but below it in the next function call.

Is that expected?

Activity

  1. ionelmc commented on Dec 6, 2023

    @ionelmc
    Owner

    Yes, it is, because tracing in general is post-facto, the action will be called after the code being traced has been executed.

    Is there a specific problem you're trying to solve there? Seems like you could give more context...

  2. max-arnold commented on Dec 6, 2023

    @max-arnold
    Author

    I'm trying to invoke pdb (for step-by step debugging and altering some variables) at specific line without editing the source code. The code fragment looks like this:

       def __init__(...
        ):
            """
            A docstring
            """
    
            self.parent_loader = None   #### TARGET LINE (253) ####
            self.inject_globals = {}
            self.pack = {} if pack is None else pack
            for i in self.pack:
                if isinstance(self.pack[i], salt.loader.context.NamedLoaderContext):
                    self.pack[i] = self.pack[i].value()
            if opts is None:
                opts = {}
            opts = copy.deepcopy(opts)
    

    But the debugger gets invoked in stdlib inside of the next (nearest) call:

    -> def deepcopy(x, memo=None, _nil=[]):
    (Pdb)
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions