2011-01-05 6 views
4

Vielleicht eine seltsame Frage, aber ich muss die Stabilität und Fehlerprozeduren des Host-Prozesses (Aufrufer) testen, die auf COM-Objekte zugreifen. Daher brauche ich einige einfache/kurze Methoden, um das (die) COM-Objekt (e) abstürzen zu lassen selbst.Wie absichtlich ein COM-Objekt abstürzen

Zusatz 1: Mit Absturz meine ich die Art von Absturz, der den Anrufer auch hindern kann.

Zusatz 2: Ich besitze sowohl den Code des Anrufers als der COM-Server.

+0

Mock die COM-Objekte? –

+0

Bitte erläutern. Ich weiß nicht, was du meinst. –

+2

@Mark vB: Besitzen Sie den COM-Code? Wie bindet der Host-Prozess den COM-Server? Was meinst du mit "crash" –

Antwort

4

Was meinen Sie mit "Crash"? Welche Sprache verwenden Sie in Ihrem COM-Server

  • Wenn Sie meine eine Ausnahme über COM werfen, dann explizit nur eine Ausnahme auslösen oder einen Fehler machen. Oder Sie könnten absichtlich durch Null teilen, wenn Sie möchten.
  • Wenn Sie meinen, einfrieren und niemals zurückgeben, absichtlich eine Endlosschleife Code. Z.B. for(;;);
  • Wenn Sie eine nicht behandelte Zugriffsverletzung bedeuten, hängt es von der Sprache ab, die Sie in Ihrem COM-Server verwenden. Sie könnten versuchen, auf einen NULL-Speicherort zuzugreifen.
+0

Ich möchte eine Zugriffsverletzung * in * dem COM-Objekt erstellen, das den Aufrufer herunterbringen kann/wird. Grund dafür ist, die Stabilitätsmaße im Aufrufer testen/optimieren zu können. Daher brauche ich ein schmutziges/unsicheres/instabiles COM-Objekt. –

0

Gibt es ein Community-Wiki über Möglichkeiten, Programme noch zu stürzen?

Ein paar der Spitze von meinem Kopf:

  • Ursache eines massiver Stack-Überlauf :)
+0

Ja, ich weiß, es ist eine ungewöhnliche Frage ...;) –

0

eine Ausnahme werfen, wenn Sie COM verwenden mit einer anderen ausführbaren Datei zu kommunizieren (im Gegensatz zum Laden einer DLL in Ihren eigenen Prozessraum), können Sie den anderen Prozess von der Kommandozeile taskkill.

Verwandte Themen