aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectFrame.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-01-20 19:27:18 +0000
committerGreg Clayton <gclayton@apple.com>2011-01-20 19:27:18 +0000
commit6d5e68eaf2a5d144553c84b2f93fb8ad0b10072d (patch)
treea60ddaa91b7d7cda2d5caefe85196195299e2acb /lldb/source/Commands/CommandObjectFrame.cpp
parent1f69de3983f3e897a7572311cc7e7872ff6a23a7 (diff)
downloadllvm-6d5e68eaf2a5d144553c84b2f93fb8ad0b10072d.zip
llvm-6d5e68eaf2a5d144553c84b2f93fb8ad0b10072d.tar.gz
llvm-6d5e68eaf2a5d144553c84b2f93fb8ad0b10072d.tar.bz2
Added the ability to StackFrame::GetValueForVariableExpressionPath(...) to avoid
fragile ivars if requested. This was done by changing the previous second parameter to an options bitfield that can be populated by logical OR'ing the new StackFrame::ExpressionPathOption enum values together: typedef enum ExpressionPathOption { eExpressionPathOptionCheckPtrVsMember = (1u << 0), eExpressionPathOptionsNoFragileObjcIvar = (1u << 1), }; So the old function was: lldb::ValueObjectSP StackFrame::GetValueForVariableExpressionPath (const char *var_expr, bool check_ptr_vs_member, Error &error); But it is now: lldb::ValueObjectSP StackFrame::GetValueForVariableExpressionPath (const char *var_expr, uint32_t options, Error &error); This allows the expression parser in Target::EvaluateExpression(...) to avoid using simple frame variable expression paths when evaluating something that might be a fragile ivar. llvm-svn: 123938
Diffstat (limited to 'lldb/source/Commands/CommandObjectFrame.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectFrame.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/lldb/source/Commands/CommandObjectFrame.cpp b/lldb/source/Commands/CommandObjectFrame.cpp
index e107898..3d9d819 100644
--- a/lldb/source/Commands/CommandObjectFrame.cpp
+++ b/lldb/source/Commands/CommandObjectFrame.cpp
@@ -588,8 +588,8 @@ public:
else
{
Error error;
- const bool check_ptr_vs_member = true;
- valobj_sp = exe_ctx.frame->GetValueForVariableExpressionPath (name_cstr, check_ptr_vs_member, error);
+ const uint32_t expr_path_options = StackFrame::eExpressionPathOptionCheckPtrVsMember;
+ valobj_sp = exe_ctx.frame->GetValueForVariableExpressionPath (name_cstr, expr_path_options, error);
if (valobj_sp)
{
if (m_options.show_decl && var_sp->GetDeclaration ().GetFile())