Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan felsöka flera dumpfiler eller aktiva användarlägesprogram samtidigt. Varje mål innehåller en eller flera processer och varje process innehåller en eller flera trådar.
Dessa mål är också grupperade i system. System är uppsättningar med mål som grupperas tillsammans för enkel identifiering och manipulering. System definieras på följande sätt:
Varje dumpfil i kernelläge eller användarläge är ett separat system.
När du felsöker aktiva användarlägesprogram på olika datorer (med hjälp av en processserver, till exempel Dbgsrv), är varje program ett separat system.
När du felsöker aktiva användarlägesprogram på den lokala datorn kombineras programmen till ett enda system.
Det aktuella eller aktiva systemet är det system som du för närvarande felsöker.
Identifiera flera mål
Det första målobjektet förvärvas på det vanliga sättet.
Du kan felsöka ytterligare live-program i användarläge med hjälp av kommandot .attach (Attach to Process) eller .create (Create Process), följt av kommandot g (Go).
Du kan felsöka ytterligare dumpfiler med kommandot .opendump (Open Dump File) följt av kommandot g (Go). Du kan också öppna flera dumpfiler när felsökningsprogrammet startas. Om du vill öppna flera dumpfiler inkluderar du flera -z-växlar i kommandot, varje följt av ett annat filnamn.
Du kan använda föregående kommandon även om processerna finns i olika system. Du måste starta en processerver på varje system och sedan använda parametern -premote med .attach eller .create för att identifiera rätt processserver. Om du använder kommandot .attach eller .create igen utan att ange parametern -premote ansluter felsökningsprogrammet till eller skapar en process i det aktuella systemet.
Manipulera system och mål
När felsökningen börjar är det aktuella systemet det som felsökningsprogrammet senast kopplade till. Om ett undantag inträffar växlar det aktuella systemet till det system som det här undantaget inträffade på.
Om du vill stänga ett mål och fortsätta att felsöka de andra målen använder du kommandot .kill (Kill Process). Du kan använda kommandot .detach (Koppla från process) eller WinDbg's Debug | Koppla från Debuggee kommando i stället. Dessa kommandon kopplar bort felsökningsprogrammet från målet men lämnar målet igång.
Om du vill styra felsökningen av flera system kan du använda följande metoder:
|| (Systemstatus) kommandot visar information om ett eller flera system
||med kommandot s (Ange aktuellt system) kan du välja det aktuella systemet
(Endast WinDbg) Med fönstret Processer och trådar kan du visa eller välja system, processer och trådar
Genom att använda dessa kommandon för att välja det aktuella systemet, och genom att använda standardkommandona för att välja den aktuella processen och tråden, kan du fastställa kontexten för kommandon som visar minne och register.
Du kan dock inte åtskilja körningen av dessa processer. Kommandot g (Go) gör alltid att alla mål körs tillsammans.
Notera Det finns komplikationer när du felsöker livemål och dumpmål tillsammans, eftersom kommandon fungerar olika för varje typ av felsökning. Om du till exempel använder kommandot g (Go) när det aktuella systemet är en dumpfil börjar felsökningsprogrammet köras, men du kan inte bryta tillbaka till felsökningsprogrammet eftersom brytkommandot inte känns igen som giltigt för felsökning av dumpfiler.
Exempel
Om du vill arbeta med tre dumpfiler samtidigt kan du använda alternativet -z för att läsa in dem när WinDbg startas.
windbg -z c:\notepad.dmp -z c:\paint.dmp -z c:\calc.dmp
Mer information finns i WinDbg Command-Line Alternativ. Du kan också använda kommandona .opendump och g (Go) för att läsa in ytterligare dumpfiler i felsökningsprogrammet.
Använd || (Systemstatus) för att bekräfta att alla tre systemen finns.
||0:0:007> ||
. 0 User mini dump: c:\notepad.dmp
1 User mini dump: C:\paint.dmp
2 User mini dump: c:\calc.dmp
Använd kommandot g (Go) för att slutföra inläsningen av dumpfilerna.
||0:0:007> g
************* Path validation summary **************
Response Time (ms) Location
Deferred srv*
Symbol search path is: srv*
Executable search path is:
Windows 10 Version 15063 MP (4 procs) Free x64
Product: WinNt, suite: SingleUserTS
15063.0.amd64fre.rs2_release.170317-1834
Machine Name:
Debug session time: Fri Jun 9 15:52:04.000 2017 (UTC - 7:00)
System Uptime: not available
Process Uptime: 0 days 0:03:44.000
...............................................................
This dump file has a breakpoint exception stored in it.
The stored exception information can be accessed via .ecxr.
ntdll!DbgBreakPoint:
00007ff8`aada8d70 cc int 3
Använd sedan ||s -kommandot (Ange aktuellt system) för att ange det aktuella systemet till system 1 och sedan visa det aktuella systemet.
||1:1:017> ||1s
||1:1:017> ||
0 User mini dump: c:\notepad.dmp
. 1 User mini dump: c:\paint.dmp
2 User mini dump: c:\calc.dmp
Du kan använda kommandot .detach när du är klar med att titta på den aktuella dumpfilen.
||1:1:017> .detach
ntdll!DbgBreakPoint:
00007ff8`aada8d70 cc int 3
Detached
||0:0:007> ||
. 0 User mini dump: c:\notepad.dmp
2 User mini dump: c:\calc.dmp
Resurser
Mer information om felsökning finns i följande resurser.
Böcker
Avancerad Windows-felsökning av Mario Hewardt och Daniel Pravat
Insikt i Windows-debugging: En praktisk guide till felsökning och spårningsmetoder i Windows av Tarik Soulami
Windows Internals av Pavel Yosifovich, Alex Ionescu, Mark E. Russinovich och David A. Solomon
Video
Defrag Tools Show WinDbg Avsnitt 13-29: </shows/defrag-tools/>