Seit Windows Vista haben wir die nette Möglichkeit, einen Speicherabzug eines Prozesses direkt aus dem Task-Manager zu erstellen. Leider hat Windows Server 2003 diese Option noch nicht :( Ich habe Wege gefunden, einen kompletten systemweiten Speicherauszug zu erstellen, aber das ist ein bisschen zu viel.
Gibt es eine Möglichkeit, einen einzelnen Prozess zu löschen? Da es sich um einen Produktionsserver handelt, möchte ich keine schwergewichtigen Werkzeuge und keinen Dienst installieren, der im Hintergrund ausgeführt wird. Im Idealfall möchte ich nur den Prozess abspeichern, den Dump auf meinen eigenen Rechner kopieren und ihn dort debuggen.
Ja, suchen Sie nach userdump.exe. Sehen Sie sich diesen KB-Artikel an.
Sie können den Windows-Debugger (ntsd oder windbg) an den Prozess anhängen und dann Wenn Sie einen Dump des Prozesses erstellen möchten, können Sie den Befehl .dump verwenden:
%Vor%Ich denke, diese "Antwort" sollte ein Kommentar unter jeffamaphones Antwort sein, aber ich habe nicht genug Reputation, um sie zu kommentieren.
Windows Server 2003 wird mit ntsd ausgeliefert, sodass keine Installation erforderlich ist. Rufen Sie die Prozess-ID des Prozesses ab und hängen Sie ntsd an den Prozess an:
%Vor%Verwenden Sie dann ntsd, um den Prozess abzulegen:
%Vor%Vergessen Sie nicht über procdump von sysinternals.com (leitet zu MS um, seit sie sie vor ein paar Jahren gekauft haben). Sehr kleiner Download.
Tags und Links debugging windows-server-2003 memory-dump