IDB не может найти функцию - любой намек? - PullRequest
0 голосов
/ 14 февраля 2012

Я обнаружил, что 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

Я не понимаю, что происходит, я обычно собираю такие библиотеки, и отладчик работает!

Есть идеи?

1 Ответ

0 голосов
/ 15 февраля 2012

Это ответ, который я получил на форумах Intel:

Я использую -I без аргументов: это неправильно и вызывает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...