Added the address of operator for the "frame variable" command.

llvm-svn: 119100
This commit is contained in:
Greg Clayton
2010-11-15 01:32:26 +00:00
parent 03ac1b09d1
commit ce5c9a8f31

View File

@@ -586,12 +586,18 @@ public:
}
else
{
bool address_of = false;
// If first character is a '*', then show pointer contents
if (name_cstr[0] == '*')
{
++ptr_depth;
name_cstr++; // Skip the '*'
}
else if (name_cstr[0] == '&')
{
address_of = true;
name_cstr++; // Skip the '&'
}
std::string var_path (name_cstr);
size_t separator_idx = var_path.find_first_of(".-[");
@@ -724,18 +730,25 @@ public:
}
ValueObject::DumpValueObject (result.GetOutputStream(),
exe_ctx.frame,
valobj_sp.get(),
valobj_sp->GetParent() ? name_cstr : NULL,
ptr_depth,
0,
m_options.max_depth,
m_options.show_types,
m_options.show_location,
m_options.use_objc,
false,
m_options.flat_output);
if (address_of)
{
s.Printf("&%s = %s\n", name_cstr, valobj_sp->GetLocationAsCString (exe_ctx.frame));
}
else
{
ValueObject::DumpValueObject (result.GetOutputStream(),
exe_ctx.frame,
valobj_sp.get(),
valobj_sp->GetParent() ? name_cstr : NULL,
ptr_depth,
0,
m_options.max_depth,
m_options.show_types,
m_options.show_location,
m_options.use_objc,
false,
m_options.flat_output);
}
}
}
else