[lldb] Add support for a "global" lldbinit file
authorPavel Labath <pavel@labath.sk>
Tue, 15 Feb 2022 12:28:34 +0000 (13:28 +0100)
committerPavel Labath <pavel@labath.sk>
Fri, 18 Feb 2022 11:30:22 +0000 (12:30 +0100)
commit6c99a3469d9c0a48fb2a9fec845d284ef39338ee
treeb1e96bbcb832da178538c54e6724f852057926fe
parentde2c0a2e6139e621d5781b3bb1e14c52ac81cf87
[lldb] Add support for a "global" lldbinit file

This patch adds introduces a new kind of an lldbinit file. Unlike the
lldbinit in the home directory (useful for customizing lldb to the needs
of a particular user), or the cwd lldbinit file (useful for
project-specific settings), this file can be used to customize an entire
lldb installation to a particular environment.

The feature is enabled at build time, by setting the
LLDB_GLOBAL_INIT_DIRECTORY variable to a path to a directory which
should contain an "lldbinit" file. Lldb will then load the file at
startup, if it exists, and if automatic init loading has not been
disabled. Relative paths will be resolved (at runtime) relative to the
location of the lldb library (liblldb or LLDB.framework).

The system-wide lldbinit file will be loaded first, before any
$HOME/.lldbinit and $CWD/.lldbinit files are processed, so that those
can override any system-wide settings.

More information can be found on the RFC thread at
<https://discourse.llvm.org/t/rfc-system-wide-lldbinit/59933>.

Differential Revision: https://reviews.llvm.org/D119831
lldb/cmake/modules/LLDBConfig.cmake
lldb/include/lldb/API/SBCommandInterpreter.h
lldb/include/lldb/Host/Config.h.cmake
lldb/include/lldb/Interpreter/CommandInterpreter.h
lldb/source/API/SBCommandInterpreter.cpp
lldb/source/API/SBDebugger.cpp
lldb/source/Interpreter/CommandInterpreter.cpp
lldb/tools/driver/Driver.cpp