tags:

views:

93

answers:

2
+1  Q: 

How to use cscope?

I am using cscope to get familiar with all the keywords used in socket programming. I went to the directory with c files. I used cscope. and then I searched for AF_INET. I got this :

#define AF_FILE         PF_FILE
#define AF_INET         PF_INET
#define AF_AX25         PF_AX25

This was a full page. I only published part of it. Now I want to know from where this PF_INET is coming? what command I should use. I have seen a guy to double click on PF_INEt and using some command to find it. I don't know what the command is? Kindly help me in this.

The second thing is when i quit the page with :q command. I come to this page :

Global definition: AF_INET

  File     Line
0 socket.h 119 #define AF_INET PF_INET










Find this C symbol:
Find this global definition:
Find functions called by this function:
Find functions calling this function:
Find this text string:
Change this text string:
Find this egrep pattern:
Find this file:
Find files #including this file:

here the cursor is blinking at 0. If I want to search again something, how I will do? How to navigate from here. I tried to google it but unable to understand anything from the tutoials. Please help me in this regard as I am complete noob to linux operating system and c programming. Thanks in advance.

+1  A: 

I agree that cscope documentation is not very clear.

Use tab to move to the interactive part. Type your symbol name in “find this C symbol” or “Find this egrep pattern” and validate pressing RETURN.

If you want to call it from vim, type :help if_cscop.txt; hoping it helps!

:cscope add your_cscope_database
:cscope find s [your_symbol]

This will make a new quickfix list. use :cn and :cp to navigate, :cnf and :cpf to navigate from file to file in the results, and :colder and :cnewer to restore previous quickfix lists.

Benoit
Thanks a lot buddy. I got the answer for my second question. but can you tell me how to directly search that word as I mentioned in my question, double click on the word and give a command to find that word. What that command is?
in Vim? Do not double-click. Put your cursor on that word, and type :cscope find s <CTRL-R><CTRL-W><enter>. You can remap it with :noremap <F3> :cscope find s <C-r><c-w><cr> (this will map F3 to it).
Benoit
A: 

To exit from cscope interactive prompt, type Ctrl-d. If you just want to rebuild cscope's database, and not invoke cscope's interactive prompt, pass it the -b option. I usually invoke cscope as cscope -bcqR.

As for jumping around in vim using cscope, it really depends on your vim config.

Most probably, jump to tag (Ctrl-]) will use cscope first, then ctags (see :help cst and :help csto). Use Ctrl-T to go back.

There are some useful mappings for cscope that you can find by typing :help cscope-suggestions in vim. After adding those mappings to your .vimrc, you will be able to jump to symbols using Ctrl-_ s, the calling function using Ctrl-_ c, etc...

You can access vim's cscope documentation by typing :help cscope.

ninjalj