diff options
author | Enrico Granata <egranata@apple.com> | 2012-03-01 04:24:26 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2012-03-01 04:24:26 +0000 |
commit | 0c489f58cd948e2493bbb6ffac74a4465d91dba2 (patch) | |
tree | a72c99b56a99700598d853177256285a23479093 /lldb/source/Commands/CommandObjectExpression.cpp | |
parent | cd5092dfba302a8b234004bb9c2f54cec9a826a1 (diff) | |
download | bcm5719-llvm-0c489f58cd948e2493bbb6ffac74a4465d91dba2.tar.gz bcm5719-llvm-0c489f58cd948e2493bbb6ffac74a4465d91dba2.zip |
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
Diffstat (limited to 'lldb/source/Commands/CommandObjectExpression.cpp')
-rw-r--r-- | lldb/source/Commands/CommandObjectExpression.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/lldb/source/Commands/CommandObjectExpression.cpp b/lldb/source/Commands/CommandObjectExpression.cpp index 262d0b58dcf..b8c3c92f438 100644 --- a/lldb/source/Commands/CommandObjectExpression.cpp +++ b/lldb/source/Commands/CommandObjectExpression.cpp @@ -354,22 +354,23 @@ CommandObjectExpression::EvaluateExpression if (format != eFormatDefault) result_valobj_sp->SetFormat (format); + ValueObject::DumpValueObjectOptions options; + options.SetMaximumPointerDepth(0) + .SetMaximumDepth(UINT32_MAX) + .SetShowLocation(false) + .SetShowTypes(m_command_options.show_types) + .SetUseObjectiveC(m_command_options.print_object) + .SetUseDynamicType(use_dynamic) + .SetScopeChecked(true) + .SetFlatOutput(false) + .SetUseSyntheticValue(lldb::eUseSyntheticFilter) + .SetOmitSummaryDepth(0) + .SetIgnoreCap(false) + .SetFormat(format) + .SetSummary(); ValueObject::DumpValueObject (*(output_stream), result_valobj_sp.get(), // Variable object to dump - result_valobj_sp->GetName().GetCString(),// Root object name - 0, // Pointer depth to traverse (zero means stop at pointers) - 0, // Current depth, this is the top most, so zero... - UINT32_MAX, // Max depth to go when dumping concrete types, dump everything... - m_command_options.show_types, // Show types when dumping? - false, // Show locations of variables, no since this is a host address which we don't care to see - m_command_options.print_object, // Print the objective C object? - use_dynamic, - true, // Use synthetic children if available - true, // Scope is already checked. Const results are always in scope. - false, // Don't flatten output - 0, // Always use summaries (you might want an option --no-summary like there is for frame variable) - false, // Do not show more children than settings allow - format); // Format override + options); if (result) result->SetStatus (eReturnStatusSuccessFinishResult); } |