Blackbird Javascript Konsole

Wenn man unter JavaScript entwickelt so benutzt man sicher auch folgende Zeile ab und an in abgewandelter Form:

alert("XYZ");

Das Problem an „alert“ ist das es für viele Sachen unpraktikabel ist. Schöner wäre hier eine Konsole in die man diese Meldungen hineinschreiben könnte und die auch browserunabhängig funktioniert. Genau hier kommt Blackbird ins Spiel welches unter http://www.gscottolson.com/blackbirdjs/ zu finden ist.

Blackbird im Einsatz.

Mit der Konsole ist es möglich verschiedene Loglevel zu realisieren und das ganze einfach in das Projekt seiner Wahl einzubinden. Der weitere Vorteil ist, das man die Debugmeldungen im Gegensatz zu einem „alert“ auch einfach im Quelltext stehen lassen kann und die Ausgabe nur bei Bedarf aktiviert.

Tilt

Für die Webentwicklung ist es manchmal ganz Hilfreich die Struktur der Webseite, also die verschachtelten Tags übersichtlich visualisiert zu bekommen. Dabei ist das Firefox AddOn „Tilt“ sehr hilfreich. Dieses stellt die Verschachtelung der Seite als 3D Modell (mit Hilfe von WebGL) dar, im welchem man dann die Elemente untersuchen kann.

Zu finden ist das AddOn unter https://addons.mozilla.org/en-US/firefox/addon/tilt/.

Visual Studio ignoriert die Haltepunkte beim Debuggen

Manchmal kann einen die Softwareentwicklung schon in den Wahnsinn treiben, vor allem wenn es um triviale Dinge geht. So sollte es ja eigentlich selbstverständlich sein, das der Debugger an einem Haltepunkt hält. Mein erster Gedanke war, das es daran liegt das ich das Projekt im Debugmodus auf „Any CPU“ eingestellt habe. Sobald ich es auf „x86“ oder „x64“ gestellt habe, hielt der Debugger an der gewünschten Stelle. Allerdings hatte ich ein ähnliches Projekt mit fast den selben Einstellungen (auch „Any CPU“), doch dort funktionierte es mit dem Debugger. Also sollte es ein Vergleich der Projektdateien richten. Nach einiger Zeit war hier auch kein Erfolg zu melden.

Beim Starten des Projektes fiel mir allerdings auf das die Haltepunkte ausgeblendet wurden:

Im Tooltip zu den Haltepunkten stand dann:

No symbols have been loaded for this document

Dies brachte mich dazu in das „bin/Debug“ Verzeichnis zu schauen und siehe da, es gab keine pdb Dateien für das Projekt. Um die pdb Dateien für das Projekt anzulegen, geht man in die Projekteinstellungen, dort auf „Build“ und dann auf „Advanced“.

In dem sich darauf öffnenden Dialog stellt man die „Debug info“ auf „full“. Damit sollten die PDB Dateien erzeugt werden und das debuggen wieder funktionieren.

Weitere Informationen gibt es unter:
http://en.wikipedia.org/wiki/Program_database
http://msdn.microsoft.com/en-us/library/yd4f8bd1%28v=vs.71%29.aspx
http://geekswithblogs.net/dbutscher/archive/2007/06/26/113472.aspx
http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx

.NET Anwendung kann nicht debuggt werden

Ich stelle vor ein paar Tagen ein .NET Projekt von .NET 2 auf .NET 4 um. An dem Projekt hingen einige Bibliotheken welche weiterhin auf .NET 2 basierten (und dies auch weiterhin tun sollen). Nach der Umstellung ergab sich nun das Problem, das ich die Anwendung nicht mehr mit dem Debugger starten konnte.

Das Problem hängt dabei damit zusammen das das Visual Studio für .NET 1 bis .NET 3.5 sowie für .NET 4 jeweils eine eigene Debugengine benutzt. Um das Problem zu umgehen schaltete ich in den Projekteigenschaften unter Debug den Eintrag Enable the Visual Studio hosting process aus. Danach konnte ich auch mit dem gemischten Projekt wieder debuggen.

Weitere Informationen gibt es unter:
http://blogs.msdn.com/b/debugger/archive/2010/04/30/can-t-hit-breakpoints-in-a-plug-in-or-can-t-debug-net-2-0-3-0-3-5-from-a-mixed-mode-exe-project-with-visual-studio-2010.aspx

In PHP den Inhalt eines Arrays ausgeben

Zu Debugzwecken ist es manchmal ganz praktisch den Inhalt einer Variable (im konkreten Fall in PHP) auszugeben. Das würde unter PHP dann so aussehen:

echo $test;

Das Problem an dieser Methode ist, das wenn es sich um ein Array handelt, wir nur die Ausgabe:

Array

zurückbekommen. Hier hilft die print_r Funktion, mit welcher das ganze dann so aussieht:

print_r($test);

Damit bekommt man dann eine wunderschöne Ausgabe des Arrays:

Array ( [0] => 1232 [1] => 1775 [2] => 8532 [3] => 3432 [4] => 1232 [5] => 384 [6] => 4357 [7] => 4334 [8] => 9888 [9] => 2442 [10] => 1212 [11] => 9989 [12] => 543 )