Wie würde ich mich über eine Momentaufnahme eines Prozesses nimmt seinen Zustand für die künftige Untersuchung zu erhalten? Ist das möglich?
Frage
Ob dies möglich ist, weiß ich nicht, aber es wäre mächtig nützlich!
Ich habe einen Prozess, der in regelmäßigen Abständen (läuft unter Windows 2000) ausfällt. Ich habe dann nur eine Chance, es zu reagieren, bevor es neu starten zu müssen und schmerzlich warten, bis es wieder zum Scheitern verurteilt. Ich schrieb nicht, den Prozess so die Quelle nicht haben zu debuggen. Das Scheitern ist scheinbar zufällig.
Mit einer Momentaufnahme des Prozesses konnte ich wiederholt und schnell Reaktionen auf den Ausfall testen.
Ich hatte gedacht, der in einer VM laufen, aber das ist in diesem Fall nicht möglich.
EDIT: @ Jon Cage fragte:
Wenn Sie einen Snapshot sagen, meinen Sie einen Prozess erfassen, wenn es um ist zum Scheitern verurteilt (einschließlich Speicher, Programmzustand etc. etc.) ... und dann die Wiedergabe es letzte paar Sekunden wiederholt, um zu sehen ist, welche Auswirkungen es auf einem anderen hat Komponente?
Das ist genau das, was ich meine!
Lösung
Ich denke, minidump ist das, was Sie suchen.
Sie können auch verwendet Userdump :
Der User Mode Process Dumper (Userdump) Dumps jeden Lauf Win32 Speicherbild verarbeitet (einschließlich Systemprozesse, wie beispielsweise CSRSS.exe, winlogon.exe, services.exe, usw.) auf die Fliege, ohne einen Debugger zu anbringen, oder zur Einstellung von Soll-Prozessen. Erzeugte Abbild-Datei analysiert werden kann oder ausgetestet durch den Standard verwenden Debugging-Tools.
Das Artikel rel="nofollow zeigt Ihnen, wie es zu benutzen.
Andere Tipps
Meine beste Wette ist, um den Prozess in einem Debugger starten ( OllyDbg mein bevorzugtes Werkzeug ist). Der Prozess wird auf eine Ausnahme halten, und Sie können versuchen, herauszufinden, was vor, dass in Kürze geschehen.
Das muss ein gewisses Verständnis für Assembler und erlaubt es nicht, eine Momentaufnahme des Prozesses für eine spätere Analyse zu erstellen. Sie müssten Ihren eigenen Debugger für das schreiben -. Sollte es theoretisch möglich sein