Gestern ging ja die Meldung, dass Microsoft seinem Windows Debugger WinDbg ein Facelifting verpasst habe und die Anwendung als Preview im Windows Store zur Verfügung stände, durch diverse Techblogs. Ich habe mal nachgefasst und mich entschlossen, einen 'kleinen' Blog-Beitrag zum Thema zu bringen.
Anzeige
Vorbemerkungen
Ein Großteil der Blog-Leser wird mit dem Windows Debugger wohl nichts am Hut haben und das Teil niemals anfassen. Die Techblogs umschreiben das vornehm als 'Tool für Entwickler'. Nun ja, ich bin kein Entwickler mehr, habe aber gelegentlich WinDbg auf meinen Maschinen, um Memory Dumps von Blue Screens anzusehen. WinDbg muss umständlich als Bestandteil des Windows SDK installiert werden. Man kann den Umfang aber auf um die 200 MByte reduzieren.
Als ich die Meldung 'Windows Debugger im Store' las, zuckte der Gedanke 'cool, da wird das Verwenden einfacher – App auf's System zerren und loslegen' durch den Kopf. Also stand 'mal ansehen' auf meinem Schmierzettel. Wie man WinDbg einrichtet und verwendet, habe ich übrigens in einer dreiteiligen Artikelreihe hier im Blog angerissen:
Windows BlueScreen-Analyse – Teil 1
Windows BlueScreen-Analyse – Teil 2
Windows BlueScreen-Analyse – Teil 3
Ist etwas 'hartes Brot' und ich versuche es zu vermeiden, da in die Tiefen zu steigen – denn meist klemmt es irgendwie an den unmöglichsten Stellen. Mal fehlen Symbolquellen, mal ist der Stack-Trace eines Dumps für mich ein spanisches Dorf (ist einfach zu lange – präzise 36 bis 37 Jahre – her, dass ich teilweise im Schlaf von Debugger-Traces geträumt habe – war damals in der Mikroprozessorentwicklung mit In Circuit Emulatoren tägliches Brot).
Anzeige
Facelifting für den Debugger und im Windows Store
Am 28. August 2017 erschien bei Microsoft der Blog-Beitrag New WinDbg available in preview!, der die Verfügbarkeit des aktualisierten Debuggers zum Inhalt hat. Das Teil wurde auf ein Menüband umgestellt und soll vor allem schneller sein, als die alte Version.
(Quelle: Microsoft)
Was als erstes auffällt: Die Preview des Debuggers wird über den US Windows Store bereitgestellt – hier ist der Link.
Dort erfährt man, dass die App zwar mit Windows 10 Pro und Home, nicht aber mit Windows 10S arbeitet. Mit knapp 200 MByte ist das Ganze schnell auf ein System gezerrt.
Ergänzung: Eine detailliertere Information findet sich bei MSDN. Dort findet man nun den Hinweis, dass Microsoft ein Problem untersucht, warum man die App nicht im Store findet. Ich habe einfach die Google Suche genutzt, um über die Microsoft-Beiträge auf den US-Store-Link zu kommen. Ist doch ganz einfach .
… und die Pferdefüße …
Ob ein Menüband oder ein Dark-Theme einem Entwickler, der einem Fehler auf die Spur kommen will, Freudenschreie entlocken wird, mag man diskutieren – ich halte es für Blendwerk. Was mir aber sofort ein Stirnrunzeln verursachte, sind folgende Überlegungen:
- Der neue Debugger ist damit auf Windows 10 (ab Anniversary Update) beschränkt – als Win 32-Anwendung nativ unter Windows 7, Windows 8.1 oder Windows 10 RTM ausführen ist nicht.
- Unter Windows 10 Home lässt sich die App mit dem Debugger nur mit einem Microsoft Konto verwenden (in Pro langt auch ein lokales Benutzerkonto).
- Irgendwo läuft der Debugger im App-Container, so dass sich mir die Frage stellt, wie viel Performance-Verlust gegenüber einer Win32-App da auftritt.
- Was mir aber sofort schmerzlich bewusst wurde: Mal eben schnell zu einem anderen Benutzerkonto wechseln, um dort in anderem Kontext zu debuggen, ist nicht. Die App wird ja nur unter dem aktuellen Benutzerkonto installiert.
Das war dann der Punkt, wo das Gesicht immer länger wurde – dass die App nur unter Windows 10 ab V1607 verfügbar ist, geschenkt. Das ist ja die strahlende Zukunft, wenn es nach Microsoft geht. Gemäß den Kommentaren zum MSDN-Beitrag plant man WinDbg auch später als normale Win32-Anwendung.
Satz mit X – zu kurz gesprungen
So richtig in Richtung 'Apps sind einfach Murks' ging es dann aber, als ich das tolle neue Teil mal schnell ausprobieren wollte. Im Startmenü den Eintrag angeklickt und gewartet. Es tat sich nichts. Also nochmals ein Versuch, vielleicht habe ich mich geirrt. Gleiches Ergebnis.
Den Task-Manager aufgerufen und einen dritten sowie vierten Versuch zum Starten des neuen Debuggers unternommen. Das Teil kam nicht hoch (geht im Einklang mit Erfahrungen vieler Nutzer, dass Apps sang- und klanglos beim Start sterben). Im Task-Manager konnte ich dann sehen, dass ein Prozess DbgX.Shell.exe kurz startete und dann beendet wurde.
An dieser Stelle wirft jeder normale Nutzer das Handtuch, die App funktioniert nicht. Entwickler, die den Debugger verwenden wollen, wissen meist auch, was eine Ereignisanzeige ist. Also diese unter Windows 10 aufgerufen (jetzt debuggen wir den Debugger, weil die App nicht startet – einfach krank) und in die Anwendungs-Ereignisse geschaut.
Die DbgX.Shell.exe stirbt, weil es mit dem .NET-Framework 4 irgend ein Problem gibt und eine unbehandelte Ausnahme auftritt. Gut, es ist eine Preview und ich bekomme ja gesagt, die könne noch Fehler enthalten …
Ich habe mir dann den Spaß erlaubt, den Debugger aus dem Windows 10 SDK auf die Schnelle auf der Maschine zu installieren. Waren auch bloß 200 MByte, aber der Debugger stand mir nach dem Setup sofort unter allen Benutzerkonten zur Verfügung. Den Debugger-Eintrag im Startmenü angewählt und schon meldet sich WinDbg als Windows-Anwendung in voller Schönheit.
Also schlage ich mich bei der App mit Fehlern herum, die ich beim Win32-WinDbg nicht habe. An dieser Stelle habe ich mich spontan gefragt 'Was mache ich falsch, dass mich immer der Schlag trifft – hat Microsoft bei mir einen Kill-Switch eingebaut?'. Denn auf Facebook bekomme ich immer, wenn ich mal einen Fehler berichte oder mich mit Troubleshooting abgebe, Kommentare der Art: 'keine Ahnung, warum ich noch niemals solche Fehler mit meinem Windows 10 hatte – was mache ich falsch …?'.
Irgendwie ärgert man sich bei Apps mit Problemen herum, die man mit Win32-Anwendungen nicht kennen lernt. Oder bin ich nicht mehr mit Windows 10 kompatibel? Hat jemand von euch den neuen Debugger am Laufen? Was haltet ihr von der neuen Oberfläche? Fragen über Fragen – und ich hebe jetzt den Sack Reis auf, der in China gerade umgefallen ist.
Nachtrag: Weitere Beobachtungen und Ergänzungen
Anscheinend ist .NET Framework auf der Testmaschine kaputt. Da ist zwar nur ein Windows 10 V1703 (32 Bit) drauf, welches ich gelegentlich updaten lasse. Aber auf einem zweiten Rechner mit Windows Insider Preview (64 Bit) konnte ich den WinDbg Preview nach zwei Startversuchen zum Laufen bringen.
Ergänzung: André hat die Ursache in einem Kommentar weiter unten angegeben. Eine DLL ist für 64 Bit compiliert, erklärt das BadImageFormat-Thema. Die DLL lässt sich in einem 32-Bit-System nicht laden.
Was mir noch aufgefallen ist: Auf der ersten Testmaschine steht der Kontextmenübefehl Als Administrator ausführen unter einem Standardkonto nicht zur Verfügung – nur bei Konten der Gruppe Administratoren gibt es diesen Befehl.
Michael Bormann hat in einem Kommentar noch einige weitere Erfahrungen einfließen lassen. Die Bilder hat er mir zukommen lassen und ich habe die nachgetragen. Da muss noch viel Wasser den Rhein herunter laufen, bis das wird – und dann werde ich den nativen Debugger und nicht die App verwenden.
Die Argumentation Microsofts, dass man nur über die Store-App schneller Updates verteilen kann, vermag ich nicht nachzuvollziehen. In letzter Zeit geht alles schnell, schnell bei Microsoft und verbuggte Software wird rausgeschoben – der Anwender möge testen. Das bringt imho nichts, da müsste Ruhe reinkommen. Ob der Debugger zwei Monate früher fertig wird oder nicht, spielt imho keine Rolle. Das Ding muss nied- und nagelfest sein und auf allen Plattformen zuverlässig bereitstehen. Zumindest meine Meinung.
Ähnliche Artikel:
Windows BlueScreen-Analyse – Teil 1
Windows BlueScreen-Analyse – Teil 2
Windows BlueScreen-Analyse – Teil 3
Windows Debugger Preview mit Time Travel-Debug-Feature
Bullshit-Bingo: Windows Debugger WinDbg im Windows Store
WinDbg-Bug: Preview kann kein USB-Debugging mehr
Anzeige
Hab's gerade mal installiert, läuft hier. Da es dank des Schrott-Browsers Edge ja an Dumps nicht mangelt, mal einen Edge-Dump eingeworfen – man kann ihn wie im alten Debugger untersuchen. Der Installationsvorgang ist natürlich angenehmer, mit einem Klick ist alles erledigt. Ich bin aber kein Windbg-Profi, der den Debugger in allen Funktionen mal eben kurz durchtesten kann.
Hat mich jetzt auch wunder genommen, da ich den Windbg doch immer wieder mal benötige. ich konnte die App problemlos installieren und starten.
Kommt mir nicht auf die Maschine(n)
vorerst jedenfalls nicht denn eine Begrenzung auf Win10 was ja nicht allein in der Welt existiert sondern auch noch Win7, Srv2008, 2012..R2 etc und die würden dann ja rausfallen, brauche ich aber …. noch ;-)
Ob dann Erweiterungen im Debugger noch funktionieren die bei der Komplexität mittlerweile doch notwendig sind; verlasse ich mich nicht drauf.
MS hat auch bei der Build 540 leichte Probleme mit den DLLs für Debugger, invalid Timestamp -> auf 000000000 gesetzt und ein Rookie tappt in die Falle.
Der übliche First Shot den der Debugger so anzeigt, wird noch mehr Benutzer in die Irre führen:
BugCheck 9F, {3, ffffb286bb571820, ffffe00054a2e870, ffffb286bf900560}
Implicit thread is now ffffb286`c35aa7c0
Probably caused by : ndis.sys ( ndis!ndisQuerySetMiniportEx+143 )
Followup: MachineOwner
———
hier ist es nicht der oben angeprangerte ndis.sys sondern
1: kd> !devobj ffffb286bb571820
Device object (ffffb286bb571820) is for:
Cannot read info offset from nt!ObpInfoMaskToOffset
\Driver\BTHUSB DriverObject ffffb286bb45c590
Current Irp 00000000 RefCount 0 Type 00000022 Flags 00003050
SecurityDescriptor ffff8f01fa51ece0 DevExt ffffb286bb571970 DevObjExt ffffb286bb5719f0 DevNode ffffb286bb5a4d30
ExtensionFlags (0x00000800) DOE_DEFAULT_SD_PRESENT
Characteristics (0x00000180) FILE_AUTOGENERATED_DEVICE_NAME, FILE_DEVICE_SECURE_OPEN
AttachedDevice (Upper) ffffb286b697c050 \Driver\BthPan
Device queue is not busy.
—————————–
Es ist der BT-Treiber und dafür muss man schon die mitgeführten Parameter auswerten, da hauen sehr viele daneben mangels Wissen.
Abgesehen von so Kleinigkeiten klappt es auch nicht den Debugger zu stoppen / detach und einen anderen Dump zu laden, gibt Chaos in der Ausgabe mit doppelten Zeilen.
WinDb 10.0.14321.1024 derzeit im Einsatz.
stürzt bei mir auch ab, weil eine DLL als x64 kompiliert wurde, der rest als AnyCPU, auf einem 32Bit Windows kann man halt die 64Bit DLL nicht laden. Hast du es auch auf einer 32Bit VM probiert?
Das Problem habe ich an MS gesendet.
Erklärt alles – ich habe erinnerungsmäßig ein 32 Bit Windows genutzt.
ich wäre (simuliert) über meinen schatten gesprungen, mal eine "app" ausführen..
ist ja nicht irgendwas sondern der gute alte windebugger, aufgehübscht, why not?!
kann ich ja in der virtuellen maschine, die ich zum builds für boot sticks erstellen, testen verschiedener scenarien auf arbeit nutze..
dachte ich…
dass ich ein ms-konto benötige (soweit kam ich garnicht, damit wär die sache für mich auch gegessen) jedenfalls bekam ich die meldung der store komme nicht ins internet..
hab ich vielleicht irgendeine diagnose/tracking schraube zuviel gedreht (damit ich mit der maschine arbeiten kann!!)
->> drauf geschissen!
ich warte auf den nativen, neuen, debugger! und nutze weiter WinDbg 10.0.14321.1024 ;-)
rofl…. oh man danke Günter und den Postern. So lerne ich noch BSOD lesen anstatt mich nur mit bluescreenview heranzutasten
aber das du nicht auf die Idee kommst dir windbg app mit der Desktop app zu debuggen :))
@Luke
den WinDbg gibt es auch als reguläre Anwendung 10.0.1563.468 und zeigt mir bei den bisher durchgenudelten Dumps keine Fehler.
Das ist ja schon mal was. ;-)