Comment pourrais-je prendre un instantané d'un processus pour préserver son état en vue d'une enquête future? Est-ce possible?

StackOverflow https://stackoverflow.com/questions/138255

  •  02-07-2019
  •  | 
  •  

Question

Si cela est possible, je ne le sais pas, mais ce serait très utile!

J'ai un processus qui échoue périodiquement (sous Windows 2000). Je n’ai alors plus qu’une chance de réagir avant d’avoir à le redémarrer et d’attendre douloureusement qu’il échoue à nouveau. Je n'ai pas écrit le processus, donc je n'ai pas la source pour déboguer. L’échec est apparemment aléatoire.

Avec un instantané du processus, je pouvais tester plusieurs fois et rapidement les réactions à l'échec.

J'avais pensé à exécuter à l'intérieur d'une machine virtuelle, mais ce n'est pas possible dans ce cas.

EDIT: @Jon Cage a demandé:

  

Lorsque vous parlez d'un instantané, vous entendez capturer un processus lorsqu'il est sur le point d'échouer (y compris la mémoire, l'état du programme, etc.) ... puis de rejouer ses dernières secondes à plusieurs reprises pour voir son effet sur d'autres composant?

C'est exactement ce que je veux dire!

Était-ce utile?

La solution

Je pense que minidump est ce que vous recherchez.

Vous pouvez également utiliser Userdump :

  

Dumper de processus en mode utilisateur   (userdump) vide n'importe quel Win32 en cours d'exécution   traite l’image mémoire (y compris   processus système tels que csrss.exe,   winlogon.exe, services.exe, etc.) sur   la mouche, sans attacher un débogueur,   ou mettre fin aux processus cibles.   Le fichier de vidage généré peut être analysé ou   débogué en utilisant le standard   outils de débogage.

Cette article vous montre comment l'utiliser.

Autres conseils

Mon meilleur choix est de démarrer le processus dans un débogueur ( OllyDbg est mon outil préféré). Le processus s'interrompt sur une exception et vous pouvez essayer de comprendre ce qui s'est passé peu de temps auparavant.

Cela nécessite une certaine compréhension de l'assembleur et ne permet pas de créer un instantané du processus pour une analyse ultérieure. Vous aurez besoin d’écrire votre propre débogueur pour cela - cela devrait être théoriquement possible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top