Archive for 7. Januar 2010

WPF Anwendung kann aus 16bit Umgebung heraus nicht gestartet werden

7 Januar 2010

Wenn man per eine 16bit Umgebung ausführt bzw. command.com direkt ausführt und dann aus dieser Umgebung heraus versucht eine WPF Anwendung zu starten, der bekommt einen AppCrash serviert.

Die Lösung des Problems in der 16bit Umgebung

set windir=C:\Windows

zu setzen, danach konnte die WPF Anwendung gestartet werden. Hintergrund dürfte die Suche nach den im System verfügbaren Zeichensätzen gewesen sein. Da windir nicht bekannt war, wurde c:\windows\fonts nicht gefunden.

Wenn man windir nicht per Commandline direkt setzen kann, dann muss die Zuordnung innerhalb der AUTOEXEC.NT erfolgen!

Werbeanzeigen

Debugging von .Net Framework Anwendungen wie WPF und WinForms und sogar Silverlight

7 Januar 2010

Immer mehr Programme verwenden das .Net Framework in seinen verschiedenen Ausprägungen. Was aber tun wenn ein Programm nicht funktioniert und sich nur mit einem Fehlerreport an MS verabschiedet?

Man kann mit dem Debugger WinDBG auf das betreffende Programm losgehen.

Eine kleine Einführung mit Beispiel wird hier beschrieben: http://blog.codemurai.de/2009/09/04/WinDbgTutorialFehlerursachenFin
denTeil1EinerSerie.aspx
. Das Beispiel geht aber von einer laufenden Anwendung aus, auf die man sich aufschalten möchte.

Oftmals hat man jedoch den Fall, dass man eine Anwendung startet und es kommt gleich die entsprechende Crashmeldung. Bei dieser Situation startet man zuerst WinDBG und ruft dann das zu startende Programm über File->Open Executable auf. In diesem Fall bekommt man bei Aufruf von

.loadby sos mscorwks

allerdings die Meldung “unable to find module” angezeigt.

Das laden des Moduls kann man mit dem Befehl

sxe ld:mscorlib
g
.loadby sos mscorwks

erzwingen.

Danach funktioniert das Debuggen wie unter obigem Blogeintrag beschrieben.

Hinweis: Diejenigen mit langsamer Internetverbindung müssen sich aber beim ersten Aufruf der Funktionen in WinDBG gedulden, da zuerst die nötigen Symboldateien heruntergeladen werden müssen.

Weitere nützliche WinDBG Befehle für SOS findet man hier:
http://geekswithblogs.net/.netonmymind/archive/2006/03/14/72262.aspx

sowie in der offiziellen Referenz unter: http://msdn.microsoft.com/de-de/library/bb190764.aspx

Man kann sogar Silverlight Anwendungen damit debuggen: http://debuggingblog.com/wp/2009/06/02/silverlight-with-better-production-debugging-support-sosdll-in-coreclr-better-than-mscorwks/