Контекст этого вопроса - отладка пакетов 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/