diff options
Diffstat (limited to 'lldb/source/Core/Debugger.cpp')
-rw-r--r-- | lldb/source/Core/Debugger.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp index 494b762e872..2b8e822c4a2 100644 --- a/lldb/source/Core/Debugger.cpp +++ b/lldb/source/Core/Debugger.cpp @@ -1806,6 +1806,28 @@ Debugger::RunREPL (LanguageType language, const char *repl_options) Error err; FileSpec repl_executable; + if (language == eLanguageTypeUnknown) + { + std::set<LanguageType> repl_languages; + + Language::GetLanguagesSupportingREPLs(repl_languages); + + if (repl_languages.size() == 1) + { + language = *repl_languages.begin(); + } + else if (repl_languages.size() == 0) + { + err.SetErrorStringWithFormat("LLDB isn't configured with support support for any REPLs."); + return err; + } + else + { + err.SetErrorStringWithFormat("Multiple possible REPL languages. Please specify a language."); + return err; + } + } + Target *const target = nullptr; // passing in an empty target means the REPL must create one REPLSP repl_sp(REPL::Create(err, language, this, target, repl_options)); |