"SilentBob" is a tool to help a programmer/team manager to digest and comprehend either a simple program or a big source code tree based on the source code by presenting the code in a searcheable and tagged way. It helps to speed up the learning curve and to make it more convenient to get hands on a code from somebody, or also is convenient to browse your own projects. It includes functionality from such tools as: ctags, cscope and ctree, but it is faster than any of them, and is offering the features in one package. In some way it can be viewed as a superset of ctags, cscope and ctree.

Description of programs, which lead to SilentBob creation:

  1. ctags

    If you don't know what it does: It simply creates special file named tags (or ctags), which stores information about some source files. Mostly it is used to browse large source projects like: OS kernels, sendmail, apache and other big projects. This file contains "Addresses" of all functions, structures, macros, etc. "Address" means file name + string number (or regular expression, using which an appropriate string can be located). The tags file, in Vim for example, can be used to evaluate ":tag " to make a quick jump to the tag. Also ctags allows to extract other "goodies" from files - simply to find out more about their contents.

  2. csope

    Also a very useful program. It doesn't create a file described above, but can perform lookups and has some additional features. It has:

    1. An interface for "comfortable" search.
    2. Trace which of the called functions were called and whom do they call ("lower" layer)
    3. Trace who called certain functions ("upper" layer)
    And some other feature(s), which I have never used...

  3. ctree

    In theory, it should have shown all of the above information and several layers "lower". But in practice, I couldn't make it work.

Problems of existing software