aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectExpression.cpp
diff options
context:
space:
mode:
authorMichael Buch <michaelbuch12@gmail.com>2023-01-18 16:42:20 +0000
committerMichael Buch <michaelbuch12@gmail.com>2023-01-18 18:18:52 +0000
commitb4a0b9fab4dcb7b808612b49604709c2aeadf9f8 (patch)
tree8259212dc50bfea6d929e4c33f817aed9f0c5e56 /lldb/source/Commands/CommandObjectExpression.cpp
parent0246c5d11c20c6d8c3686bc4cbfc6e8ca3e8bd41 (diff)
downloadllvm-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.cpp13
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': {