Was würden Sie für allgemeine Debugging-Techniken empfehlen? Ich interessiere mich mehr für Prinzipien und Best Practices als für spezifische Plattformlösungen. Für den Datensatz arbeite ich hauptsächlich mit .net (F #, C #) und dabble in Haskell und Ocaml.
An einem dieser Freitagabende sprachen wir über Debugging mit meinem Kollegen auf unserem Heimweg. Ich war überrascht zu erfahren, dass man den Status von Live-Objekten mit dem VisualStudio-Debugger anzeigen und ändern kann. Er erwähnte auch, dass ein anderer Entwickler, den er kannte, ein "Java-Guru", ihm einmal Debugging-Magie gezeigt und einen Artikel oder eine Broschüre über Debugging gegeben hatte, was die anfängliche "nichts daran" -Einstellung meines Kollegen in Frage stellte. Nachdem ich mehr Zeit verbracht habe, als ich wollte, um Käfer zu jagen, bin ich bereit, auch herausgefordert zu werden. Gibt es irgendwelche Links, die Sie empfehlen würden?
Ich habe viele Bücher und Gedanken zum Thema Debugging studiert. Wahrscheinlich ist das beste Debugging By Thinking. Ich denke, es deckt alles ab, was logisch zu sagen ist, in einem leicht lesbaren Paket.
Ich würde empfehlen, alles zu lesen, was Sie auf Testgetriebene Entwicklung (TDD) finden können. Aus dem Wikipedia-Artikel:
Programmierer, die reines TDD auf neuen verwenden ("Greenfield") Projekte melden sie nur selten das Bedürfnis, ein zu rufen Debugger.
Aus persönlicher Sicht ist es meine Erfahrung, dass je mehr Komponententests ich schreibe, desto weniger Zeit ich im Debugger verbringe.
Speziell für .NET, hier ist ein schöner Artikel über Einfacheres Debugging mit Attributen .
Ich empfehle das ausgezeichnete Buch Debugging von David Agans.
Obwohl es nicht speziell um Programmierung geht, sind die Prinzipien universell. Eine der hier beschriebenen Techniken stellte den größten Quantensprung in meinen Diagnosefähigkeiten dar, nämlich das Zurücksetzen Ihres Fixes, um zu beweisen, dass nur Ihr Fix das Problem behoben hat.
Es braucht einen nativen Ansatz (win32), aber Erweitertes Windows-Debugging ist ein großartiges Buch.
Tess Ferrandez Blog Wenn es kaputt ist, beheben Sie es sollten Sie ist sowohl direkt relevant für bestimmte Real-Life Szenarien, auf die Sie wahrscheinlich beim Debuggen von .Net stoßen werden (in der Regel ASP.Net), und generell zum Nachdenken anregen.
John Robbins Debugging Bücher und blog sind ebenfalls lesenswert.
Mike Stalls .Net Debugging Blog ebenfalls.
Mark Russinovichs Blog ist bemerkenswert - sein Wissen über Windows Internals kombiniert mit großen forensischen Fähigkeiten ist beeindruckend.
Meine erste Einführung in das Debugging war dieses Tutorial . Es verwendet GDB , um einen Beispiel-C ++ - Code zu debuggen, aber die Prinzipien sind allgemein anwendbar. Was ich wirklich mag, ist die Art, wie der Autor seinen Gedankengang darüber erklärt, was falsch sein könnte, und dann die spezifischen Befehle, die benötigt werden, um die Möglichkeiten zu testen. Es macht Spaß! Wenn Sie mit dem Debuggen noch nicht vertraut sind, erhalten Sie einen guten Einblick in den Prozess.