Как добавить точку останова для отладки моего пакета R без перекомпиляции - PullRequest
0 голосов
/ 11 мая 2018

Когда я разрабатываю пакет R, я в конце концов делаю следующее:

  1. загружаю последнюю сборку
  2. использую ее
  3. осознаю, что, скажем, есть ошибкафункция 'f_bug'
  4. попытка отладки

Было бы легко, если бы я мог просто "повторно набрать" f_bug и что была бы выбрана новая исходная версия (I 'd пересобрать пакет, чтобы очистить последний).

Но я не могу этого сделать, похоже, package::f_bug всегда «выбирается» по умолчанию при вызове из другой функции пакета.

Могу ли я сделатьтакая вещь?

1 Ответ

0 голосов
/ 11 мая 2018

Вы не можете использовать удобные графические точки останова RStudio, но вы можете сделать то же самое, используя trace:

trace(package::f_bug, browser, at = insertion_point)

Здесь insertion_point относится не к номерам строк, а к вектору подшагов. От ?trace:

посмотрите на ‘as.list (body (f))’, чтобы получить числа связанный с шагами в функции ‘f’.

Другой вариант может заключаться в использовании utils::setBreakpoint, который принимает имя файла и номер строки в качестве аргумента. Подробности см. В файле справки.

...