Scroll to navigation

RDM(7) User Commands RDM(7)


rdm - manual page for rdm 2.38.130


rdm [OPTION]...


RTags is a client/server application that indexes C/C++ code and keeps a persistent file-based database of references, declarations, definitions, symbolnames etc. There's also limited support for ObjC/ObjC++. It allows you to find symbols by name (including nested class and namespace scope). Most importantly we give you proper follow-symbol and find-references support. We also have neat little things like rename-symbol, integration with clang's "fixits" ( We also integrate with flymake using clang's vastly superior errors and warnings. Since RTags constantly will reindex "dirty" files you get live updates of compiler errors and warnings. Since we already know how to compile your sources we have a way to quickly bring up the preprocessed output of the current source file in a buffer.

While existing taggers like gnu global, cscope, etags, ctags etc do a decent job for C they often fall a little bit short for C++. With its incredible lexical complexity, parsing C++ is an incredibly hard task and we make no bones about the fact that the only reason we are able to improve on the current tools is because of clang ( RTags is named RTags in recognition of Roberto Raggi on whose C++ parser we intended to base this project but he assured us clang was the way to go. The name stuck though.


Display this page.
Display version.
Add additional include path to clang.
Don't use the include path from libclang.
Add additional system include path to clang.
Add additional define directive to clang.
Add additional argument to clang.
Log to this file.
File to dump crash log to (default is <datadir>/crash.dump).
Set this environment variable (--setenv "foobar=1").
Don't use -Wall.
Use -Weverything.
Change verbosity, multiple -v's are allowed.
Spawn this many concurrent processes for indexing.
Run this test.
Use this directory for temporary files. Clang generates a lot of these and rtags will periodically clean out this directory. Default is $TMPDIR/rtags/
Timeout for test to complete.
Clear out all data.
Disable signal handler to dump stack for crashes.
No logging to stdout/stderr.
Files to exclude from rdm, default "*/CMakeFiles/*;*/cmake*/Modules/*;*/conftest.c*;/tmp/*;/private/tmp/*;/private/var/*".
Use this file for the server socket (default ~/.rdm).
Use this directory to store persistent data (default $XDG_CACHE_HOME/rtags otherwise ~/.cache/rtags).
Disregard any clang fixit that looks like it's trying to fix format for printf and friends.
Set error limit to argument (-ferror-limit={arg} (default 50).
Block this argument from being passed to clang. E.g. rdm --block-argument -fno-inline
Don't pass -fspell-checking.
Use -Wlarge-by-value-copy=[arg] when invoking clang.
Don't merge source files added with -c.
Don't restore the last current project on startup.
Don't pass -Wno-unknown-warning-option.
Ignore this compiler.
Consider these filenames compiler wrappers (split on ;), default "ccache".
Watch system paths for changes.
Timeout for rp visitfile commands in ms (0 means no timeout) (default 60000).
Timeout for rp indexer-message in ms (0 means no timeout) (default 60000).
Timeout for connection from rp to rdm in ms (0 means no timeout) (default 0).
Number of times rp attempts to connect to rdm before giving up. (default 3).
Nice value to use for rp (nice(2)) (default is no nicing).
Suspend rp in SIGSEGV handler (default off).
Make rp log to syslog.
Start out suspended (no reindexing enabled).
Normally rdm doesn't consider release and debug as different builds. Pass this if you want it to.
Normally rdm doesn't consider -m32 and -m64 as different builds. Pass this if you want it to.

--ignore-include-path-differences-in-usr Don't consider sources that only differ in includepaths within /usr (not including /usr/home/) as different builds.

Max number of crashes before giving up a sourcefile (default 5).
Max number of bytes buffered after EAGAIN.
Number of translation units to cache (default 10).
Don't filter private members and destructors from completions.
Log more info about completions.
Send diagnostics from completion thread.
Keep this many rp daemons alive and cache the last tu. Default to 1
Max recursion depth for header completion (default 3).
Don't strip out -Wpedantic. This can cause problems in certain projects.
Don't strip out -Werror and -Wfatal-errors. By default these are stripped out.
Query compilers for their actual include paths instead of letting clang use its own.
Don't remove -DNDEBUG from compile lines.
Report compilation progress in diagnostics output.
Max files to cache per query (Should not exceed maximum number of open file descriptors allowed per process) (default 500).
Don't use a file system watcher for filemanager.
Don't scan project directory for files. (rc -P won't work).
Disable file locking. Not entirely safe but might improve performance on certain systems.
Enable PCH (experimental).
Disable file system watching altogether. Reindexing has to be triggered manually.
Use arg to transform arguments. [arg] should be executable with (execv(3)).
Don't parse/store doxygen comments.
Time in seconds after which rdm will quit if there's been no activity (N.B., once rdm has quit, something will need to re-run it!).
Run as daemon (detach from terminal).
Log level for log file (default is error), options are: error, warning, debug or verbose-debug.
Only watch source files (not dependencies).
Set debug locations.
Spend some time validating project data on startup.
Listen on this tcp socket (default none).
Path to rp.
Add timestamp to logs.
Flush stderr/stdout after each log.
Create index using relative paths by stripping dir (enables copying of tag index db files without need to reindex).
Poll the database of the current project every <arg> seconds.
Don't use realpath(3) for files
Use this file (instead of ~/.rdmrc).
Don't load any rc files.



January 2020 rdm 2.38.130