Невозможно использовать GDB с приложением hdf5 c ++

Я пытаюсь использовать GDB для отладки написанного мною приложения C ++ hdf5. Пакет h5, который я использую, был установлен с помощью conda. Команда, которую я использую:

h5c++ hdf5.cpp

Это создает исполняемый файл, который я затем запускаю с помощью gdb следующим образом:

gdb a.out

GDB запускается хорошо. Но когда я добавляю точку останова, используя:

b 10

или любой номер строки, это дает сообщение: Нет строки 10 в файле «init.c»
Когда я нажимаю run, он запускает всю программу одновременно (что мне не нужно) и завершает работу. Команда h5c ++ -show дает следующий вывод:

x86_64-conda_cos6-linux-gnu-c++ -I/i3c/hpcl/sms821/software/tensorflow/anaconda2/include -D_FORTIFY_SOURCE=2 -O2 -g -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -pipe -I/i3c/hpcl/sms821/software/tensorflow/anaconda2/include -fdebug-prefix-map==/usr/local/src/conda/- -fdebug-prefix-map==/usr/local/src/conda-prefix -L/i3c/hpcl/sms821/software/tensorflow/anaconda2/lib /i3c/hpcl/sms821/software/tensorflow/anaconda2/lib/libhdf5_hl_cpp.a /i3c/hpcl/sms821/software/tensorflow/anaconda2/lib/libhdf5_cpp.a /i3c/hpcl/sms821/software/tensorflow/anaconda2/lib/libhdf5_hl.a /i3c/hpcl/sms821/software/tensorflow/anaconda2/lib/libhdf5.a -L/i3c/hpcl/sms821/software/tensorflow/anaconda2/lib -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-rpath,/i3c/hpcl/sms821/software/tensorflow/anaconda2/lib -L/i3c/hpcl/sms821/software/tensorflow/anaconda2/lib -g -lrt -lpthread -lz -ldl -lm -Wl,-rpath -Wl,/i3c/hpcl/sms821/software/tensorflow/anaconda2/lib

Я думаю, что это связано с компилятором компилятором, который он использует. Я попытался заменить x86_64-conda_cos6-linux-gnu-c ++ моим собственным компилятором g ++ в скрипте h5c ++, но это дает ошибку компоновщика.
Подскажите, пожалуйста, как заставить мое приложение h5 работать с GDB. Должен ли я установить hdf5 из исходного кода, поскольку у меня нет доступа sudo? Я работаю на машине с Linux.

0

Решение

Я просто установил hdf5 из исходных файлов. При настройке установки я включил --enable-build-mode а также --enable-symbol переключатели. Hdf5 зависит от szip, который я также установил из исходного кода. Моя точная конфигурация была следующей:

    ./configure --prefix=<hdf5 install directory> --enable-cxx --enable-build-mode=debug --enable-symbols=yes --enable-profiling=yes --with-szlib=<szip install directory>

Приведенное выше решение сработало, и я смог скомпилировать свое приложение h5, используя h5c++ hdf5.cpp а также использовать GDB для его отладки.

0

Другие решения

Других решений пока нет …