Я обнаружил, что idb не может войти в одну из моих функций.
Я связываю c-программу (main.c) с функцией fortran90 (func1), принадлежащей модулю (mod1), которая связывается с другой функцией (func2) в другом модуле (mod2). Структура такая
main.c (c) ---> func1 в mod1 из lib1.a (fortran) ---> func2 в mod2 из lib2.a (fortran)
* Проблема в том, что я не могу войти в func2 с idb. Когда я пытаюсь войти в func2 из func1, отладчик переходит к следующей строке в func1. Я не использовал GDB, потому что я знаю, что он не может войти в модуль Fortran, не так ли?
Я компилирую с Intel 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
Я не понимаю, что происходит, я обычно собираю такие библиотеки, и отладчик работает!
Есть идеи?