2012-02-14 2 views
0

Я обнаружил, что idb не может войти в одну из моих функций.idb не может найти функцию - любой намек?

Я связываю c-программу (main.c) с функцией fortran90 (func1), которые принадлежат модулю (mod1), который ссылается на другую функцию (func2) в другом модуле (mod2). Структура подобна той

main.c (с) ---> func1 в Mod1 из lib1.a (FORTRAN) ---> func2 в Mod2 из lib2.a (Fortran)

* проблема is: Я не могу войти в 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 

Я не знаю, что делать, любой намек ценится


Edit: Я Я написал простой 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

+0

Не знаю, мне было просто любопытно :) – Eregrith

+0

Всегда используйте тег [tag: fortran] и добавляйте только версию, когда это необходимо, чтобы отличить ваш вопрос. Например, вы не можете использовать Fortran 2008, но только Fortran 90. –

ответ

0

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

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

Смежные вопросы