我从c代码中调用了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
欢迎所有建议。
答案 0 :(得分:2)
您好需要额外的标志才能将调试信息放入您的可执行文件中。
这是intel编译器的手册:
http://cache-www.intel.com/cd/00/00/34/75/347599_347599.pdf
请尝试第35页上的-debug full
。