<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Debugging on Codrut Constantin Gusoi</title>
    <link>https://www.codrut.pro/tags/debugging/</link>
    <description>Recent content in Debugging on Codrut Constantin Gusoi</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 10 May 2021 11:05:44 +0000</lastBuildDate>
    <atom:link href="https://www.codrut.pro/tags/debugging/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Emacs Lisp interactive debugging</title>
      <link>https://www.codrut.pro/snippets/elisp-interactive-debugging/</link>
      <pubDate>Mon, 10 May 2021 11:05:44 +0000</pubDate>
      <guid>https://www.codrut.pro/snippets/elisp-interactive-debugging/</guid>
      <description>&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Navigate to your function.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Instrument it with &lt;code&gt;C-u M-x eval-defun&lt;/code&gt;, or &lt;code&gt;C-u , e f&lt;/code&gt; in Spacemacs.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Execute that function.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Debug with these shortcuts:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Key&lt;/th&gt;&#xA;          &lt;th&gt;Action&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Next sexp.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;i&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Step in.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;o&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Step out.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;d&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Backtrace.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;Q&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Quit.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Once you&amp;rsquo;re done, re-evaluate all functions (without &lt;code&gt;C-u&lt;/code&gt;), or simply&#xA;restart.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Firefox remote debugging</title>
      <link>https://www.codrut.pro/snippets/firefox-remote-debugging/</link>
      <pubDate>Sat, 24 Apr 2021 12:32:59 +0000</pubDate>
      <guid>https://www.codrut.pro/snippets/firefox-remote-debugging/</guid>
      <description>&lt;ol&gt;&#xA;&lt;li&gt;If you haven&amp;rsquo;t done already, then&#xA;&lt;a href=&#34;https://www.codrut.pro/snippets/enable-developer-options-on-your-phone/&#34;&gt;Enable &amp;lsquo;Developer options&amp;rsquo; on your phone&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Enable &lt;code&gt;Remote debugging via USB&lt;/code&gt; in your mobile browser&amp;rsquo;s settings.&lt;/li&gt;&#xA;&lt;li&gt;Make sure your devices are properly connected via USB.&lt;/li&gt;&#xA;&lt;li&gt;Visit &lt;code&gt;about:debugging&lt;/code&gt; in your laptop browser.&lt;/li&gt;&#xA;&lt;li&gt;Press &lt;code&gt;Connect&lt;/code&gt; next to your device.&lt;/li&gt;&#xA;&lt;li&gt;Select your device and press &lt;code&gt;Inspect&lt;/code&gt; on your desired tab.&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>How to Use: pry-byebug</title>
      <link>https://www.codrut.pro/snippets/how-to-use-pry-byebug/</link>
      <pubDate>Sun, 12 Apr 2020 12:19:57 +0000</pubDate>
      <guid>https://www.codrut.pro/snippets/how-to-use-pry-byebug/</guid>
      <description>&lt;ol&gt;&#xA;&lt;li&gt;Add the &lt;code&gt;pry-byebug&lt;/code&gt; gem, together with &lt;code&gt;irb&lt;/code&gt;, to your &lt;code&gt;Gemfile&lt;/code&gt;:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;group &lt;span style=&#34;color:#e6db74&#34;&gt;:development&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;:test&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  gem &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;irb&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  gem &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;pry-byebug&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;end&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Add a &lt;code&gt;.pryrc&lt;/code&gt; file to your project containing:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# frozen_string_literal: true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; defined?(&lt;span style=&#34;color:#66d9ef&#34;&gt;PryByebug&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;Pry&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;commands&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;alias_command(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;c&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;continue&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;Pry&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;commands&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;alias_command(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;f&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;finish&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;Pry&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;commands&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;alias_command(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;n&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;next&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;Pry&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;commands&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;alias_command(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;s&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;step&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;Pry&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;commands&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;alias_command(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;w&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;whereami&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;Pry&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;commands&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;alias_command(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;q&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;!!!&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;Pry&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;::&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;Commands&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;command(&lt;span style=&#34;color:#e6db74&#34;&gt;/^$/&lt;/span&gt;, &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;repeat last command&amp;#39;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    _pry_&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;run_command(&lt;span style=&#34;color:#66d9ef&#34;&gt;Pry&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;history&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;to_a&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;last)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;end&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;end&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Now you can start debugging your code:&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ruby&#34; data-lang=&#34;ruby&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;require &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;pry&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;binding&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;pry&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
