3 Stimmen

Absichtliches Abstürzen eines externen Prozesses unter Windows

Ich möchte einen nativen Codefehler synthetisieren. Dies ist so, dass wir sehen können, wo insbesondere einige Debugging-Ausgabe wird gesetzt, wenn das auftritt.

Pskill (von Sys-Internals) führt zu einem geordneten Ausstieg. DotCrash.exe scheint nicht mehr direkt von Microsoft erhältlich zu sein.

Gibt es eine Möglichkeit, einen Prozess von außen zum Absturz zu bringen?

3voto

nick Punkte 3228

Ich habe das schon einmal mit windbg gemacht:

  1. Beginn des Prozesses
  2. Anhängen an den Prozess mit windbg
  3. Setzen eines Haltepunkts bei einer Funktion meiner Anwendung
  4. Ausführen der Anwendung, bis ich den Haltepunkt erreiche
  5. In windbg eine lokale Variable auf etwas setzen, das eine Zugriffsverletzung verursacht (z.B. einen Zeiger auf 0xFFFFFFFF setzen oder mit den Registerwerten herumspielen)
  6. Drücken Sie f5 und die Anwendung sollte hoffentlich abstürzen.

2voto

jrbjazz Punkte 3092

Wenn Sie das Äquivalent eines Coredumps wollen, drwtsn32 -p ProcessId erzeugt einen Dump des aktuellen Zustands eines laufenden Prozesses. Wenn Sie über die entsprechenden Debugsymbole verfügen, können Sie wertvolle Informationen erhalten.

HTH.

1voto

Ana Betts Punkte 72423

Wie Nick erwähnt, lässt sich dies leicht mit den Debugging Tools für Windows bewerkstelligen - ich würde allerdings noch einen Schritt weiter gehen und cdb (das Kommandozeilenprogramm WinDbg) verwenden, um die gesamte Interaktion zu skripten.

1voto

Samrat Patil Punkte 790

Wenn Sie zu einem beliebigen Zeitpunkt Dumps benötigen, können Sie Microsofts kostenloses Debug-Diagnosetool verwenden, das über eine nette Benutzeroberfläche verfügt, oder auf der Kommandozeile drwtsn32 -p processid wie von jrbjazz empfohlen.

1voto

Niki Punkte 15426

Sie könnten versuchen, Folgendes zu verwenden CreateRemoteThread . Es richtig zu benutzen ist nicht einfach, aber den anderen Prozess zum Absturz zu bringen sollte ziemlich einfach sein ;-)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X