================
@@ -8,21 +8,71 @@
#include "CommandObjectVersion.h"
+#include "lldb/Core/Debugger.h"
#include "lldb/Interpreter/CommandReturnObject.h"
#include "lldb/Version/Version.h"
using namespace lldb;
using namespace lldb_private;
-// CommandObjectVersion
+#define LLDB_OPTIONS_version
+#include "CommandOptions.inc"
+
+llvm::ArrayRef<OptionDefinition>
+CommandObjectVersion::CommandOptions::GetDefinitions() {
+ return llvm::ArrayRef(g_version_options);
+}
CommandObjectVersion::CommandObjectVersion(CommandInterpreter &interpreter)
: CommandObjectParsed(interpreter, "version",
"Show the LLDB debugger version.", "version") {}
CommandObjectVersion::~CommandObjectVersion() = default;
+// Dump the array values on a single line.
+static void dump(const StructuredData::Array &array, Stream &s) {
+ s << '[';
+
+ bool add_separator = false;
+ array.ForEach([&](StructuredData::Object *object) -> bool {
+ if (add_separator)
+ s << ", ";
+ s << object->GetStringValue();
+ add_separator = true;
+ return true;
+ });
+
+ s << ']';
+}
+
+// The default dump output is too verbose.
+static void dump(const StructuredData::Dictionary &config, Stream &s) {
+ config.ForEach(
+ [&](llvm::StringRef key, StructuredData::Object *object) -> bool {
+ assert(object);
+
+ StructuredData::Dictionary *value_dict = object->GetAsDictionary();
+ assert(value_dict);
+
+ StructuredData::ObjectSP value_sp =
value_dict->GetValueForKey("value");
+ assert(value_sp);
+
+ s << " " << key << ": ";
+ if (StructuredData::Boolean *boolean = value_sp->GetAsBoolean())
+ s << (boolean ? "yes" : "no");
----------------
DavidSpickett wrote:
Clang's `--version` appears to only print things you have enabled, which would
be confusing for our XML use case for example.
https://github.com/llvm/llvm-project/pull/170772
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits