Перечислите имена переменных R и их SEXP в глобальном env во время отладки скомпилированного кода C / C ++ (GDB) - PullRequest
2 голосов
/ 10 ноября 2019

Контекст этого вопроса - отладка пакетов R, которые вызывают код C или C ++ (например, через пакет Rcpp или непосредственно с помощью R API) с помощью gdb (или другого) отладчика.

Как мне перечислить имена переменных и найти их SEXP указатели для печати значений переменных в глобальном env для R во время низкоуровневой отладки на уровне C / C ++, используя, например,. GDB в качестве отладчика?

Я использую рабочий процесс, задокументированный в Написание расширений R> Отладка скомпилированного кода

R -d gdb

, в котором упоминается, как печатать SEXP рецензиичерез

(gdb) p R_PV(mySEXPRvar)
(gdb) call Rf_PrintValue(mySEXPRvar)

но как мне перечислить переменные, как это делает команда R ls?

Редактировать 1: В галерее Rcpp есть пример кодакоторый показывает, как программно получить доступ к глобальному env (но я бы предпочел делать это только в отладчике): https://gallery.rcpp.org/articles/accessing-environments/

...