3

我正在从 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

欢迎所有建议。

4

1 回答 1

2

您好,您需要额外的标志来将调试信息放入您的可执行文件中。这是英特尔编译器的手册: http: //cache-www.intel.com/cd/00/00/34/75/347599_347599.pdf-debug full按照第 35 页的内容尝试。

于 2012-01-14T23:08:03.563 回答