2012-12-18 15 views
7

Quando cerco un simbolo C o una definizione globale utilizzando cscope, vengono visualizzati i nomi file e i numeri di riga. Mi piacerebbe vedere i percorsi di file completi in modo che io possa passare al mio file specifico per l'arco. Ad esempio, durante la ricerca di definizione globale di __switch_to su cscope generazione su Linux il codice-base, ottengo:Come rendere Cscope visualizzare percorsi di file completi durante la ricerca

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) 

Ora, il file process.c è diverso per ogni arch. Come rendere cscope visualizzare i percorsi di file completi?

risposta

6

Run cscope con args pn

pn visualizzare gli ultimi componenti del percorso di file n al posto del default (1). Utilizzare 0 per non visualizzare affatto il nome del file.

Running with cscope -P4 e la ricerca per la definizione globale di risultati __switch_to in

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)