summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/FormatClasses.cpp
diff options
context:
space:
mode:
authorEnrico Granata <granata.enrico@gmail.com>2012-02-02 23:34:52 +0000
committerEnrico Granata <granata.enrico@gmail.com>2012-02-02 23:34:52 +0000
commita6a60d0d87192d1cd99e46664c00e8e1d8d21da3 (patch)
treea68c05857e652796984fad930d2af47063d444c4 /lldb/source/Core/FormatClasses.cpp
parente30365bfc28be0ab425ab1dc24a6fd726b796abb (diff)
downloadbcm5719-llvm-a6a60d0d87192d1cd99e46664c00e8e1d8d21da3.tar.gz
bcm5719-llvm-a6a60d0d87192d1cd99e46664c00e8e1d8d21da3.zip
Added a new --omit-names (-O, uppercase letter o) option to "type summary add".
When used in conjunction with --inline-children, this option will cause the names of the values to be omitted from the output. This can be beneficial in cases such as vFloat, where it will compact the representation from ([0]=1,[1]=2,[2]=3,[3]=4) to (1, 2, 3, 4). Added a test case to check that the new option works correctly. Also took some time to revisit SummaryFormat and related classes and tweak them for added readability and maintainability. Finally, added a new class name to which the std::string summary should be applied. llvm-svn: 149644
Diffstat (limited to 'lldb/source/Core/FormatClasses.cpp')
-rw-r--r--lldb/source/Core/FormatClasses.cpp80
1 files changed, 28 insertions, 52 deletions
diff --git a/lldb/source/Core/FormatClasses.cpp b/lldb/source/Core/FormatClasses.cpp
index 30254d36994..07fcb4140c5 100644
--- a/lldb/source/Core/FormatClasses.cpp
+++ b/lldb/source/Core/FormatClasses.cpp
@@ -55,34 +55,14 @@ ValueFormat::ValueFormat (lldb::Format f,
{
}
-SummaryFormat::SummaryFormat(bool casc,
- bool skipptr,
- bool skipref,
- bool nochildren,
- bool novalue,
- bool oneliner) :
- m_cascades(casc),
- m_skip_pointers(skipptr),
- m_skip_references(skipref),
- m_dont_show_children(nochildren),
- m_dont_show_value(novalue),
- m_show_members_oneliner(oneliner)
+SummaryFormat::SummaryFormat(const SummaryFormat::Flags& flags) :
+ m_flags(flags)
{
}
-StringSummaryFormat::StringSummaryFormat(bool casc,
- bool skipptr,
- bool skipref,
- bool nochildren,
- bool novalue,
- bool oneliner,
+StringSummaryFormat::StringSummaryFormat(const SummaryFormat::Flags& flags,
std::string f) :
- SummaryFormat(casc,
- skipptr,
- skipref,
- nochildren,
- novalue,
- oneliner),
+ SummaryFormat(flags),
m_format(f)
{
}
@@ -102,7 +82,7 @@ StringSummaryFormat::FormatObject(lldb::ValueObjectSP object)
if (frame)
sc = frame->GetSymbolContext(lldb::eSymbolContextEverything);
- if (m_show_members_oneliner)
+ if (IsOneliner())
{
ValueObjectSP synth_valobj = object->GetSyntheticValue(lldb::eUseSyntheticFilter);
const uint32_t num_children = synth_valobj->GetNumChildren();
@@ -117,8 +97,11 @@ StringSummaryFormat::FormatObject(lldb::ValueObjectSP object)
{
if (idx)
s.PutCString(", ");
- s.PutCString(child_sp.get()->GetName().AsCString());
- s.PutChar('=');
+ if (!HideNames())
+ {
+ s.PutCString(child_sp.get()->GetName().AsCString());
+ s.PutChar('=');
+ }
child_sp.get()->GetPrintableRepresentation(s);
}
}
@@ -144,32 +127,24 @@ std::string
StringSummaryFormat::GetDescription()
{
StreamString sstr;
- sstr.Printf ("`%s`%s%s%s%s%s%s", m_format.c_str(),
- m_cascades ? "" : " (not cascading)",
- m_dont_show_children ? "" : " (show children)",
- m_dont_show_value ? " (hide value)" : "",
- m_show_members_oneliner ? " (one-line printout)" : "",
- m_skip_pointers ? " (skip pointers)" : "",
- m_skip_references ? " (skip references)" : "");
+
+ sstr.Printf ("`%s`%s%s%s%s%s%s%s", m_format.c_str(),
+ Cascades() ? "" : " (not cascading)",
+ !DoesPrintChildren() ? "" : " (show children)",
+ !DoesPrintValue() ? " (hide value)" : "",
+ IsOneliner() ? " (one-line printout)" : "",
+ SkipsPointers() ? " (skip pointers)" : "",
+ SkipsReferences() ? " (skip references)" : "",
+ HideNames() ? " (hide member names)" : "");
return sstr.GetString();
}
#ifndef LLDB_DISABLE_PYTHON
-ScriptSummaryFormat::ScriptSummaryFormat(bool casc,
- bool skipptr,
- bool skipref,
- bool nochildren,
- bool novalue,
- bool oneliner,
+ScriptSummaryFormat::ScriptSummaryFormat(const SummaryFormat::Flags& flags,
std::string fname,
std::string pscri) :
- SummaryFormat(casc,
- skipptr,
- skipref,
- nochildren,
- novalue,
- oneliner),
+ SummaryFormat(flags),
m_function_name(fname),
m_python_script(pscri)
{
@@ -187,12 +162,13 @@ std::string
ScriptSummaryFormat::GetDescription()
{
StreamString sstr;
- sstr.Printf ("%s%s%s%s%s%s\n%s", m_cascades ? "" : " (not cascading)",
- m_dont_show_children ? "" : " (show children)",
- m_dont_show_value ? " (hide value)" : "",
- m_show_members_oneliner ? " (one-line printout)" : "",
- m_skip_pointers ? " (skip pointers)" : "",
- m_skip_references ? " (skip references)" : "",
+ sstr.Printf ("%s%s%s%s%s%s%s\n%s", Cascades() ? "" : " (not cascading)",
+ !DoesPrintChildren() ? "" : " (show children)",
+ !DoesPrintValue() ? " (hide value)" : "",
+ IsOneliner() ? " (one-line printout)" : "",
+ SkipsPointers() ? " (skip pointers)" : "",
+ SkipsReferences() ? " (skip references)" : "",
+ HideNames() ? " (hide member names)" : "",
m_python_script.c_str());
return sstr.GetString();
OpenPOWER on IntegriCloud