Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><a href="http://cscope.sourceforge.net/" rel="nofollow"><code>cscope</code></a> is one of my favorite tools for understanding C code but it may not translate well to the Windows world.</p> <p><a href="http://ctags.sourceforge.net/" rel="nofollow">exuberant <code>ctags</code></a> is an excellent tool for finding definitions in dozens of languages. Most reasonable programming editors provide some interface for calling into <code>ctags</code> for definition information. (<code>vim</code>, for example, allows you to use <code>^]</code> to find a definition of a symbol and <code>^T</code> to pop back up the definition stack.) You build a database using <code>ctags -R .</code> and look up definitions using your editor. (For example, <code>vim -t foo</code> will look up the <code>foo</code> tag in the <code>ctags</code> database and jump to that file and line.)</p> <p>The <a href="http://www.gnu.org/software/idutils/" rel="nofollow">GNU <code>idutils</code></a> package provides some nice utilities similar to <code>ctags</code> for finding <em>uses</em> of symbols in a variety of languages. Integration isn't as good in most editors as <code>ctags</code> or <code>cscope</code> but it might be easier for <em>you</em> to write tools. You build the database with <code>mkid .</code> and look up symbols with <code>gid foo</code> or <code>lid foo</code> or similar lookups.</p> <p>I find the three tools provide different enough functionality that I use all three commonly. <code>ctags</code> makes hunting through source in <code>vim</code> extremely quick, <code>cscope</code> can help find callers and callees, and <code>gid</code> (especially <code>gid -s ...</code>) is good for just getting some hints on complex situations that the other tools don't just have solved. (Neither <code>ctags</code> nor <code>cscope</code> understands <a href="http://gcc.gnu.org/onlinedocs/cpp/Concatenation.html" rel="nofollow">token pasting</a> well, but <code>gid -s</code> lets me approximate a solution myself.)</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload