查看源代码 IEx.Pry (IEx v1.16.2)

用于调试会话和设置断点的低级 API。

概述

函数

在给定的模块/函数/元数上设置断点。

在给定的模块/函数/参数上,使用给定的 guard 设置断点。

返回所有断点。

IEx.pry/0 的回调函数。

删除所有模块上的所有断点。

删除给定模块中的断点。

重置给定断点 ID 上的断点。

重置给定 modulefunctionarity 的断点。

whereami/3 调试格式化位置。

类型

@type break() :: {id(), module(), {function(), arity()}, pending :: non_neg_integer()}
@type break_error() ::
  :recompilation_failed
  | :no_beam_file
  | :unknown_function_arity
  | :missing_debug_info
  | :outdated_debug_info
  | :non_elixir_module
@type id() :: integer()

函数

链接到此函数

break(module, function, arity, breaks \\ 1)

查看源代码
@spec break(module(), atom(), arity(), non_neg_integer()) ::
  {:ok, id()} | {:error, break_error()}

在给定的模块/函数/元数上设置断点。

链接到此函数

break(module, function, args, guard, env, breaks \\ 1)

查看源代码
@spec break(
  module(),
  atom(),
  [Macro.t()],
  Macro.t(),
  Macro.Env.t(),
  non_neg_integer()
) ::
  {:ok, id()} | {:error, break_error()}

在给定的模块/函数/参数上,使用给定的 guard 设置断点。

它需要一个 env 来展开守卫。

链接到此函数

break!(module, function, arity, breaks \\ 1)

查看源代码
@spec break!(module(), atom(), arity(), non_neg_integer()) :: id()

break/4 的抛出变体。

链接到此函数

break!(module, function, args, guard, env, breaks \\ 1)

查看源代码
@spec break!(
  module(),
  atom(),
  [Macro.t()],
  Macro.t(),
  Macro.Env.t(),
  non_neg_integer()
) :: id()

break/6 的抛出变体。

@spec breaks() :: [break()]

返回所有断点。

IEx.pry/0 的回调函数。

当无法将 IEx.pry/0 作为宏调用时,可以直接调用此函数。此函数期望绑定(来自 binding/0)和环境(来自 __ENV__/0)。

@spec remove_breaks() :: :ok

删除所有模块上的所有断点。

这实际上将当前已插入模块的未插入版本加载到内存中。

@spec remove_breaks(module()) :: :ok | {:error, :no_beam_file}

删除给定模块中的断点。

这实际上将模块的未插入版本加载到内存中。

@spec reset_break(id()) :: :ok | :not_found

重置给定断点 ID 上的断点。

链接到此函数

reset_break(module, function, arity)

查看源代码
@spec reset_break(module(), atom(), arity()) :: :ok | :not_found

重置给定 modulefunctionarity 的断点。

如果 module 未插入,或给定的 function 没有断点,则为无操作,并返回 :not_found。否则返回 :ok

链接到此函数

whereami(file, line, radius)

查看源代码

whereami/3 调试格式化位置。

它接收 fileline 和代码片段 radius,并返回 {:ok, lines},其中 lines 是一个包含每个格式化行的字符数据的列表,或 :error

实际行以粗体格式特别显示。