title: Why is debugging better in an IDE?
body: <p>I've been a software developer for over twenty years, programming in C, Perl, SQL, Java,  PHP, JavaScript, and recently Python.  I've never had a problem I could not debug using some careful thought, and well-placed debugging <code>print</code> statements.</p>
  
  <p>I respect that many people say that my techniques are primitive, and using a real debugger in an IDE is much better.  Yet from my observation, IDE users don't appear to  debug faster or more successfully than I can, using my stone knives and bear skins.  I'm sincerely open to learning the right tools, I've just never been shown a compelling advantage to using visual debuggers.</p>
  
  <p>Moreover, I have never read a tutorial or book that showed how to debug effectively using an IDE, beyond the basics of how to set breakpoints and display the contents of variables.</p>
  
  <p>What am I missing?  What makes IDE debugging tools so much more effective than thoughtful use of diagnostic <code>print</code> statements?</p>
  
  <p>Can you suggest resources (tutorials, books, screencasts) that show the finer techniques of IDE debugging?</p>
  
  <hr>
  
  <p>Sweet answers!  Thanks much to everyone for taking the time.  Very illuminating.  I voted up many, and voted none down.  </p>
  
  <p>Some notable points:</p>
  
  <ul>
  <li>Debuggers can help me do <em>ad hoc</em> inspection or alteration of variables, code, or any other aspect of the runtime environment, whereas manual debugging requires me to stop, edit, and re-execute the application (possibly requiring recompilation).</li>
  <li>Debuggers can attach to a running process or use a crash dump, whereas with manual debugging, "steps to reproduce" a defect are necessary.</li>
  <li>Debuggers can display complex data structures, multi-threaded environments, or full runtime stacks easily and in a more readable manner.</li>
  <li>Debuggers offer many ways to reduce the time and repetitive work to do almost any debugging tasks. </li>
  <li>Visual debuggers and console debuggers are both useful, and have many features in common.</li>
  <li>A visual debugger integrated into an IDE also gives you convenient access to smart editing and all the other features of the IDE, in a single integrated development environment (hence the name).</li>
  </ul>