View Source IEx.Pry (IEx v1.18.0-dev)
The low-level API for prying sessions and setting up breakpoints.
Summary
Functions
Annotate quoted expression with line-by-line IEx.Pry
debugging steps.
Sets up a breakpoint on the given module/function/arity.
Sets up a breakpoint on the given module/function/args with the given guard
.
Raising variant of break/4
.
Raising variant of break/6
.
Returns all breakpoints.
Callback for IEx.pry/0
.
Removes all breakpoints on all modules.
Removes breakpoints in the given module.
Resets the breaks on a given breakpoint ID.
Resets the breaks for the given module
, function
and arity
.
Formats the location for whereami/3
prying.
Types
Functions
@spec annotate_quoted(Macro.t(), Macro.t(), Macro.Env.t()) :: Macro.t()
Annotate quoted expression with line-by-line IEx.Pry
debugging steps.
It expects the quoted
expression to annotate, a boolean condition
that controls
if pry should run or not (usually is simply the boolean true
), and the
caller macro environment.
@spec break(module(), atom(), arity(), non_neg_integer()) :: {:ok, id()} | {:error, break_error()}
Sets up a breakpoint on the given module/function/arity.
@spec break( module(), atom(), [Macro.t()], Macro.t(), Macro.Env.t(), non_neg_integer() ) :: {:ok, id()} | {:error, break_error()}
Sets up a breakpoint on the given module/function/args with the given guard
.
It requires an env
to be given to make the expansion of the guards.
@spec break!(module(), atom(), arity(), non_neg_integer()) :: id()
Raising variant of break/4
.
@spec break!( module(), atom(), [Macro.t()], Macro.t(), Macro.Env.t(), non_neg_integer() ) :: id()
Raising variant of break/6
.
@spec breaks() :: [break()]
Returns all breakpoints.
Callback for IEx.pry/0
.
You can invoke this function directly when you are not able to invoke
IEx.pry/0
as a macro. This function expects the binding (from
binding/0
) and the environment (from __ENV__/0
).
@spec remove_breaks() :: :ok
Removes all breakpoints on all modules.
This effectively loads the non-instrumented version of currently instrumented modules into memory.
@spec remove_breaks(module()) :: :ok | {:error, :no_beam_file}
Removes breakpoints in the given module.
This effectively loads the non-instrumented version of the module into memory.
@spec reset_break(id()) :: :ok | :not_found
Resets the breaks on a given breakpoint ID.
Resets the breaks for the given module
, function
and arity
.
If the module
is not instrumented or if the given function
does not have a breakpoint, it is a no-op and it returns
:not_found
. Otherwise it returns :ok
.
@spec whereami(String.t(), non_neg_integer(), pos_integer()) :: {:ok, IO.chardata()} | :error
Formats the location for whereami/3
prying.
It receives the file
, line
and the snippet radius
and
returns {:ok, lines}
, where lines is a list of chardata
containing each formatted line, or :error
.
The actual line is especially formatted in bold.