phpbar.de logo

Mailinglisten-Archive

[php] PHP Entwicklungsumgebung

[php] PHP Entwicklungsumgebung

Hartmut Holzgraefe hartmut_(at)_six.de
Thu, 17 Aug 2000 15:17:26 +0200


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