В Visual Studio мы можем использовать «присоединить к процессу» для отладки библиотек DLL.
Есть ли способ отладки кода C / C ++ пакета R в Eclipse / StatET (т.е. что-то вроде этот пример отладки внешнего кода, связанного с Scilab)?
Следующие шаги работают для Eclipse-CDT C / C ++ (LUNA).
$./configure --enable-R-shlib --with-valgrind-instrumentation=2 --with-system-valgrind-headers --CFLAGS='-g -O0 -fPIC' FFLAGS='-g -O0 -fPIC' CXXFLAGS='-g -O0 -fPIC' FCFLAGS='-g -O0 -fPIC'
$make
$sudo make install
Это установит R под /usr/local/lib/R
,
Примечание: -g и -O необходимы для добавления символов отладки и обеспечения того, чтобы оптимизация компилятора не препятствовала отладке.
Установите правильную структуру каталогов для R-пакета с исходным кодом на языке C. Используйте make-файл, а не полагайтесь на Eclipse-StatET для построения проекта. Делает настройки более легко переносимыми для Windows.
R CMD установить из командной строки или с помощью Makefile установит пакет в локальную R библиотеку пользователя.
Под Eclipse (Luna) создайте «Новую конфигурацию отладки» в приложении C / C ++.
На вкладке «Главная»:
а. выберите приложение C / C ++:
/usr/local/lib/R/bin/exec/R
б. Проект может указывать на проект R-пакета.
с. Отметьте «Подключить процесс ввода & вывод на терминал «.
--slave --vanilla --no-save
а. LD_LIBRARY_PATH: / use / local / lib / R / lib
б. R_HOME / usr / local / lib / R
Выберите «Добавить среду к собственной среде»
а. Pick GDB отладчик gdb
б. Если «набор команд GDB» не отображается как опция, нажмите «Выбрать другой …» в самом низу. Выберите «Legacy Create Process Launcher». При этом теперь будут отображаться параметры выбора набора команд GDB: Pick Standard с протоколом mi
,
а. Добавить абсолютный путь к каталогу R с источником R (необязательно) ~ / Downloads / R
б. Добавьте абсолютный путь к каталогу пакета src и любым другим зависимым библиотекам.
Вы должны запустить R первым. Затем вы должны запустить пакет и присоединить его к процессу R (отладочная конфигурация> C / C ++ присоединить к приложению). И R, и Eclipse должны быть запущены от имени пользователя root.
Общая библиотека должна быть адресом … dll или … so, который является библиотекой пакета R.
Примечание 1: Вы должны настроить eclipse для компиляции пакета R.