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:
Color coded to ease recognition of types, keywords, variables, functions, macros:
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:
Class hierarchies are displayed in two ways:
or as list:
Class inheritance can be shown as well with an inheritance diagram:
Arrow color indicates inheritance type (private, protected, or public).
Functions specifiers and attributes are displayed along with parameters type and return type:
Get fundamental characteristics of types and functions directly.
- for types:
- for functions:
Template specializations and template arguments are displayed along with references:
Partial specialization are displayed likewise.
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:
Likewise, other filters exist: type:, variable:, macro:, file: as well as more specialized ones: derived: for inherited classes, include: for include files, etc.
As soon as terms are entered in the search input widget, matching entries are looked up and displayed in the search combo box for fast access:
Full Text Search
A full-text search index is built with all files in the configured directory, allowing any search term to be looked for (even for files that are not parsed). For example, a search term can be found in the documentation or in possible scripts in the source code tree).
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:
Constants Defined by Macros Display
If a macro is defined to a constant, its value is displayed:
The list of functions calling a function as well as functions called by this function are displayed:
Callers can be shown as well with call graphs:
Classes inheriting a given class:
Functions Overridden By Inherited Classes
Noncompiled Files Indexation
All files found within the file tree will be added to the full text search index to allow lookup.
A list of functions and types defined within the files are directly accessible in the navigation bar:
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:
If a refined search does not return any result, an approximate lookup is performed and matching entries are displayed: