summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/OptionValueArray.cpp
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2018-10-26 00:00:17 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2018-10-26 00:00:17 +0000
commitb76e25a26d37e99ade8c686bf5d6a48d3d20e46d (patch)
treeafbfdea197e064fe50562a021fb62ec3915ade8a /lldb/source/Interpreter/OptionValueArray.cpp
parent24faf859e52b5d06068c3696ca1c89c09ffa2698 (diff)
downloadbcm5719-llvm-b76e25a26d37e99ade8c686bf5d6a48d3d20e46d.tar.gz
bcm5719-llvm-b76e25a26d37e99ade8c686bf5d6a48d3d20e46d.zip
Add functionality to export settings
For the reproducer feature I need to be able to export and import the current LLDB configuration. To realize this I've extended the existing functionality to print settings. With the help of a new formatting option, we can now write the settings and their values to a file structured as regular commands. Concretely the functionality works as follows: (lldb) settings export -f /path/to/file This file contains a bunch of settings set commands, followed by the setting's name and value. ... settings set use-external-editor false settings set use-color true settings set auto-one-line-summaries true settings set auto-indent true ... You can import the settings again by either sourcing the file or using the settings read command. (lldb) settings read -f /path/to/file Differential revision: https://reviews.llvm.org/D52651 llvm-svn: 345346
Diffstat (limited to 'lldb/source/Interpreter/OptionValueArray.cpp')
-rw-r--r--lldb/source/Interpreter/OptionValueArray.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/lldb/source/Interpreter/OptionValueArray.cpp b/lldb/source/Interpreter/OptionValueArray.cpp
index d3fd1cb5db4..3a4e2c4f897 100644
--- a/lldb/source/Interpreter/OptionValueArray.cpp
+++ b/lldb/source/Interpreter/OptionValueArray.cpp
@@ -31,13 +31,17 @@ void OptionValueArray::DumpValue(const ExecutionContext *exe_ctx, Stream &strm,
strm.Printf("(%s)", GetTypeAsCString());
}
if (dump_mask & eDumpOptionValue) {
- if (dump_mask & eDumpOptionType)
- strm.Printf(" =%s", (m_values.size() > 0) ? "\n" : "");
- strm.IndentMore();
+ const bool one_line = dump_mask & eDumpOptionCommand;
const uint32_t size = m_values.size();
+ if (dump_mask & eDumpOptionType)
+ strm.Printf(" =%s", (m_values.size() > 0 && !one_line) ? "\n" : "");
+ if (!one_line)
+ strm.IndentMore();
for (uint32_t i = 0; i < size; ++i) {
- strm.Indent();
- strm.Printf("[%u]: ", i);
+ if (!one_line) {
+ strm.Indent();
+ strm.Printf("[%u]: ", i);
+ }
const uint32_t extra_dump_options = m_raw_value_dump ? eDumpOptionRaw : 0;
switch (array_element_type) {
default:
@@ -63,10 +67,16 @@ void OptionValueArray::DumpValue(const ExecutionContext *exe_ctx, Stream &strm,
extra_dump_options);
break;
}
- if (i < (size - 1))
- strm.EOL();
+
+ if (!one_line) {
+ if (i < (size - 1))
+ strm.EOL();
+ } else {
+ strm << ' ';
+ }
}
- strm.IndentLess();
+ if (!one_line)
+ strm.IndentLess();
}
}
OpenPOWER on IntegriCloud