IEx.Pry View Source

The low-level API for prying sessions and setting up breakpoints.

Link to this section Summary

Functions

Sets up a breakpoint on the given module/function/arity

Sets up a breakpoint on the given module/function/args with the given guard

Returns all breakpoints

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

Link to this section Types

Link to this type

break() View Source
break() ::
  {id(), module(), {function(), arity()}, pending :: non_neg_integer()}

Link to this type

break_error() View Source
break_error() ::
  :recompilation_failed
  | :no_beam_file
  | :unknown_function_arity
  | :missing_debug_info
  | :outdated_debug_info
  | :non_elixir_module

Link to this section Functions

Link to this function

break(module, function, arity, breaks \\ 1) View Source
break(module(), function(), arity(), pos_integer()) ::
  {:ok, id()} | {:error, break_error()}

Sets up a breakpoint on the given module/function/arity.

Link to this function

break(module, function, args, guard, env, breaks \\ 1) View Source
break(
  module(),
  function(),
  [Macro.t()],
  Macro.t(),
  Macro.Env.t(),
  pos_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.

Link to this function

break!(module, function, arity, breaks \\ 1) View Source
break!(module(), function(), arity(), pos_integer()) :: id()

Raising variant of break/4.

Link to this function

break!(module, function, args, guard, env, breaks \\ 1) View Source
break!(
  module(),
  function(),
  [Macro.t()],
  Macro.t(),
  Macro.Env.t(),
  pos_integer()
) :: id()

Raising variant of break/6.

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 Kernel.binding/0) and the environment (from __ENV__/0).

Link to this function

remove_breaks() View Source
remove_breaks() :: :ok

Removes all breakpoints on all modules.

This effectively loads the non-instrumented version of currently instrumented modules into memory.

Link to this function

remove_breaks(module) View Source
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.

Link to this function

reset_break(id) View Source
reset_break(id()) :: :ok | :not_found

Resets the breaks on a given breakpoint id.

Link to this function

reset_break(module, function, arity) View Source
reset_break(module(), function(), arity()) :: :ok | :not_found

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.

Link to this function

whereami(file, line, radius) View Source

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.