Mailinglisten-Archive |
Norbert Pfeiffer wrote: > wieso eigentlich immer Blackbox <gruebel> > ich klau den Code nicht, ich schreibe ihn doch selbst... > Deshalb muss ich auch keine Loecher in eine Blackbox bohren, sondern > schliesse die eingebauten Fenster mit einer zentralen Variable, die > ich bei Auslieferung auf 0 setze - fertig. blackbox ist ein Begriff für ein System, bei dem man zwar sieht, was reinkommt und was rausgeht, aber nicht was im inneren passiert und deshalb aus den Beobachtungen der Ein- und Ausgaben indirekt auf das innere schließen muß das bezieht sich hier auf das jeweils laufende Programm, nicht auf deinen Code als ganzes wenn dein Programm läuft, dann hast du ohne Debugger keine Möglichkeit zu sehen was gerade ausgeführt wird oder wie bestimmte Variablen gesetzt sind natürlich kannst du da print-Statements oder assert()s reinbauen, die dir über kritische Stellen Auskunft geben, aber das sind dann eben nur die besagten Gucklöcher, wenn der tatsächliche Fehler woanders liegt, dann mußt du weiter im Code rummpfuschen, neu starten usw. du hast aber weiter nur die Ein- und Ausgaben zur Verfügung, die das Programm dir liefert, unterliegst also immer noch dem blackbox Modell ein Debugger bietet dir dagegen die Möglichkeit, dein Programm an beliebigen Stellen anzuhalten, schrittweise weiter auszuführen und dir jederzeit jeden Variableninhalt anzuschauen evtl. kannst du sogar Variableninhalte zur Laufzeit über den Debugger ändern oder Schritte rückgängig machen weitere nette Informationen, die ein Debugger liefern kann, sind z.B. Call-Traces (wie bin ich eigentlich in die aktuelle Funktion gekommen, wer hat da wen aufgerufen...) bei Binärporgrammen gibt es dann ncoh die Möglichkeit, auch nach einem Absturz noch Informationen aus dem Speicherabzug zu ziehen (siehe core-dumps und post-mortem-debugging) oder sich zwischenzeitlich an bereits laufende Prozesse anzuhängen das ist schon ein bischen was anderes als echo, print oder assert ... -- Hartmut Holzgraefe hartmut_(at)_six.de http://www.six.de +49-711-99091-77 fax:-99
php::bar PHP Wiki - Listenarchive