Xdebug Stacktrace verbessern

Datum: 3. August 2017
Autor*in: Florian Müller


Ich habe mich heute im Zuge eines kleinen Problems mit einem Stacktrace etwas mit der xDebug Konfiguration beschäftigt. Dabei bin ich auf eine kleine nützliche Option gestoßen, welche ich euch nicht vorenthalten möchte.

Die Optionen

xdebug.collect_params

Es gibt die Option xdebug.collect_params, welche verschiedene Level an Output ermöglicht. Ich habe mich in meiner VM für den Wert 2 entschieden, da mir dieser am sinnvollsten erschien. Hierbei werden die Variablen Typen direkt angezeigt und via Mouseover wird der Inhalt der Variable angezeigt. Kann sehr nützlich sein, wie ich finde. Die weiteren Level empfand ich als zu unübersichtlich, da dann die Variablen direkt ausgegeben werden, aber da kann man natürlich auch selbst schauen, wie es einem liegt.

Quelle: https://xdebug.org/docs/all_settings#collect_params
Value Argument Information Shown
0 None.
1 Type and number of elements (f.e. string(6), array(8)).
2 Type and number of elements, with a tool tip for the full information 1.
3 Full variable contents (with the limits respected as set by xdebug.var_display_max_children, xdebug.var_display_max_data and xdebug.var_display_max_depth.
4 Full variable contents and variable name.
5 PHP serialized variable contents, without the name. (New in Xdebug 2.3)

xdebug.show_local_vars

Eine Alternative oder auch zusätzliche Option zu der Ersten stellt xdebug.show_local_vars da. Hierbei werden die lokalen Variablen unter dem Stacktrace angezeigt. Dabei haben die Variablen den Inhalt, den sie beim Zeitpunkt der auslösenden Aktion hatten. Dies kann sehr angenehm sein, jedoch muss man hierbei aufpassen, da dies den Stacktrace sehr aufblähen kann. Ausprobieren kann jedoch nicht schaden. Hierbei gibt es nur die typischen Boolean Werte 1 für aktiviert und 0 für deaktiviert.

Konfiguration der Option

Um die Option zu konfigurieren, müssen die PHP Settings angepasst werden. Hier macht es meines Erachtens Sinn, dass man für die Apache Konfiguration 2 und für die CLI Konfiguration 1 wählt, da es auf der CLI keinen Tooltip gibt.

Unter beispielsweise /etc/php5/apache2/conf.d/25-xdebug.ini  befindet sich die Konfiguration von xDebug. Der Pfad kann natürlich bei der jeweiligen VM / dem jeweiligen Betriebssystem abweichen. Falls noch nicht vorhanden oder aktiv, fügt man die Option ein bzw entfernt das Semikolon für die Auskommentierung.

Fazit

Ich habe aktuell beide Optionen aktiviert und werde in der nächsten Zeit schauen, ob ich beides aktiviert lasse oder mich schlussendlich für eins entscheide.

Eine Vorschau der Optionen findet ihr hier.


Dieser Artikel wurde verschlagwortet unter:


Kommentare

Selber kommentieren:






Weitere Beiträge zum Thema Technologie


Apple Touch Icons nutzen

Autor*in: Bastian Schwarz


Projekte // Technologie // User Experience & Design


Ich habe mal ein wenig recherchiert und möchte hier das Ergebnis mitteilen. Die Apple Touch Icons können generell benutzt werden um Apps oder Webseiten auf z.B. den Startbildschirm zu pinnen. Ist bei der Webseite dann ein solches Icon hinterlegt wird das „Lesezeichen“ mit ihm hinterlegt und man erhält so einen schönen Wiedererkennungswert. Generell sollten die …


Beitrag lesen
17
OKT
12

imx.ContentDelivery API meets Lechradweg

Autor*in: Christine Pfleger


Projekte   //   Technologie


Wer sich im Alltag nicht täglich mit Datenbanken und Schnittstellen beschäftigt, tut sich zugegebenermaßen schwer zu verstehen, warum unsere Entwickler bei der imx.ContentDelivery API ins Schwärmen kommen. Wir haben daher den Senior Entwickler Benjamin Hofmann und den Technischen Geschäftsführer Christian Heindl gebeten, am Beispiel des aktuellen Lechradweg-Projekts so praxisbezogen wie möglich die Vorteile der imx.ContentDelivery API aufzuzeigen.


Beitrag lesen
18
OKT
22

Zepto.js

Autor*in: Benjamin Hofmann


Technologie


Heute nur ein kurzer Link zu einer Alternative zu jQuery mit einem wesentlich kleinerem Footprint (30 statt 85 KB), aber der gleichen API und Funktionalität: Zepto.js Bei einem unserer Kunden ist das bereits im Einsatz und mittels folgender Zusatz-Module und einem kleinen Polyfill auch als Basis für das imx.Autocomplete und imx.Mapwork im Einsatz, welche beide …


Beitrag lesen
30
SEP
16

PHP-Funktionen in PHPUnit testen

Autor*in: Benjamin Hofmann


Technologie


Gestern bin ich auf eine interessante Erweiterung für PHPUnit gestoßen, die es erlaubt auch reine Funktionen als Mock-Objekte anzulegen und deren Verhalten damit zu testen: PHP-Mock bzw. dessen Erweiterung für die Nutzung in PHPUnit. Damit kann man dann sehr bequem auch interne Funktionen testen, z.B. file_get_contents() oder auch ein mail(). Ein so gearteter Test könnte …


Beitrag lesen
13
JAN
17