1) solving a bug where, after Jim's fixes to stack frames, synthetic children were not recalculated when necessary, causing them to get out of sync with live data

2) providing an updated list of tagged pointers values for the objc_runtime module - hopefully this one is final
3) changing ValueObject::DumpValueObject to use an Options class instead of providing a bulky list of parameters to pass around
   this change had been laid out previously, but some clients of DumpValueObject() were still using the old prototype and some arguments
   were treated in a special way and passed in directly instead of through the Options class
4) providing new GetSummaryAsCString() and GetValueAsCString() calls in ValueObject that are passed a formatter object and a destination string
   and fill the string by formatting themselves using the formatter argument instead of the default for the current ValueObject
5) removing the option to have formats and summaries stick to a variable for the current stoppoint
   after some debate, we are going with non-sticky: if you say frame variable --format hex foo, the hex format will only be applied to the current command execution and not stick when redisplaying foo
   the other option would be full stickiness, which means that foo would be formatted as hex for its whole lifetime
   we are open to suggestions on what feels "natural" in this regard

llvm-svn: 151801
This commit is contained in:
Enrico Granata
2012-03-01 04:24:26 +00:00
parent cd5092dfba
commit 0c489f58cd
10 changed files with 408 additions and 459 deletions

View File

@@ -691,22 +691,22 @@ public:
bool scope_already_checked = true;
ValueObject::DumpValueObjectOptions options;
options.SetMaximumPointerDepth(m_varobj_options.ptr_depth)
.SetMaximumDepth(m_varobj_options.max_depth)
.SetShowLocation(m_varobj_options.show_location)
.SetShowTypes(m_varobj_options.show_types)
.SetUseObjectiveC(m_varobj_options.use_objc)
.SetScopeChecked(scope_already_checked)
.SetFlatOutput(m_varobj_options.flat_output)
.SetUseSyntheticValue(m_varobj_options.be_raw ? lldb::eNoSyntheticFilter : (m_varobj_options.use_synth ? lldb::eUseSyntheticFilter : lldb::eNoSyntheticFilter) )
.SetOmitSummaryDepth(m_varobj_options.be_raw ? UINT32_MAX : m_varobj_options.no_summary_depth)
.SetIgnoreCap(m_varobj_options.be_raw ? true : m_varobj_options.ignore_cap)
.SetFormat(format)
.SetSummary();
ValueObject::DumpValueObject (*output_stream,
valobj_sp.get(),
NULL,
m_varobj_options.ptr_depth,
0,
m_varobj_options.max_depth,
m_varobj_options.show_types,
m_varobj_options.show_location,
m_varobj_options.use_objc,
m_varobj_options.use_dynamic,
m_varobj_options.be_raw ? false : m_varobj_options.use_synth,
scope_already_checked,
m_varobj_options.flat_output,
m_varobj_options.be_raw ? UINT32_MAX : m_varobj_options.no_summary_depth,
m_varobj_options.be_raw ? true : m_varobj_options.ignore_cap,
format);
options);
}
else
{