Normalerweise benutze ich keinen Debugger, vielleicht alle paar Wochen, aber es ist nicht das erste, zu dem ich gehe.
Das wichtigste Werkzeug in meinem Job ist so allgegenwärtig, dass ich es fast vergessen habe, es zu erwähnen - Stapelspuren. Über 90% der Probleme, auf die ich stoße, können durch Untersuchen eines Stack-Trace gelöst werden. Dieses Tool ist abhängig von Ihrer Sprache nicht immer sehr hilfreich, aber wenn sie von einer Sprache gut implementiert werden, können sie Ihnen erstaunlich viel Zeit sparen.
Ich denke, der zweithäufigste Weg, einfache Probleme zu entdecken, ist, dass es wahrscheinlich der Code ist, den ich gerade geändert habe. Ich führe ziemlich oft Unit-Tests durch, damit ich im Allgemeinen weiß, was ich gerade kaputt gemacht habe.
Für komplexere Entwicklungen und Fehlerbehebungen füge ich möglicherweise einige Protokollanweisungen auf Debug- oder Trace-Ebene hinzu. Ich halte Entwicklungsprobleme für einen guten Leitfaden, um Informationen zur Produktionsablaufverfolgung / Debug-Protokollierung zu finden. Dies führt mich zu folgenden Schritten:
Sie haben nicht immer einen Debugger zur Hand. In der Produktion ist es möglicherweise unmöglich, einen Debugger auszuführen (Heck, es ist möglicherweise unmöglich, auf Produktionsmaschinen zuzugreifen, außer auf Protokolle, je nachdem, wie sicher Ihr Unternehmen ist). Es gibt auch Sprachen, in denen das Einbinden eines Debuggers einfach zu lange dauert oder es einfach keine guten Debugger gibt.
Wenn Sie die ganze Zeit über mit Logik und Protokollierung auf Debug- / Trace-Ebene codiert haben, können Sie einfach Ihre hervorragenden Protokollanweisungen überprüfen (möglicherweise die Protokollstufe erhöhen), um das Problem zu ermitteln, ohne überhaupt auf die Hardware zuzugreifen.
Obwohl ich denke, dass Debugger ein leistungsfähiges Tool sind, lassen Sie sie nicht das einzige Tool in Ihrer Toolbox sein!