Drupal Association Individual MemberZend Certified Engineer Details

Debugging und Profiling in PHP

Übersicht über Debugger und Profiler

  • ZDE (Zend Development Environment): Debugger und Profiler sind brauchbar. Der Profiler bietet auch einen Stack Trace, mit dem die reihenfolge von Funktionsaufrufen verfolgt werden kann. Der Editor ist hakelig und für Mac-User gewöhnungsbedürftig. Enthalten ist ein Code Analyzer, der auf Syntaxfehler, schlechte Programmierpraktiken und nicht benutzte Variablen achtet. Remote Debuggen und Profilen bedingt Installation des Zend Studios auf dem Server. Zend Studio läuft nicht auf Intel-Macs. Ab Version 5.2 war Zend Studio nicht ohne weiteres lauffähig. Nachteil ist der hohe jährliche Preis für ZDE (ab $99 für Studenten), ohne dessen Zahlung man ZDE nicht auf aktuelle PHP-Versionen updaten kann. ZDE ist in Java programmiert und auf Windows, Mac und Linux lauffähig. URL: Zend Studio
  • Xdebug: PHP-Erweiterung, die Debugging, Profiling und Stack Traces bietet:
    • stack and function traces in error messages with:
      • full parameter display for user defined functions
      • function name, file name and line indications
      • support for member functions
    • memory allocation
    • protection for infinite recursions
    • profiling information for PHP scripts
    • script execution analysis (stack trace, als Textfile)
    • capabilities to debug your scripts interactively with a debug client (DBGp-Protokoll) URLs: Xdebug, Artikel über Xdebug (von 2004)
  • Kommodo + Xdebug: Kommodo ist eine Entwicklungsumgebung für Perl, Python und PHP. In Kommodo ist ein Client für das Debugger-Protokoll DBGp enthalten. Zusammen mit Xdebug können Breakpoints im PHP-Code gesetzt werden und Variablenzustände beobachtet werden. Es fehlen Profiler und Stack Traces. Kommodo ist mit dem Mozilla-Framework geschrieben und läuft auf Windows, Mac und Linux. Kommodo kostet in der Personal-Version $29. URL: Kommodo
  • Kcachegrind + Xdebug: Den Profiler-Output von Xcode kann Kcachegrind visualizieren. Hilfreich bei der Suche nach zeit- und speicheraufwendigen Routinen im Code. Stack Trace nicht enthalten. Kcachegrind läuft unter KDE (Linux) und auf dem Mac (via fink). Alternative für Windows ist Wincachegrind. Außerdem gibt es einen in wxPython geschrieben Client: wxDebug.

URLs: Kcachegrind, Kcachegrind auf dem Mac, Wincachegrind, wxDebug

  • Eclipse: Umfangreiche Entwicklungsumgebung. In Java geschrieben. PHP-Integration mit Debugger werden verschiedene entwickelt. Im Vergleich zu den anderen Lösungen aber aufwendig zu konfigurieren. Kein Profiler enthalten.