GDB挂起在GNU Fortran堆栈框架上

时间:2015-02-02 06:26:09

标签: c++ gcc gdb fortran

我有一个庞大的,混合的C ++和Fortran代码库,我试图调试。

该程序是使用GCC和GNU Fortran 4.8版构建的。 Fortran代码使用-c -g -cpp -ffixed-line-length-none -ffree-line-length-none -fcoarray=single -fno-underscoring -fPIC构建,C ++代码使用-g -Wall -Wno-reorder -Wno-parentheses -std=c++11 -Wno-unknown-pragmas -fPIC构建。该计划与g++ -g ... -lgfortran

相关联

当我在GDB中运行程序时,我可以使用break my_func.f90:35在Fortran代码中设置断点。但是,当程序遇到该断点时,调试器似乎进入无限循环,试图打印出堆栈跟踪。如果我此时按 Ctrl + C ,我会得到一个截断的堆栈跟踪,如下所示:

^CBreakpoint 2, my_func (accinfile=Quit
(gdb)

所以程序已经到了断点,看起来堆栈跟踪出了问题。如果它在C ++代码中断,但在堆栈跟踪中使用Fortran函数,我将堆栈跟踪提升到Fortran部分,但此时再次挂起。

我已经确认GDB可以使用非常简单的C ++ / Fortran程序。

有没有人遇到过这种行为?有没有已知的解决方案?

0 个答案:

没有答案