当我使用cscope搜索C符号或全局定义时,它会显示文件名和行号.我想看到完整的文件路径,以便我可以跳转到我的arch特定文件.例如,在
Linux代码库上的cscope build上搜索__switch_to的全局定义时,我得到:
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)
现在,每个arch的文件process.c都不同.如何让cscope显示完整的文件路径?
解决方法
使用args -pn运行cscope
-pn Display the last n file path components instead of the default (1). Use 0 not to display the file name at all.
使用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,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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。