347 Stimmen

Was ist der einfachste Weg, ein C++-Programm zum Absturz zu bringen?

Ich versuche, ein Python-Programm zu erstellen, das eine Schnittstelle zu einem anderen Crashy-Prozess hat (das liegt nicht in meiner Hand). Leider stürzt das Programm, mit dem ich eine Schnittstelle bilden will, nicht einmal zuverlässig ab! Also möchte ich ein schnelles C++-Programm machen, das absichtlich abstürzt, aber ich weiß nicht wirklich den besten und kürzesten Weg, um das zu tun, weiß jemand, was ich zwischen meinen:

int main() {
    crashyCodeGoesHere();
}

um mein C++-Programm zuverlässig zum Absturz zu bringen

293voto

En abort() Funktion ist wahrscheinlich die beste Wahl. Sie ist Teil der C-Standardbibliothek und wird als "abnormale Programmbeendigung" definiert (z. B. ein schwerwiegender Fehler oder Absturz).

128voto

Martin York Punkte 245363

Versuchen Sie es:

raise(SIGSEGV);  // simulates a standard crash when access invalid memory
                 // ie anything that can go wrong with pointers.

Gefunden in:

#include <signal.h>

76voto

Roee Gavirel Punkte 18058

Eine Division durch Null führt zum Absturz der Anwendung:

int main()
{
    return 1 / 0;
}

70voto

Keith Nicholas Punkte 42417
*((unsigned int*)0) = 0xDEAD;

56voto

sam hocevar Punkte 11517

Nun, sind wir auf Stapel Überlauf oder nicht?

for (long long int i = 0; ++i; (&i)[i] = i);

(Es ist nicht garantiert, dass es zu einem Absturz kommt, aber das ist auch bei keiner der vorgeschlagenen Antworten der Fall, auch nicht bei der akzeptierten, da SIGABRT hätte sowieso erwischt werden können. In der Praxis wird dies überall zum Absturz führen).

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