Как заставить cscope отображать полные пути к файлам во время поиска
Когда я ищу символ C или глобальное определение, используя cscope
, он отображает имена файлов и номера строк. Я хотел бы видеть полные пути к файлам, чтобы я мог перейти к файлу, специфичному для моей арки. Например, при поиске глобального определения __switch_to
на cscope
Основываясь на кодовой базе Linux, я получаю:
Global definition: __switch_to
File Line
0 process.c 297 struct task_struct *__switch_to(struct task_struct *prev,
1 switch_to.h 44 #define __switch_to(prev,next,last) do { \
2 process.c 202 struct task_struct *__switch_to(struct task_struct *old,
3 process.c 400 struct task_struct *__switch_to(struct task_struct *prev,
4 process_32.c 211 __switch_to(struct task_struct *prev, struct task_struct *next)
5 process.c 80 void *__switch_to(struct task_struct *from, struct task_struct *to)
6 process_32.c 248 __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
7 process_64.c 272 __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
Теперь файл process.c
отличается для каждого arch
, Как сделать cscope
отобразить полные пути к файлам?
1 ответ
Решение
Запустите cscope с аргументами -pn
-pn Показать последние n компонентов пути к файлу вместо значения по умолчанию (1). Используйте 0, чтобы вообще не отображать имя файла.
Запуск с помощью cscope -p4 и поиск глобального определения __switch_to приводит к
Global definition: __switch_to
File Line
0 arch/arm64/kernel/process.c 297 struct task_struct *__switch_to(struct task_struct *prev,
1 ia64/include/asm/switch_to.h 44 #define __switch_to(prev,next,last) do { \
2 arch/openrisc/kernel/process.c 202 struct task_struct *__switch_to(struct task_struct *old,
3 arch/powerpc/kernel/process.c 400 struct task_struct *__switch_to(struct task_struct *prev,
4 arch/sh/kernel/process_32.c 211 __switch_to(struct task_struct *prev, struct task_struct *next)
5 arch/um/kernel/process.c 80 void *__switch_to(struct task_struct *from, struct task_struct *to)
6 arch/x86/kernel/process_32.c 248 __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
7 arch/x86/kernel/process_64.c 272 __switch_to(struct task_struct *prev_p, struct task_struct *next_p)