C/C++ Cross-Reference Tool

SourceXR is much more than just a C/C++ source code browser and navigator.

Check out these major features of SourceXR:

Syntax Highlighting

Color coded to ease recognition of types, keywords, variables, functions, macros:

Source Code Syntax Highlighting

Intuitive Navigation

File path is written in parts, allowing fast jumps to each individual part:

File Navigation

Header and source file are referenced similarly to switch easily between them:

Header and Source File Display

Cross References

Cross-references between projects are shown, and help identify parts of source code with dependencies.

In the example below, the macro references are displayed for all the file systems source trees of the Linux kernel:

Project Cross-references

Class Hierarchy

Class hierarchies are displayed in two ways:

  • as tree:

    Class Hierarchies as Tree
  • or as list:

    Class Hierachies as List

Inheritance Diagrams

Class inheritance can be shown as well with an inheritance diagram:

Class Inheritance Diagram

Arrow color indicates inheritance type (private, protected, or public).

Function Information

Functions specifiers and attributes are displayed along with parameters type and return type:

Function Specifiers and Attributes Display

Semantic Information

Get fundamental characteristics of types and functions directly.

  • for types:
Fundamental Types Characteristics
  • for functions:
Fundamental Functions Characteristics

Template Instantiations

Template specializations and template arguments are displayed along with references:

Template Specializations Display

Partial specialization are displayed likewise.

Filtered Searches

Searches can be filtered using a keyword followed by a colon; for example, to look for functions only, enter function: printf in the search bar:

Filtered Function Search

Likewise, other filters exist: type:, variable:, macro:, file: as well as more specialized ones: derived: for inherited classes, include: for include files, etc.

Types, Variables and Functions Defined by Macros

Types, variables and functions defined by macros are identified and point of definition is displayed in the item information. For example, here is the display of a macro defined variable:

Macro-defined Variables Display

Constants Defined by Macros Display

If a macro is defined to a constant, its value is displayed:

Macro-defined Constants Display


The list of functions calling a function as well as functions called by this function are displayed:

Function Callers Display

Call Graphs

Callers can be shown as well with call graphs:

Function Call Graph

Inherited Classes

Classes inheriting a given class:

Inheriting Classes Display

Functions Overridden By Inherited Classes

Overriden Functions Display

Noncompiled Files Indexation

All files found within the file tree will be added to the full text search index to allow lookup.

File Summary

A list of functions and types defined within the files are directly accessible in the navigation bar:

File Outline Display

Ambiguity Display

If several possibilities exist at a given file location, a specific display is used to show the ambiguity. This is the case, for example, of a using: statement declaration as shown below:

Ambiguous Source Location Display

Approximate Lookup

If a refined search does not return any result, an approximate lookup is performed and matching entries are displayed:

Approximate Lookup