<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="x-ua-compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="generator" content="ExDoc v0.19.1"> <title>IEx.Pry – IEx v1.7.2</title> <link rel="stylesheet" href="dist/app-240d7fc7e5.css" /> <link rel="canonical" href="https://hexdocs.pm/iex/v1.7/IEx.Pry.html" /> <script src="dist/sidebar_items-6ccc90797b.js"></script> </head> <body data-type="modules"> <script>try { if(localStorage.getItem('night-mode')) document.body.className += ' night-mode'; } catch (e) { }</script> <div class="main"> <button class="sidebar-button sidebar-toggle"> <span class="icon-menu" aria-hidden="true"></span> <span class="sr-only">Toggle Sidebar</span> </button> <button class="sidebar-button night-mode-toggle"> <span class="icon-theme" aria-hidden="true"></span> <span class="sr-only">Toggle Theme</span> </button> <section class="sidebar"> <a href="http://elixir-lang.org/docs.html" class="sidebar-projectLink"> <div class="sidebar-projectDetails"> <h1 class="sidebar-projectName"> IEx </h1> <h2 class="sidebar-projectVersion"> v1.7.2 </h2> </div> <img src="assets/logo.png" alt="IEx" class="sidebar-projectImage"> </a> <form class="sidebar-search" action="search.html"> <button type="submit" class="search-button"> <span class="icon-search" aria-hidden="true"></span> </button> <input name="q" type="text" id="search-list" class="search-input" placeholder="Search" aria-label="Search" autocomplete="off" /> </form> <ul class="sidebar-listNav"> <li><a id="extras-list" href="#full-list">Pages</a></li> <li><a id="modules-list" href="#full-list">Modules</a></li> </ul> <div class="gradient"></div> <ul id="full-list" class="sidebar-fullList"></ul> </section> <section class="content"> <div class="content-outer"> <div id="content" class="content-inner"> <h1> <small class="visible-xs">IEx v1.7.2</small> IEx.Pry <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L1" title="View Source" class="view-source" rel="help"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> </h1> <section id="moduledoc"> <p>The low-level API for prying sessions and setting up breakpoints.</p> </section> <section id="summary" class="details-list"> <h1 class="section-heading"> <a class="hover-link" href="#summary"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this section</span> </a> Summary </h1> <div class="summary-types summary"> <h2> <a href="#types">Types</a> </h2> <div class="summary-row"> <div class="summary-signature"> <a href="#t:break/0">break()</a> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#t:id/0">id()</a> </div> </div> </div> <div class="summary-functions summary"> <h2> <a href="#functions">Functions</a> </h2> <div class="summary-row"> <div class="summary-signature"> <a href="#break!/5">break!(module, function, arity, condition, breaks \\ 1)</a> </div> <div class="summary-synopsis"><p>Raising variant of <a href="#break/5"><code class="inline">break/5</code></a></p> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#break/5">break(module, function, arity, condition, breaks \\ 1)</a> </div> <div class="summary-synopsis"><p>Sets up a breakpoint on the given module/function/arity matching the given args and guard</p> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#breaks/0">breaks()</a> </div> <div class="summary-synopsis"><p>Returns all breakpoints</p> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#child_spec/1">child_spec(arg)</a> </div> <div class="summary-synopsis"><p>Returns a specification to start this module under a supervisor</p> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#pry/2">pry(binding, env)</a> </div> <div class="summary-synopsis"><p>Callback for <code class="inline">IEx.pry/1</code></p> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#remove_breaks/0">remove_breaks()</a> </div> <div class="summary-synopsis"><p>Removes all breakpoints on all modules</p> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#remove_breaks/1">remove_breaks(module)</a> </div> <div class="summary-synopsis"><p>Removes breakpoints in the given module</p> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#reset_break/1">reset_break(id)</a> </div> <div class="summary-synopsis"><p>Resets the breaks on a given breakpoint id</p> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#reset_break/3">reset_break(module, function, arity)</a> </div> <div class="summary-synopsis"><p>Resets the breaks for the given module, function and arity</p> </div> </div> <div class="summary-row"> <div class="summary-signature"> <a href="#whereami/3">whereami(file, line, radius)</a> </div> <div class="summary-synopsis"><p>Formats the location for <a href="#whereami/3"><code class="inline">whereami/3</code></a> prying</p> </div> </div> </div> </section> <section id="types" class="details-list"> <h1 class="section-heading"> <a class="hover-link" href="#types"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this section</span> </a> Types </h1> <div class="types-list"> <div class="detail" id="t:break/0"> <div class="detail-header"> <a href="#t:break/0" class="detail-link" title="Link to this type"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this type</span> </a> <span class="signature">break()</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L14" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> <div class="specs"> <pre>break() :: {<a href="#t:id/0">id</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">module</a>(), {<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">function</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">arity</a>()}, pending :: <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">non_neg_integer</a>()}</pre> </div> </div> <section class="docstring"> </section> </div> <div class="detail" id="t:id/0"> <div class="detail-header"> <a href="#t:id/0" class="detail-link" title="Link to this type"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this type</span> </a> <span class="signature">id()</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L13" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> <div class="specs"> <pre>id() :: <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">integer</a>()</pre> </div> </div> <section class="docstring"> </section> </div> </div> </section> <section id="functions" class="details-list"> <h1 class="section-heading"> <a class="hover-link" href="#functions"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this section</span> </a> Functions </h1> <div class="detail" id="break!/5"> <span id="break!/4"></span> <div class="detail-header"> <a href="#break!/5" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">break!(module, function, arity, condition, breaks \\ 1)</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L174" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> </div> <section class="docstring"> <p>Raising variant of <a href="#break/5"><code class="inline">break/5</code></a>.</p> </section> </div> <div class="detail" id="break/5"> <span id="break/4"></span> <div class="detail-header"> <a href="#break/5" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">break(module, function, arity, condition, breaks \\ 1)</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L164" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> <div class="specs"> <pre>break(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">module</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">function</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">arity</a>(), <a href="https://hexdocs.pm/elixir/Macro.html#t:t/0">Macro.t</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">pos_integer</a>()) :: {:ok, <a href="#t:id/0">id</a>()} | {:error, :recompilation_failed | :no_beam_file | :unknown_function_arity | :otp_20_is_required | :missing_debug_info | :outdated_debug_info | :non_elixir_module}</pre> <pre>break(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">module</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">function</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">arity</a>(), <a href="https://hexdocs.pm/elixir/Macro.html#t:t/0">Macro.t</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">pos_integer</a>()) :: <a href="#t:id/0">id</a>()</pre> </div> </div> <section class="docstring"> <p>Sets up a breakpoint on the given module/function/arity matching the given args and guard.</p> </section> </div> <div class="detail" id="breaks/0"> <div class="detail-header"> <a href="#breaks/0" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">breaks()</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L254" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> <div class="specs"> <pre>breaks() :: [<a href="#t:break/0">break</a>()]</pre> </div> </div> <section class="docstring"> <p>Returns all breakpoints.</p> </section> </div> <div class="detail" id="child_spec/1"> <div class="detail-header"> <a href="#child_spec/1" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">child_spec(arg)</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L6" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> </div> <section class="docstring"> <p>Returns a specification to start this module under a supervisor.</p> <p>See <a href="https://hexdocs.pm/elixir/Supervisor.html"><code class="inline">Supervisor</code></a>.</p> </section> </div> <div class="detail" id="pry/2"> <div class="detail-header"> <a href="#pry/2" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">pry(binding, env)</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L85" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> </div> <section class="docstring"> <p>Callback for <code class="inline">IEx.pry/1</code>.</p> <p>You can invoke this function directly when you are not able to invoke <code class="inline">IEx.pry/1</code> as a macro. This function expects the binding (from <a href="https://hexdocs.pm/elixir/Kernel.html#binding/0"><code class="inline">Kernel.binding/0</code></a>) and the environment (from <a href="https://hexdocs.pm/elixir/Kernel.SpecialForms.html#__ENV__/0"><code class="inline">__ENV__/0</code></a>).</p> </section> </div> <div class="detail" id="remove_breaks/0"> <div class="detail-header"> <a href="#remove_breaks/0" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">remove_breaks()</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L235" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> <div class="specs"> <pre>remove_breaks() :: :ok</pre> </div> </div> <section class="docstring"> <p>Removes all breakpoints on all modules.</p> <p>This effectively loads the non-instrumented version of currently instrumented modules into memory.</p> </section> </div> <div class="detail" id="remove_breaks/1"> <div class="detail-header"> <a href="#remove_breaks/1" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">remove_breaks(module)</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L246" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> <div class="specs"> <pre>remove_breaks(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">module</a>()) :: :ok | {:error, :no_beam_file}</pre> </div> </div> <section class="docstring"> <p>Removes breakpoints in the given module.</p> <p>This effectively loads the non-instrumented version of the module into memory.</p> </section> </div> <div class="detail" id="reset_break/1"> <div class="detail-header"> <a href="#reset_break/1" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">reset_break(id)</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L212" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> <div class="specs"> <pre>reset_break(<a href="#t:id/0">id</a>()) :: :ok | :not_found</pre> </div> </div> <section class="docstring"> <p>Resets the breaks on a given breakpoint id.</p> </section> </div> <div class="detail" id="reset_break/3"> <div class="detail-header"> <a href="#reset_break/3" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">reset_break(module, function, arity)</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L224" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> <div class="specs"> <pre>reset_break(<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">module</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">function</a>(), <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">arity</a>()) :: :ok | :not_found</pre> </div> </div> <section class="docstring"> <p>Resets the breaks for the given module, function and arity.</p> <p>If the module is not instrumented or if the given function does not have a breakpoint, it is a no-op and it returns <code class="inline">:not_found</code>. Otherwise it returns <code class="inline">:ok</code>.</p> </section> </div> <div class="detail" id="whereami/3"> <div class="detail-header"> <a href="#whereami/3" class="detail-link" title="Link to this function"> <span class="icon-link" aria-hidden="true"></span> <span class="sr-only">Link to this function</span> </a> <span class="signature">whereami(file, line, radius)</span> <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/iex/lib/iex/pry.ex#L117" class="view-source" rel="help" title="View Source"> <span class="icon-code" aria-hidden="true"></span> <span class="sr-only">View Source</span> </a> </div> <section class="docstring"> <p>Formats the location for <a href="#whereami/3"><code class="inline">whereami/3</code></a> prying.</p> <p>It receives the <code class="inline">file</code>, <code class="inline">line</code> and the snippet <code class="inline">radius</code> and returns <code class="inline">{:ok, lines}</code>, where lines is a list of chardata containing each formatted line, or <code class="inline">:error</code>.</p> <p>The actual line is especially formatted in bold.</p> </section> </div> </section> <footer class="footer"> <p> <span class="line"> Built using <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener">ExDoc</a> (v0.19.1), </span> <span class="line"> designed by <a href="https://twitter.com/dignifiedquire" target="_blank" rel="noopener" title="@dignifiedquire">Friedel Ziegelmayer</a>. </span> </p> </footer> </div> </div> </section> </div> <script src="dist/app-a0c90688fa.js"></script> </body> </html>