我正在尝试使用GDB调试Emacs中的fortran程序。我的编译器是intel fortran 2017.4。问题在于使特定的子程序反转矩阵。当矩阵的大小为“小”即100x100时,程序运行没有问题。当我将矩阵的大小增加到例如600x600时,我得到以下消息:“线程3收到信号SIGSEGV,分段错误。”
现在,如果我尝试调试从终端启动GDB的程序,一切正常。我非常喜欢在Emacs中调试程序,因为它可以节省我很多时间。有关如何解决此问题的任何想法?
我已经尝试将堆栈大小增加到最大值(MAC为65532),并且所有数组都在堆上分配。
感谢您的帮助,
答案 0 :(得分:2)
现在,如果我尝试调试从终端启动GDB的程序,一切正常。
从GDB运行时,程序似乎不会崩溃(无论是从Emacs还是从终端调用GDB),在这种情况下,您对Emacs的引用都是多余的。
程序可能无法在GDB下崩溃的部分原因列于here。