cscope — утилита, предназначенная для навигации по исходному коду. Используется для поиска в исходном коде функций, объявлений, определений и регулярных выражений по заданной строке текста.
cscope | |
---|---|
Тип | инструмент навигации по исходному коду |
Написана на | Си[1] |
Операционные системы | Unix-подобные операционные системы, Microsoft Windows |
Последняя версия | 15.9 (24 июля 2018) |
Лицензия | Лицензия BSD |
Сайт | cscope.sourceforge.net |
Хотя история этой программы начинается во времена PDP-11[1], она до сих пор применяется разработчиками, привыкшими к использованию редактора vi или vim, а также теми разработчиками, которые предпочитают использовать редакторы с текстовым интерфейсом вместо графического. Большая часть функциональности cscope перенесена в современные редакторы с графическим интерфейсом.
Cscope применяется в два этапа. Сначала разработчик создает базу данных cscope. Разработчик может часто использовать find
или другую утилиту Unix для получения списка имен файлов, нужных для индексации, в файле cscope.files
. Затем разработчик строит базу данных при помощи команды cscope -b -q -k
. На втором этапе, разработчик может искать внутри этих файлов при помощи команды cscope -d
. Иногда индексацию требуется обновлять, если в файлы были внесены какие-либо изменения.
В разработке программного обеспечения cscope часто является весьма полезной благодаря возможности поиска вызовов функций, так как иногда это единственный способ понять, как работает данный код и что ожидают от функции остальные части программы. cscope может находить вызовы функций, но она не является компилятором и поэтому производит простой поиск в тексте по ключевым словам. Это вызывает некоторые неудобства, связанные с тем, что макросы и повторяющиеся символьные имена могут создавать весьма запутанный граф. Другие программы способны извлекать эту информацию проверкой исходного кода [2] или просмотром сгенерированных объектных файлов [3].
cscope часто используется для поиска содержимого внутри программных файлов, написанных на языках программирования Си/C++, но она также может быть использована и для файлов, написанных на других языках, например, Java, Python, PHP и Perl.
cscope является свободной программой и доступна под лицензией BSD.
Первоначальным разработчиком cscope является Джо Стеффен.