Download

go to download webpage


About hypersrc

hypersrc is an open-source (GNU GPL 2 GUI program for browsing source code. It displays a list of sorted source code tags and a tree view of functions. A programmer can click a tag to hyperlink to its line in a source code file. hypersrc uses Exuberant ctags.

Screenshots

Status & News

Project status: still maintained, development finished

  • [2012/01] Can browse Lua.
  • [2012/01] Added zile as an editor.
  • [2012/01] Fix ancient latent bug trying to run an editor that isn't installed.
  • [2012/01] Fix compiling on GCC 4.7.


  FreeBSD:
hypersrc is maintained as a FreeBSD port (see download page).

 Debian 5,6 / Ubuntu:
apt-get install libglib1.2-dev libgtk1.2-dev libgnome-dev libgnomeui-dev

  Linux Fedora 5, 6:
yum install gnome-libs gtk+ glib gnome-libs-devel gtk+-devel glib-devel


Minimum Requirements

  • A UNIX system with GNU development tools, GTK+/GNOME 1.x.
  • Depends on GTK+ 1.2.x and GNOME 1.x which modern distros categorize
    as obsolete or extra packages (hypersrc begun in 1999).
    GTK+/GNOME 2.x isn't backwards-compatible.

    hypersrc has been run on:

    • FreeBSD:
      4.6 .. 8.0
    • Linux distros (1999...2012):
      Ubuntu, Debian 6
      Fedora Fedora 5
      Red Hat 6.0 ... 8.0
      Mandrake 8.1

  • Exuberant ctags by Darren Hiebert.
  • hypersrc won't work with only GNU ctags, but will if Exuberant ctags is
    also installed somewhere (and if necessary the -ctags arg is passed).
    ctags --version (exctags on FreeBSD) will tell you if it's Exuberant or GNU ctags.

To Install and Run

To compile and install from source code:


tar xfzv hypersrc*tar.gz
cd hypersrc
./configure.sh
make install

To browse C/C++ code, for example, chdir to where your C/C++ source files are, and type:


Hypersrc.pl

For further info, see README.txt, Hypersrc -help, and man hypersrc.

Speeding hypersrc


Hypersrc.pl -fast
Hypersrc.pl -fast -no-functree

To build an optimized executable (but minus assertions & self-checks):


make speed install

Known Problems & Issues

  • Functions are missing in the tree view.

    • Function tree views are supported only for C/C++ source.
    • hypersrc requires the -knr arg to parse K&R style functions.
    • Source code heavily infested with #if directives just won't be parsed correctly.
    • By design, functions (except C++ inline class methods) whose opening braces
      aren't the first char on the line won't be parsed:
      
      int foo ( int a ) {
      }
      
  • To browse everything in a humongous source tree, such as the Linux 2.4 kernel, hypersrc takes a long time to start and lots of memory.

  • Yes. See also section about speeding hypersrc.
    Try passing any of:

    
    -fast
    -no-functree : to skip parsing phase but forfeit tree views of functions
    -descend     : to limit the amount of subdirs to descend
    -max-tags    : to limit the amount of tags to be processed
    -exclude     : to exclude some dirs/files
    

  • hypersrc quits silently while trying to jump to a tag.

  • Upgrade to GTK+ 1.2.8 if you are using an older version. GTK+ 1.2.3 definitely has a bug which hypersrc encounters. Other old versions might have this bug also. If this problem still persists, as a last resort, try deselecting the preference: "Misc / process GTK+ events while busy". However, be advised the program won't redraw itself while it is busy.

  • Sometimes, pressing Enter in a find dialog triggers two searches.

  • Keyboard rate too fast?

  • Cases of mistaken-identity appearing in the "called by" tree:

    • Caller really calls a function in another module.

    • All functions with the same name as a caller will be shown as other callers, even if some don't really call this function.

    Unfortunately, such mistaken-identity problems are inherent in a source code browser, because of the unavailability of compile-time info.

  • Rarely, the scrollbar beside a tree will stop working if the tree tries to show too many nodes/leafs.

Trouble-shooting

To compile hypersrc with GDB support, pedantic checking, and verbose warnings:

 make debug install 

To run hypersrc under gdb:

 Hypersrc.pl -gdb 

Bug Reports

send e|mail

Author only supports FreeBSD, Linux, Mac.

home    send email
© 1999,2012 Jim Brooks
Last modified: Thu May 17 13:17:23 EDT 2012