我正在从 ac 代码调用 fortran 90 代码。有一个main()
(在 c 中)在同一个文件中调用一个包装函数,它调用一个 fortran 子例程(实际上在 liblibrary.a 中)。我正在研究Linux。现在,我gdb
用来调试可执行文件,但它找不到 main.c 文件。我使用添加了工作目录
directory /my/working/directory
但它仍然说没有名为 main.c 的文件
如果我list
在里面输入gdb
它会显示一段 fortran 代码。如果我输入show language
,它会显示当前源语言是auto; currently c
。
如果我运行可执行文件然后中断它并查看堆栈,它将显示我正在调用的 c 函数,但它不会说明源文件,而是说明 fortran 子例程和函数。
我正在尝试调查我是否正确地将变量从 c 传递到 fortran 和向后,我怀疑我不是。
idb
或多或少发生了同样的事情。当我尝试中断 main.c 时,它显示not found
. 我用这些标志编译了 fortran 代码:
-g -O0 -check bounds -warn all -traceback -align all -align rec8byte
和c代码:
-g -O0 -Wall
欢迎所有建议。