Come farei per fare un'istantanea di un processo per preservare il suo stato per future indagini? È possibile?

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

  •  02-07-2019
  •  | 
  •  

Domanda

Se questo è possibile non lo so, ma sarebbe molto utile!

Ho un processo che fallisce periodicamente (in esecuzione su Windows 2000). Ho quindi una sola possibilità di reagire prima di doverlo riavviare e aspettare dolorosamente che fallisca di nuovo. Non ho scritto il processo, quindi non ho la fonte per il debug. Il fallimento è apparentemente casuale.

Con un'istantanea del processo ho potuto testare ripetutamente e rapidamente le reazioni al fallimento.

Avevo pensato di correre all'interno di una VM, ma questo non è possibile in questo caso.

EDIT: @Jon Cage ha chiesto:

  

Quando dici un'istantanea, intendi catturare un processo quando sta per fallire (tra cui memoria, stato del programma ecc. ecc.) ... e quindi riprodurre ripetutamente i suoi ultimi secondi ripetutamente per vedere quale effetto ha su qualche altro componente?

Questo è esattamente ciò che intendo!

È stato utile?

Soluzione

Penso che minidump è ciò che stai cercando.

Puoi anche utilizzare Userdump :

  

Il dumper del processo in modalità utente   (userdump) esegue il dump di qualsiasi Win32 in esecuzione   elabora l'immagine di memoria (incluso   processi di sistema come csrss.exe,   winlogon.exe, services.exe, ecc.) su   al volo, senza collegare un debugger,   o terminando i processi target.   Il file di dump generato può essere analizzato o   eseguito il debug utilizzando lo standard   strumenti di debug.

Questo articolo ti mostra come usarlo.

Altri suggerimenti

La mia scommessa migliore è iniziare il processo in un debugger ( OllyDbg è il mio strumento preferito). Il processo si fermerà su un'eccezione e puoi provare a capire cosa è successo poco prima.

Ciò richiede una certa comprensione dell'assemblatore e non consente di creare un'istantanea del processo per successive analisi. Dovresti scrivere il tuo debugger per questo - dovrebbe essere teoricamente possibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top