Как я могу отобразить все имя функции из базы данных cscope?

Я пытаюсь найти способ сбросить ВСЕ имя функции и ее путь из cscope базы данных. Есть ли способ сделать это из CLI cscope?

Примечание: исходный код cscope доступен для скачивания.

Ответы

Ответ 1

Попробуйте следующее:

cscope -R -L -2 ".*" | awk -F ' ' '{print $2 "#" $1}' | sort | uniq
  • Команда cscope -R -L -2 ".*" выведет функции, вызываемые любая функция (см. пояснение ниже). Для каждой найденной ссылки cscope выводит строку, состоящую из имени файла, имени функции, номера строки и текста строки, разделенных пробелами.
  • Используйте awk для извлечения имени функции $2 и имени файла $1, разделенного #. Измените $2, $1 и разделитель #, если вам нужны другие выходные поля или разделитель.
  • Сортировка вывода с помощью sort.
  • Получить уникальные элементы с помощью uniq.

cscope (см. http://cscope.sourceforge.net/cscope_man_page.html):

  • -R Восстановить подкаталоги для исходных файлов.

  • -L Сделайте один поиск с линейно-ориентированным выходом при использовании с -num шаблон.

  • -2 ".*" Перейдите в поле ввода num (здесь поле 0) и найдите pattern (здесь .* для всех). Вы можете видеть поля ввода в режиме экрана cscope. Это может зависеть от версии, которую вы используете. Поля для версии 15.8a под debian:

    • 0: Найдите этот символ C:
    • 1: Найдите это глобальное определение:
    • 2: Найти функции, вызываемые этой функцией:
    • 3: Найти функции, вызывающие эту функцию:
    • 4: найдите эту текстовую строку:
    • 5: измените эту текстовую строку:
    • 6: Найдите этот шаблон egrep:
    • 7: Найти этот файл:
    • 8: Найти файлы # включая этот файл: