<story><title>What a good debugger can do</title><url>https://werat.dev/blog/what-a-good-debugger-can-do/</url></story><parent_chain><item><author>sebastianconcpt</author><text>&lt;p&gt;&lt;pre&gt;&lt;code&gt;    a good debugger supports different kinds of breakpoints, offers rich data visualization capabilities, has a REPL for executing expressions, can show the dependencies between threads and control their execution, can pick up changes in the source code and apply them without restarting the program, can step through the code backward and rewind the program state to any point in history, and can even record the entire program execution and visualize control flow and data flow history.    
    I should mention that the perfect debugger doesn’t exist.
&lt;/code&gt;&lt;/pre&gt;
People pretends Smalltalk doesn&amp;#x27;t exist?</text></item></parent_chain><comment><author>shadowofneptune</author><text>Smalltalk images offered introspection, debugging of running processes, etc., but some of the later features listed seem quite impractical to add to the language. &amp;quot;Record the entire program execution,&amp;quot; for instance.&lt;p&gt;That&amp;#x27;s more or less the point the author makes on the next line: &amp;quot;Different tools support different features and have different limitations.&amp;quot; The ideal debugger does not necessarily make for the most ideal programming environment, just as a plane made out of steel is great for structural stability but may not be a good plane.</text></comment>
<story><title>What a good debugger can do</title><url>https://werat.dev/blog/what-a-good-debugger-can-do/</url></story><parent_chain><item><author>sebastianconcpt</author><text>&lt;p&gt;&lt;pre&gt;&lt;code&gt;    a good debugger supports different kinds of breakpoints, offers rich data visualization capabilities, has a REPL for executing expressions, can show the dependencies between threads and control their execution, can pick up changes in the source code and apply them without restarting the program, can step through the code backward and rewind the program state to any point in history, and can even record the entire program execution and visualize control flow and data flow history.    
    I should mention that the perfect debugger doesn’t exist.
&lt;/code&gt;&lt;/pre&gt;
People pretends Smalltalk doesn&amp;#x27;t exist?</text></item></parent_chain><comment><author>draegtun</author><text>&amp;gt;&amp;gt; People pretends Smalltalk doesn&amp;#x27;t exist?&lt;p&gt;And Factor and many implementations of Lisp too!</text></comment>