summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/Debugger.cpp
diff options
context:
space:
mode:
authorEnrico Granata <granata.enrico@gmail.com>2011-07-29 19:53:35 +0000
committerEnrico Granata <granata.enrico@gmail.com>2011-07-29 19:53:35 +0000
commit6f3533fb1d742620328b4fcc79410d3e09d6eb8d (patch)
tree4ed75acf7c94fefcab457f17a568827d5b0e3c22 /lldb/source/Core/Debugger.cpp
parentce0ceebb1c5f896e992e1cac36fad732daf55cb0 (diff)
downloadbcm5719-llvm-6f3533fb1d742620328b4fcc79410d3e09d6eb8d.tar.gz
bcm5719-llvm-6f3533fb1d742620328b4fcc79410d3e09d6eb8d.zip
Public API changes:
- Completely new implementation of SBType - Various enhancements in several other classes Python synthetic children providers for std::vector<T>, std::list<T> and std::map<K,V>: - these return the actual elements into the container as the children of the container - basic template name parsing that works (hopefully) on both Clang and GCC - find them in examples/synthetic and in the test suite in functionalities/data-formatter/data-formatter-python-synth New summary string token ${svar : - the syntax is just the same as in ${var but this new token lets you read the values coming from the synthetic children provider instead of the actual children - Python providers above provide a synthetic child len that returns the number of elements into the container Full bug fix for the issue in which getting byte size for a non-complete type would crash LLDB Several other fixes, including: - inverted the order of arguments in the ClangASTType constructor - EvaluationPoint now only returns SharedPointer's to Target and Process - the help text for several type subcommands now correctly indicates argument-less options as such llvm-svn: 136504
Diffstat (limited to 'lldb/source/Core/Debugger.cpp')
-rw-r--r--lldb/source/Core/Debugger.cpp28
1 files changed, 20 insertions, 8 deletions
diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp
index dff2eb00fe8..a217ddb36ec 100644
--- a/lldb/source/Core/Debugger.cpp
+++ b/lldb/source/Core/Debugger.cpp
@@ -1004,16 +1004,28 @@ Debugger::FormatPrompt
switch (var_name_begin[0])
{
case '*':
- {
- if (!vobj)
- break;
- do_deref_pointer = true;
- var_name_begin++;
- }
- // Fall through...
-
case 'v':
+ case 's':
{
+ if (!vobj)
+ break;
+
+ // check for *var and *svar
+ if (*var_name_begin == '*')
+ {
+ do_deref_pointer = true;
+ var_name_begin++;
+ }
+ if (*var_name_begin == 's')
+ {
+ vobj = vobj->GetSyntheticValue(lldb::eUseSyntheticFilter).get();
+ var_name_begin++;
+ }
+
+ // should be a 'v' by now
+ if (*var_name_begin != 'v')
+ break;
+
ValueObject::ExpressionPathAftermath what_next = (do_deref_pointer ?
ValueObject::eDereference : ValueObject::eNothing);
ValueObject::GetValueForExpressionPathOptions options;
OpenPOWER on IntegriCloud