Переход для функционирования определения в энергии

Сбой R произошел из-за ошибки сегментации, т. Е. Вы пытались получить доступ к памяти, к которой у вас нет доступа. Обычно это происходит, когда вы пытаетесь получить доступ к элементу n+1 вектора, который имеет только элементы n, или когда вы плохо используете указатели. Чтобы определить неочевидный сегмент (но не только), я всегда использую Valgrind. Напишите минимальный код R, который генерирует segfault. Затем запустите его из терминала.

R -d "valgrind --tool=memcheck --leak-check=full" --vanilla -f test.R

Для установки valgrind в GNU / Linux sudo apt-get install valgrind. Valgrind не существует в Windows.

221
задан pyrrhic 14 September 2017 в 22:19
поделиться

5 ответов

Используйте ctags. Генерируйте файл тегов и скажите энергию, где она использует: команда тегов. Тогда можно просто перейти к функциональному определению с помощью Ctrl - ]

, Там больше приемов тегов и подсказок в этот вопрос .

193
ответ дан Community 23 November 2019 в 04:05
поделиться

Если все содержится в одном файле, существует команда gd (как в 'goto определение'), который возьмет Вас к первому вхождению в файле слова под курсором, который часто является определением.

125
ответ дан Scottie T 23 November 2019 в 04:05
поделиться

Поскольку Paul Tomblin упомянул, что необходимо использовать ctags. Вы могли также рассмотреть использование , плагины для выбора адаптируют один или предварительно просматривать определение функции под курсором. Без плагинов Вы будете страдать от головной боли, пытающейся выбрать одну из сотен перегруженных 'doAction' методов, как создано в поддержке ctags, не берет в учетной записи контекст - просто имя.

Также можно использовать , cscope и его 'находит глобальный символ' функцией. Но Ваша энергия должна быть скомпилирована с поддержкой +cscope, которая не является значением по умолчанию одна опция сборки.

, Если Вы знаете, что функция определяется в текущем файле, можно использовать нажатия клавиш 'gD' в нормальном режиме для перехода к определению символа под курсором.

Вот наиболее загруженный плагин для навигации
, http://www.vim.org/scripts/script.php?script_id=273

Вот является тем, который я записал для выбора контекста в то время как переход для меток
http://www.vim.org/scripts/script.php?script_id=2507

14
ответ дан Mykola Golubyev 23 November 2019 в 04:05
поделиться

Другая общая техника состоит в том, чтобы поместить имя функции в первый столбец. Это позволяет определению быть найденным с простым поиском.

int
main(int argc, char *argv[])
{
    ...
}

вышеупомянутая функция могла тогда быть найдена с /^main внутренняя часть файл или с :grep -r '^main' *.c в каталоге. Пока код правильно форматируется единственное время, идентификатор произойдет в начале строки, в функциональном определении.

, Конечно, если Вы не используете ctags с этого момента, необходимо стыдиться себя! Однако я нахожу этот стандарт кодирования полезным дополнением также.

12
ответ дан Judge Maygarden 23 November 2019 в 04:05
поделиться

К ответу второго Paul: да, ctags (особенно избыточный-ctags ( http://ctags.sourceforge.net/ )) является большим. Я также добавил это к своему vimrc, таким образом, я могу использовать, каждый отмечает файл для всего проекта:

set tags=tags;/
6
ответ дан David Wolever 23 November 2019 в 04:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: