Aiun Geschrieben 11. April 2007 Geschrieben 11. April 2007 hi, welche Methoden / Klassen / Funktionen kennt ihr zum Debugging, gibts evtl. von PHP "etwas" das sinnvoll wäre ? also so eine Art Exception-Stacktrace das mir im Debugmodus den kompletten baum an Funktionaufrufen (+eigener Debugzeilen) in eine Datei schreibt oder ausgibt, ohne das ich die Halbe Anwendung umtippen muss damit die Debugzeilen keine Fehler verursachen oder ich in jeder Funktion eine Debugzeile buffern muss. .... also soll eine allgemeine Frage sein ^^ ich suche einen möglichst effizenten weg scripts zu debuggen. Insbesondere Anwendungen der größeren Natur mit Frameworks, Klassenbibliotheken unsw. in die ich nicht überall reintipseln kann / will danke Zitieren
Crash2001 Geschrieben 11. April 2007 Geschrieben 11. April 2007 Hmmm... also ich hab das normal so gemacht, dass ich eine Variable test oder debug gesetzt habe und wenn die auf 1 war wurden alle debug-messages angezeigt und wenn nciht, dann wurde halt einfach drübergesprungen im Quelltext. Es gibt aber bei Phase 5 von Uli Meybohm einen PHP-Debugger beim Programm dabei. Mittlerweile hat wer anders die entwicklung übernommen. siehe hier [edit] Zur nichtkommerziellen Programmierung ist der Editor übrigens kostenlos! [/edit] Zitieren
Eupinkepank Geschrieben 12. April 2007 Geschrieben 12. April 2007 Auch hier: Zend Studio benutzen. Das Studio kann die .ini Dateien der Produktivumgebung einbinden und das zu debuggende Programm dann Zeile für Zeile durchlaufen und wird dann Notices, Warnings und Fatal Errors anzeigen und auch den dazugehörigen Ursprung. Natürlich erhält man auch eine Übersicht der gerade verwendeten Funktionen, Klassen und Methoden. Weiterhin kann man damit auch ein Benchmarking durchführen, was unheimlich dabei hilft den PHP Code zu verfeinern und zu beschleunigen. Auch wer die Ausgabe von 350 Euro für das Zend Studio scheut, sollte sich das Ding halt herunterladen... Es kann ja einen Monat in der Vollversion kostenlos benutzt werden. Zitieren
Aiun Geschrieben 30. Mai 2007 Autor Geschrieben 30. Mai 2007 ich erwecke das thema nochmal zum leben. Ich habe derzeit ein etwas komplexeres Projekt - wiedermal ^^, bei dem ich die Struktur und den funktionsablauf analysieren will. PHP5 ! das bedeutet: eine Logdatei, welche Funktion in welcher Reihenfolge bei einem Ablauf aufgerufen wird. Performance ist erstmal nicht so wichtig, es geht um die strukturelle / prozedurale Analyse. daher suche ich soetwas wie eine magische-Funktion die vor jedem funktionaufruf ausgelöst wird und den Funktionsnamen übergibt, oder einen Stack in dem Alle aufgerufenen Funktionen stehen. Ich vermute letzteres gibt es nicht... Ich habe es anfangs mit eigenen Methoden zu beginn jeder Funktion versucht, aber das wäre eine schweine Arbeit die überhaupt in dem code unter zu bringen. Dazu verwende ich frameworks / gegebene Klassen, die ich nur sehr ungern erweitern will und es ist natürlich auch eine nicht un unterschätzender Quellcode-menge mit 1/2 Zeilen je Funktion mehr. Hat jemand eine Idee ? Zitieren
geloescht_JesterDay Geschrieben 30. Mai 2007 Geschrieben 30. Mai 2007 Ich habe es anfangs mit eigenen Methoden zu beginn jeder Funktion versucht, aber das wäre eine schweine Arbeit die überhaupt in dem code unter zu bringen. Einfach mal als Brainstorming: Den php Quellcode laden, an die entsprechenden Stellen eine kurze Ausgabefunktion einfügen, compilieren, glücklich sein. Zitieren
Amstelchen Geschrieben 30. Mai 2007 Geschrieben 30. Mai 2007 [...] compilieren, glücklich sein oder einen der fix-fertigen debugger verwenden, z.b. DBG | PHP Debugger and Profiler.. s'Amstel Zitieren
Aiun Geschrieben 30. Mai 2007 Autor Geschrieben 30. Mai 2007 @Jester wie meinen ? @amstel der Debugger gibt mir aber doch nicht "nach" erfolgreicher bearbeitung eines Scripts den Ablauf aus oder ?! Hier ist auch zu bedenken das ich das Script ganz normal über den browser starten muss. Viele Aktionen meiner Anwendung werden von AJAX gesteuert / gestartet. Zitieren
geloescht_JesterDay Geschrieben 31. Mai 2007 Geschrieben 31. Mai 2007 @Jester wie meinen ? Der PHP-Quellcode ist offen. Du kannst ihn dir runterladen und selbst daran rumbasteln. Meine Idee (war erstmal nur eine solche) war , dass du im Quellcode die Stellen suchst, in denen das PHP-Skript interpretiert wird und beim Aufruf einer Funktion dort eben etwas einbaust, dass die diesen Aufruf protokolliert. Also prinzipiell sollte das ja so gehen. Das ist ja praktisch dasselbe, was du mit deinem Aufruf am Anfang von allen Funktionen schon gemacht hattest, nur eben zentral und ohne Änderung am PHP-Skript. Da ich mich mit dem PHP-Quelltext aber noch nie beschäftigt habe, kann ich dir weiter auch keine Tips dazu geben, nur so allgemein Idealerweise baust du PHP so um, dass du am Anfang des Skriptes oder des PHP-Durchlaufs über eine Variable o.ä. steuern kannst, ob die Debug-Ausgaben geschrieben werden sollen. Noch idealer stellst du das dann dem PHP-Projekt bereit, dass die das vielleicht in die offizielle PHP-Ausgabe übernehmen (oder als Debug-Ausgabe einbauen, oder irgendwie anbieten). Am aller idealsten gibt es sowas von denen ja vielleicht sogar schon. Vielleicht kannst du ja mal bei einer offiziellen PHP-Mailing-Liste nachfragen (oder forum, oder was auch immer). Die könnten die dann bestimmt auch mehr helfen. Und perfekt wäre es, wenn du das Ergebnis des ganzen dann hier kurz mitteilst. Im Moment brauch ich das nicht, aber interessant wäre das bestimmt mal EDIT: Mit dem Debugger von PHPEd (andere bestimmt ähnlich) kannst du dein Skript ganz normal über den Browser starten etc. Das geht auch bei entfernten Servern. Du musst nur eine DLL (Shared Object) auf den Server kopieren und in der ini starten. Das war auch mein erster Gedanke (@Amstelchen) allerdings wird dann nichts geloggt oder so. Das wäre dann "von Hand" vielleicht schon möglich, allerdings IMHO sehr aufwendig (ok, meine Lösungsidee ist auch vom aufwand nicht zu unterschätzen, aber eleganter (wenn sie dann mal läuft) ). Zitieren
Aiun Geschrieben 31. Mai 2007 Autor Geschrieben 31. Mai 2007 ok, dann habe ich dich wohl verstanden. Mal erkundigen was da geht. ich habe selber noch nicht in den PHP-Quellcode reingesehen, habe schon eine kriese bekommen als ich versuchte informationen über das "howto" einer eigenen Extension zu finden. Ich teile mich mit wenn ich mehr Infos habe. Zitieren
Aiun Geschrieben 31. Mai 2007 Autor Geschrieben 31. Mai 2007 nun, nach einigen Google-Minuten und endlos neuen versuchen mit neuen wörtern die das gleiche erklären bin ich auf apd gestoßen. das ist eine PHP-Extension die genau macht was ich haben will. Sie loggt jeden Funktionaufruf mit und speichert es in eine Datei, schön mit Zeitstempel und tiefe / bauminformation. Genau muss ich mir die Files noch ansehen, für Windows gibt es keinen Parser und mein Xampp läuft nunmal hier unter Windows ^^, also werde ich da selbst ran müssen. Aber die Infos an sich sind schonmal da. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.