[lldb] Update dwim-print to support limited variable expression paths #9677
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
frame variable
supports nested variable access, which the API calls "variableexpression paths". This change updates
dwim-print
to support a subset of supportedvariable expression paths.
Consider the expression
a->b
. In C++, the arrow operator can be overloaded, and wherethat is the case, expression evaluation must be used to evaluate it, not frame variable.
Likewise, the subscript operator can be overloaded.
To avoid those cases, this change introduces a limited support for variable expression
paths. Use of the dot operator is allowed.
Additionally, this change allows
dwim-print
to directly access children ofthis
andself
(see AllowDirectIVarAccess). This functionality is also provided by the sameGetValueForVariableExpressionPath
method.rdar://104348908
(cherry picked from commit 1250a1d)