Es war einmal eine Menge Debugging-Code. Ich war fast ausschließlich auf Windows ausgerichtet, daher gab es viele dieser Debug-Ausgabefunktionen für Zeichenfolgen, bei denen ich mich nicht mehr daran erinnere, wie man buchstabiert, sodass ich die Ablaufverfolgung mit einem bestimmten Programm erfassen konnte.
Einige Debug-Codes, insbesondere solche, die das Verschachteln von Aufrufen ermöglichen sollten, blieben erhalten. Obwohl das Debug-String-Ding auf einem Produktionssystem zumeist nicht sichtbar war, wurde es dennoch unter bestimmten Bedingungen kompiliert.
Die Realität ist jedoch, dass all dieser Debug-Code eine Menge Aufwand für etwas war, das idealerweise anders gehandhabt wird - natürlich mit einem Debugger. Zu der Zeit war ich vom Borland C ++ - Debugger nicht so beeindruckt. Die Tools waren vorhanden, führten jedoch zu häufig zu irreführenden Ergebnissen. Die Verwendung des Debuggers ohne IDE (häufig erforderlich) bedeutete, dass Tastenkombinationen gespeichert wurden, was eine Ablenkung vom eigentlichen Job bedeutete.
Die einzige Debugging-Erfahrung, die ich als schlimmer empfunden habe, ist die Befehlszeilen-GDB.
Ein Experte für die Tools zu sein, die Sie jeden Tag verwenden, ist natürlich wichtig - aber das Debuggen sollte eigentlich nicht etwas sein, das Sie jeden Tag tun. Wenn Sie den Debugger so oft verwenden, dass Sie Dutzende von Befehlen und / oder Tastaturkürzeln lernen können, scheint mir das ein bisschen rot zu sein.
Als ich in Visual Studio 7 arbeitete, war mir jedoch klar, dass das Debuggen sehr praktisch und effektiv sein kann. Wenn Sie das Debuggen in Visual Studio durchführen können (Express-Editionen inbegriffen), ist das Debuggen ein Kinderspiel. Ohne Zweifel, wenn Sie das richtige GUI / IDE-Frontend finden, ist GDB auch einfach und effektiv, obwohl ich diese Suche noch nicht durchgeführt habe.
Es gibt auch etwas zu sagen für Unit-Tests mit Coverage-Analyse mit gcov. Je sicherer Sie mit dem Verhalten Ihrer Bibliotheken sind, desto weniger tief muss Ihr Debugging sein - und desto seltener benötigen Sie den Debugger. Und Unit-Tests zu schreiben, ist ziemlich vernünftig, was Sie an den meisten Tagen tun sollten.
Unerwartet wichtiges Tool = cmake, ein Build-Tool, mit dem ich unter anderem problemlos zwischen GCC- und VC ++ -Erstellung wechseln kann. So kann ich meine Unit-Tests und gcov-basierte Berichterstattung mit GCC durchführen, aber einfach zu VC ++ wechseln, um den Debugger zu verwenden.