diff options
author | Michael Buch <michaelbuch12@gmail.com> | 2023-01-18 16:42:20 +0000 |
---|---|---|
committer | Michael Buch <michaelbuch12@gmail.com> | 2023-01-18 18:18:52 +0000 |
commit | b4a0b9fab4dcb7b808612b49604709c2aeadf9f8 (patch) | |
tree | 8259212dc50bfea6d929e4c33f817aed9f0c5e56 /lldb/source/Commands/CommandObjectExpression.cpp | |
parent | 0246c5d11c20c6d8c3686bc4cbfc6e8ca3e8bd41 (diff) | |
download | llvm-b4a0b9fab4dcb7b808612b49604709c2aeadf9f8.zip llvm-b4a0b9fab4dcb7b808612b49604709c2aeadf9f8.tar.gz llvm-b4a0b9fab4dcb7b808612b49604709c2aeadf9f8.tar.bz2 |
[lldb][Language] List supported languages in expr error text
Before:
```
(lldb) expr --language abc -- 1 + 1
error: unknown language type: 'abc' for expression
```
After:
```
(lldb) expr --language abc -- 1 + 1
error: unknown language type: 'abc' for expression. List of supported languages:
c++
objective-c++
c++03
c++11
c++14
objc++
```
We choose to only list the languages which `expr` will actually
accept instead of all the language constants defined in `Language.cpp`
since that's what the user will most likely need.
Differential Revision: https://reviews.llvm.org/D142034
Diffstat (limited to 'lldb/source/Commands/CommandObjectExpression.cpp')
-rw-r--r-- | lldb/source/Commands/CommandObjectExpression.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp index 49d4976..9cce009f 100644 --- a/lldb/source/Commands/CommandObjectExpression.cpp +++ b/lldb/source/Commands/CommandObjectExpression.cpp @@ -42,10 +42,15 @@ Status CommandObjectExpression::CommandOptions::SetOptionValue( switch (short_option) { case 'l': language = Language::GetLanguageTypeFromString(option_arg); - if (language == eLanguageTypeUnknown) - error.SetErrorStringWithFormat( - "unknown language type: '%s' for expression", - option_arg.str().c_str()); + if (language == eLanguageTypeUnknown) { + StreamString sstr; + sstr.Printf("unknown language type: '%s' for expression. " + "List of supported languages:\n", + option_arg.str().c_str()); + + Language::PrintSupportedLanguagesForExpressions(sstr, " ", "\n"); + error.SetErrorString(sstr.GetString()); + } break; case 'a': { |