我试图使一个Python程序接口与不同的崩溃进程(这是我的手)。不幸的是,我正在使用的程序甚至不会可靠地崩溃!所以我想做一个快速的c++程序,它会故意崩溃,但我不知道最好和最短的方法来做到这一点,有人知道在我的

int main() {
    crashyCodeGoesHere();
}

使我的c++程序可靠地崩溃


当前回答

你可以在c++代码中使用汇编,但是INT 3只适用于x86系统,其他系统可能有其他的陷阱/断点指令。

int main()
{
    __asm int 3;

    return 0;
}

INT 3导致中断并调用由OS设置的中断向量。

其他回答

abort()函数可能是最好的选择。它是C标准库的一部分,被定义为“导致异常程序终止”(例如,致命错误或崩溃)。

写入只读内存会导致分割错误,除非你的系统不支持只读内存块。

int main() {
    (int&)main = 0;
}

我在Windows 7上用MingGW 5.3.0测试了它,在Linux Mint上用GCC测试了它。我认为其他编译器和系统也会有类似的效果。

char*freeThis;
free(freeThis);

释放未初始化的指针是未定义的行为。在许多平台/编译器上,freeThis将有一个随机值(无论之前在内存位置上是什么)。释放它将要求系统释放该地址的内存,这通常会导致分割错误并使程序崩溃。

你可以在c++代码中使用汇编,但是INT 3只适用于x86系统,其他系统可能有其他的陷阱/断点指令。

int main()
{
    __asm int 3;

    return 0;
}

INT 3导致中断并调用由OS设置的中断向量。

void main()
{

  int *aNumber = (int*) malloc(sizeof(int));
  int j = 10;
  for(int i = 2; i <= j; ++i)
  {
      aNumber = (int*) realloc(aNumber, sizeof(int) * i);
      j += 10;
  }

}

希望它崩溃。欢呼。