应用程序分段错误,仅在使用MinGW在Windows上编译时

我试图在Windows上编译我的一个游戏 ,但不幸的是,无论如何,每次运行程序时都会出现此分段错误。

编译成功了,没有任何警告。

程序收到信号SIGSEGV,分段故障。

__chkstk_ms()../../../../../src/gcc-4.8.1/libgcc/config/i386/cygwin.S:172

172 ../../../../../src/gcc-4.8.1/libgcc/config/i386/cygwin.S:没有这样的文件或目录。

我试过了:

  • 在Windows x86机器上编译
  • 在Windows x64机器上编译
  • nuwen.net的MinGW发行
  • TDM MinGW 4.8.1 SJLJ
  • MinGW构buildx86 SJLJ
  • MinGWbuild立x64 SJLJ
  • MinGW构buildx86 DW2

我已经从源码多次build立了所有的依赖关系,试图连接静态和dynamic。

debugging也无济于事 – 只要inputmain() ,GDB就会给我这个错误信息。 我用过-g3-O0标志。

我怎样才能找出发生了什么?

Solutions Collecting From Web of "应用程序分段错误,仅在使用MinGW在Windows上编译时"

在Windows上,默认堆栈大小比Linux小。 __chkstk_ms似乎是一个函数,如果你溢出你的堆栈崩溃。

你可能试图找出你的代码中你正在创建巨大的堆栈变量或做非常深的递归,并解决这个问题。

或者,您可以添加一个编译标志来增加堆栈大小。 请参阅http://trac.sagemath.org/ticket/13960

尝试增加堆栈大小。 不要问我怎么样,我不知道。

失败的调用(__chkstk_ms)看起来像内部例程,它检查是否有足够的堆栈空间来执行函数。