Main /

Hello World Debugger

Allgemein

Knowledge Base

Virtualisierung Emulation

Technik und Wissen

Community

Privat

%center%[[http://validator.w3.org/check?uri=referer|http://www.w3.org/Icons/valid-xhtml10.png]]%%

Hello World Debugger

Hello World Debugger

Ist die Bezeichnung für eine Art zu debuggen, die es eigentlich schon immer gab und immer geben wird, falls kein richtiger Debugger zur Verfügung steht. Besonders bei Web-Applikationen wird gerne von dieser Methode Gebrauch gemacht.

Der Sourcecode wird an geeigneter beliebiger Stelle einfach um ein paar Ausgabe-Befehle erweitert, die einfach ein paar Kommentare und oder Variablen zu einem gewissen Zeitpunkt ausgeben sollen. Es setzt allerdings voraus, das es eine Ausgabemöglichkeit gibt. Für echte Windowsprogramme ist das nicht direkt der Fall, hier hilft nur der Umweg über eine Datei, ein Textfeld im aktuellen Formular oder man instanziiert eine Ausgabeconsole. Unter Linux ist jedes Programm von einer Shell startbar.

Ein einfaches C-Program
main()
{
   while (i++ < 10)
   {
       do_something();
   }
}

Falls do_something() jetzt sehr lange läuft, könnte man z.B. mittels der printf() Anweisung eine Ausgabe auf der Shell erzeugen, die besagt, wo sich das Programm gerade befindet wie weit der Ablauf fortgeschritten ist.

main()
{
   while (i++ < 10)
   {
      printf("i is %d\n", i);
      do_something();
   }
}

Wo die printf Anweisung einzutragen ist, ist dem Entwickler/Debugger überlassen, was er allerdings berücksichtigen sollte ist, dass die Anweisung keine Änderungen an Variablen verursachen sollte. Beispiel:

printf("Variable %i\n", i++); // Hier wird i nach der Ausgabe incrementiert.
 

Das kann zu Fehlern führen, die nach Entfernen der Ausgabe fast nicht mehr zu verstehen sind.

Hello-World Debugging unter .NET

Unter Microsoft .NET kann man für Debug-Ausgaben bequem Debug.WriteLn() verwenden. Die Ausgaben die damit erzeugt werden lassen sich mit dem Tool DebugView anzeigen.

System.Diagnostics.Debug.WriteLn("Ich bin eine Debug-Ausgabe")
Frische Änderungen (All) | Edit SideBar Zuletzt geändert am 24.03.2011 10:46 Uhr Seite Bearbeiten | Seitenhistorie
Powered by PmWiki