затмение с отладчиком Intel Fortran - PullRequest
6 голосов
/ 30 ноября 2010

Моя проблема заключается в следующем:

Я хочу использовать отладчик idb intel с eclipse, чтобы шаг за шагом проходить по моему коду, как это делает idb -gui. Я уже пытался реализовать решение, которое я нашел, где я заменяю прямой вызов idb -gdb скриптом:

#!/bin/bash 
exec/usr/local/soft/intel/fc/10.0.025/bin/ifort/idb -gdb "$@" 

Это на самом деле работает, так как запускает мою программу, пока не доходит до командной строки. Теперь я получаю следующую ошибку:

Target request failed: {R,T}xThread terminated.

Именно тогда я потратил впустую целый день, пытаясь решить эту проблему, и решил опубликовать это. Кто-нибудь может помочь мне еще с некоторыми умными советами? как вы интегрировали IDB в Eclipse?

веселит, David

Ответы [ 2 ]

4 голосов
/ 06 декабря 2010

Не специалист, но в случае, если это поможет, эта ветка упоминает (даже если это для FORTRAN 11):

Я думал о вашей проблеме еще немного, и я думаю, что не принималВаше заявление о проблеме так буквально, как вы и предполагали.
Вы говорите, что код, который вы не видите в отладчике, находится в файле определения MODULE?Если это так, я бы сказал, что проблема связана с общими ограничениями использования gdb в качестве отладчика Fortran.Если вы используете отладчик Intel, вы сможете перейти к сгенерированному на Intel Fortran коду, который содержится в MODULE.

Я вижу, вы используете версию 11.0 Intel Fortran.Есть несколько вариантов для вас.

  • Intel Fortran 11.0 поставляется с новой автономной версией графического интерфейса IDB.Вы можете использовать его, если не возражаете против построения в Eclipse, но отладки в другом инструменте.Вы вызываете новую версию графического интерфейса с помощью команды «idb», предполагая, что вы инициализировали свою среду для использования отладчика Intel.
  • Intel Fortran 11.0 также предоставляет версию отладчика для командной строки, которую можно снова вызвать с помощью команды «idbc», при условии, что вы инициализировали свою среду для использования отладчика Intel.
  • Третья альтернатива, которую вы можете попробовать, - это изменить конфигурацию запуска отладки в Photran, чтобы она вызывала idbc вместо gdb.Это не то, что официально поддерживается Intel, но когда я пытаюсь сделать это на примере, аналогичном тому, который, по моему мнению, имеет место, он работает нормально. Опять же, это не поддерживается Intel, поэтому, если вы столкнетесь с другими проблемами в этой конфигурации,не было бы никакой помощиЕсли он работает достаточно хорошо для вас, он позволяет вам делать все в Eclipse / Photran.
    Если вы хотите попробовать это, инициализируйте вашу среду для использования отладчика Intel, прежде чем запускать Eclipse, запустите Eclipse, откройте конфигурацию отладки ивыберите вкладку отладчика.Затем в области «Параметры отладчика» на вкладке «Main» измените «GDB debugger» с «gdb» на «idbc».

Этот поток также упоминает (в случае, если он имеет какое-либо влияние на вашу проблему):

GUI idb, по-видимому, запускает серверную часть с именем iidb, которая эмулирует gdb достаточно хорошо для Eclipse IDE.

iidb необходимо загрузить определенные разделяемые библиотеки.
Я сделал это, добавив /opt/intel/Compiler/11.1/038/idb/lib/intel64 к переменной среды LD_LIBRARY_PATH перед запуском Eclipse.
Ваш путь должен соответствовать вашей конкретной установке ifort.

В конфигурации отладки на вкладке "Debugger," поле "GDB debugger" заменить gdb на iidb.Если вы хотите остановить его при запуске, попробуйте заменить main на MAIN__.

0 голосов
/ 07 ноября 2013

3 года прошло с тех пор, как вопрос был задан, но этот обходной путь будет работать для всех, кто испытывает проблемы с eclipse и idb, особенно в OS X.

Замена gdb на idbc на вкладке Debugger в Eclipse отлично работает в Linux.

Если вы работаете в OS X 10.7+, где нет поддержки компилятора Intel Fortran в eclipse, создайте проект makefile, создайте цель с пользовательским make-файлом, используйте ifort с флагами -g -fpic -Wl,-no_pie (эти флаги необходимы для OS X 10.7+), замените gdb на idb, и в конечном итоге это сработает.

...