2012-02-14 56 views
0

我发现idb无法步入我的某个函数。idb无法找到功能 - 任何提示?

我将一个c程序(main.c)与属于模块(mod1)的fortran90函数(func1)链接到另一个模块(mod2)中的另一个函数(func2)。该结构是这样的

main.c中(C)---> func1的入了lib1.a(FORTRAN)---> FUNC2成lib2.a(FORTRAN)的mod2的

*问题的MOD1是:我无法用idb进入func2。当我尝试从func1进入func2时,调试器进入func1的下一行。我没有使用gdb,因为我知道它不能进入​​fortran模块,可以吗?

我与英特尔编译11.1与以下标志:

CFLAGS=-ggdb -debug full -O0 -Wall -traceback 

F90FLAGS=-g -O0 -check bounds -warn all -traceback -align all -align rec8byte 

我不知道该怎么做,任何暗示表示赞赏


编辑:我 我写了一个简单的fortran 90程序直接调用lib2.a而不使用lib1.a.我发现idb无法进入lib2.a。

我编译库就像

ifort -g -O0 -check bounds -warn all -traceback -align all -align rec8byte -o a.o -c a.f90 -I 
ifort -g -O0 -check bounds -warn all -traceback -align all -align rec8byte -o b.o -c b.f90 -I 
ifort -g -O0 -check bounds -warn all -traceback -align all -align rec8byte -o c.o -c c.f90 -I 
ifort -g -O0 -check bounds -warn all -traceback -align all -align rec8byte -o d.o -c d.f90 -I 
/u/shared/programs/x86_64/ifort/11.1.064/bin/intel64/xiar rcvf lib2.a a.o b.o c.o d.o 
xiar: executing 'ar' 
a - a.o 
a - b.o 
a - c.o 
a - d.o 

我不明白是怎么回事错了,我平时编译这样的,调试工程库!

有什么想法?

+0

因为我意识到我对预处理指令的故事是错误的。我编辑了我以前的文章,但后来我意识到这是一个完全不同的问题。所以我删除了前一个,并重新发布了一个全新的,因为前一个是误导性的。它是否违反任何指南或规则的stackoverflow? – simona 2012-02-14 16:29:01

+0

不知道,我只是好奇:) – Eregrith 2012-02-14 23:16:54

+0

总是使用标签[标签:fortran],只有当必要时添加版本来区分你的问题是具体的。例如,您不能使用Fortran 2008,而只能使用Fortran 90。 – 2015-12-17 11:49:26

回答

0

这是我在英特尔论坛得到了答案:

我使用-I没有说法:这是错误的,引起该问题。