[Lldb-commits] [lldb] r139561 - /lldb/trunk/source/Commands/CommandObjectFrame.cpp
Johnny Chen
johnny.chen at apple.com
Mon Sep 12 16:58:53 PDT 2011
Author: johnny
Date: Mon Sep 12 18:58:53 2011
New Revision: 139561
URL: http://llvm.org/viewvc/llvm-project?rev=139561&view=rev
Log:
Remove an unnecessary 'else { ... }', which adds to vertical as well as horizontal spans,
from CommandObjectFrame::Execute().
Modified:
lldb/trunk/source/Commands/CommandObjectFrame.cpp
Modified: lldb/trunk/source/Commands/CommandObjectFrame.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectFrame.cpp?rev=139561&r1=139560&r2=139561&view=diff
==============================================================================
--- lldb/trunk/source/Commands/CommandObjectFrame.cpp (original)
+++ lldb/trunk/source/Commands/CommandObjectFrame.cpp Mon Sep 12 18:58:53 2011
@@ -373,201 +373,197 @@
result.SetStatus (eReturnStatusFailed);
return false;
}
- else
+
+ Stream &s = result.GetOutputStream();
+
+ bool get_file_globals = true;
+
+ // Be careful about the stack frame, if any summary formatter runs code, it might clear the StackFrameList
+ // for the thread. So hold onto a shared pointer to the frame so it stays alive.
+
+ StackFrameSP frame_sp = exe_ctx.frame->GetSP();
+
+ VariableList *variable_list = frame_sp->GetVariableList (get_file_globals);
+
+ VariableSP var_sp;
+ ValueObjectSP valobj_sp;
+
+ const char *name_cstr = NULL;
+ size_t idx;
+
+ SummaryFormatSP summary_format_sp;
+ if (!m_option_variable.summary.empty())
+ DataVisualization::NamedSummaryFormats::GetSummaryFormat(ConstString(m_option_variable.summary.c_str()), summary_format_sp);
+
+ ValueObject::DumpValueObjectOptions options;
+
+ options.SetPointerDepth(m_varobj_options.ptr_depth)
+ .SetMaximumDepth(m_varobj_options.max_depth)
+ .SetShowTypes(m_varobj_options.show_types)
+ .SetShowLocation(m_varobj_options.show_location)
+ .SetUseObjectiveC(m_varobj_options.use_objc)
+ .SetUseDynamicType(m_varobj_options.use_dynamic)
+ .SetUseSyntheticValue((lldb::SyntheticValueType)m_varobj_options.use_synth)
+ .SetFlatOutput(m_varobj_options.flat_output)
+ .SetOmitSummaryDepth(m_varobj_options.no_summary_depth)
+ .SetIgnoreCap(m_varobj_options.ignore_cap);
+
+ if (m_varobj_options.be_raw)
+ options.SetRawDisplay(true);
+
+ if (variable_list)
{
- Stream &s = result.GetOutputStream();
+ // If watching a variable, there are certain restrictions to be followed.
+ if (m_option_watchpoint.watch_variable)
+ {
+ if (command.GetArgumentCount() != 1) {
+ result.GetErrorStream().Printf("error: specify exactly one variable when using the '-w' option\n");
+ result.SetStatus(eReturnStatusFailed);
+ return false;
+ } else if (m_option_variable.use_regex) {
+ result.GetErrorStream().Printf("error: specify your variable name exactly (no regex) when using the '-w' option\n");
+ result.SetStatus(eReturnStatusFailed);
+ return false;
+ }
- bool get_file_globals = true;
-
- // Be careful about the stack frame, if any summary formatter runs code, it might clear the StackFrameList
- // for the thread. So hold onto a shared pointer to the frame so it stays alive.
-
- StackFrameSP frame_sp = exe_ctx.frame->GetSP();
-
- VariableList *variable_list = frame_sp->GetVariableList (get_file_globals);
-
- VariableSP var_sp;
- ValueObjectSP valobj_sp;
-
- const char *name_cstr = NULL;
- size_t idx;
-
- SummaryFormatSP summary_format_sp;
- if (!m_option_variable.summary.empty())
- DataVisualization::NamedSummaryFormats::GetSummaryFormat(ConstString(m_option_variable.summary.c_str()), summary_format_sp);
-
- ValueObject::DumpValueObjectOptions options;
-
- options.SetPointerDepth(m_varobj_options.ptr_depth)
- .SetMaximumDepth(m_varobj_options.max_depth)
- .SetShowTypes(m_varobj_options.show_types)
- .SetShowLocation(m_varobj_options.show_location)
- .SetUseObjectiveC(m_varobj_options.use_objc)
- .SetUseDynamicType(m_varobj_options.use_dynamic)
- .SetUseSyntheticValue((lldb::SyntheticValueType)m_varobj_options.use_synth)
- .SetFlatOutput(m_varobj_options.flat_output)
- .SetOmitSummaryDepth(m_varobj_options.no_summary_depth)
- .SetIgnoreCap(m_varobj_options.ignore_cap);
-
- if (m_varobj_options.be_raw)
- options.SetRawDisplay(true);
-
- if (variable_list)
+ // Things have checked out ok...
+ // m_option_watchpoint.watch_mode specifies the mode for watching.
+ }
+ if (command.GetArgumentCount() > 0)
{
- // If watching a variable, there are certain restrictions to be followed.
- if (m_option_watchpoint.watch_variable)
- {
- if (command.GetArgumentCount() != 1) {
- result.GetErrorStream().Printf("error: specify exactly one variable when using the '-w' option\n");
- result.SetStatus(eReturnStatusFailed);
- return false;
- } else if (m_option_variable.use_regex) {
- result.GetErrorStream().Printf("error: specify your variable name exactly (no regex) when using the '-w' option\n");
- result.SetStatus(eReturnStatusFailed);
- return false;
- }
+ VariableList regex_var_list;
- // Things have checked out ok...
- // m_option_watchpoint.watch_mode specifies the mode for watching.
- }
- if (command.GetArgumentCount() > 0)
+ // If we have any args to the variable command, we will make
+ // variable objects from them...
+ for (idx = 0; (name_cstr = command.GetArgumentAtIndex(idx)) != NULL; ++idx)
{
- VariableList regex_var_list;
-
- // If we have any args to the variable command, we will make
- // variable objects from them...
- for (idx = 0; (name_cstr = command.GetArgumentAtIndex(idx)) != NULL; ++idx)
+ if (m_option_variable.use_regex)
{
- if (m_option_variable.use_regex)
+ const uint32_t regex_start_index = regex_var_list.GetSize();
+ RegularExpression regex (name_cstr);
+ if (regex.Compile(name_cstr))
{
- const uint32_t regex_start_index = regex_var_list.GetSize();
- RegularExpression regex (name_cstr);
- if (regex.Compile(name_cstr))
+ size_t num_matches = 0;
+ const size_t num_new_regex_vars = variable_list->AppendVariablesIfUnique(regex,
+ regex_var_list,
+ num_matches);
+ if (num_new_regex_vars > 0)
{
- size_t num_matches = 0;
- const size_t num_new_regex_vars = variable_list->AppendVariablesIfUnique(regex,
- regex_var_list,
- num_matches);
- if (num_new_regex_vars > 0)
+ for (uint32_t regex_idx = regex_start_index, end_index = regex_var_list.GetSize();
+ regex_idx < end_index;
+ ++regex_idx)
{
- for (uint32_t regex_idx = regex_start_index, end_index = regex_var_list.GetSize();
- regex_idx < end_index;
- ++regex_idx)
+ var_sp = regex_var_list.GetVariableAtIndex (regex_idx);
+ if (var_sp)
{
- var_sp = regex_var_list.GetVariableAtIndex (regex_idx);
- if (var_sp)
+ valobj_sp = frame_sp->GetValueObjectForFrameVariable (var_sp, m_varobj_options.use_dynamic);
+ if (valobj_sp)
{
- valobj_sp = frame_sp->GetValueObjectForFrameVariable (var_sp, m_varobj_options.use_dynamic);
- if (valobj_sp)
- {
- if (m_option_variable.format != eFormatDefault)
- valobj_sp->SetFormat (m_option_variable.format);
-
- if (m_option_variable.show_decl && var_sp->GetDeclaration ().GetFile())
- {
- bool show_fullpaths = false;
- bool show_module = true;
- if (var_sp->DumpDeclaration(&s, show_fullpaths, show_module))
- s.PutCString (": ");
- }
- if (summary_format_sp)
- valobj_sp->SetCustomSummaryFormat(summary_format_sp);
- ValueObject::DumpValueObject (result.GetOutputStream(),
- valobj_sp.get(),
- options);
+ if (m_option_variable.format != eFormatDefault)
+ valobj_sp->SetFormat (m_option_variable.format);
+
+ if (m_option_variable.show_decl && var_sp->GetDeclaration ().GetFile())
+ {
+ bool show_fullpaths = false;
+ bool show_module = true;
+ if (var_sp->DumpDeclaration(&s, show_fullpaths, show_module))
+ s.PutCString (": ");
}
+ if (summary_format_sp)
+ valobj_sp->SetCustomSummaryFormat(summary_format_sp);
+ ValueObject::DumpValueObject (result.GetOutputStream(),
+ valobj_sp.get(),
+ options);
}
}
}
- else if (num_matches == 0)
- {
- result.GetErrorStream().Printf ("error: no variables matched the regular expression '%s'.\n", name_cstr);
- }
}
- else
+ else if (num_matches == 0)
{
- char regex_error[1024];
- if (regex.GetErrorAsCString(regex_error, sizeof(regex_error)))
- result.GetErrorStream().Printf ("error: %s\n", regex_error);
- else
- result.GetErrorStream().Printf ("error: unkown regex error when compiling '%s'\n", name_cstr);
+ result.GetErrorStream().Printf ("error: no variables matched the regular expression '%s'.\n", name_cstr);
}
}
- else // No regex, either exact variable names or variable expressions.
+ else
{
- Error error;
- uint32_t expr_path_options = StackFrame::eExpressionPathOptionCheckPtrVsMember;
- lldb::VariableSP var_sp;
- valobj_sp = frame_sp->GetValueForVariableExpressionPath (name_cstr,
- m_varobj_options.use_dynamic,
- expr_path_options,
- var_sp,
- error);
- if (valobj_sp)
+ char regex_error[1024];
+ if (regex.GetErrorAsCString(regex_error, sizeof(regex_error)))
+ result.GetErrorStream().Printf ("error: %s\n", regex_error);
+ else
+ result.GetErrorStream().Printf ("error: unkown regex error when compiling '%s'\n", name_cstr);
+ }
+ }
+ else // No regex, either exact variable names or variable expressions.
+ {
+ Error error;
+ uint32_t expr_path_options = StackFrame::eExpressionPathOptionCheckPtrVsMember;
+ lldb::VariableSP var_sp;
+ valobj_sp = frame_sp->GetValueForVariableExpressionPath (name_cstr,
+ m_varobj_options.use_dynamic,
+ expr_path_options,
+ var_sp,
+ error);
+ if (valobj_sp)
+ {
+ if (m_option_variable.format != eFormatDefault)
+ valobj_sp->SetFormat (m_option_variable.format);
+ if (m_option_variable.show_decl && var_sp && var_sp->GetDeclaration ().GetFile())
{
- if (m_option_variable.format != eFormatDefault)
- valobj_sp->SetFormat (m_option_variable.format);
- if (m_option_variable.show_decl && var_sp && var_sp->GetDeclaration ().GetFile())
+ var_sp->GetDeclaration ().DumpStopContext (&s, false);
+ s.PutCString (": ");
+ }
+ if (summary_format_sp)
+ valobj_sp->SetCustomSummaryFormat(summary_format_sp);
+
+ Stream &output_stream = result.GetOutputStream();
+ ValueObject::DumpValueObject (output_stream,
+ valobj_sp.get(),
+ valobj_sp->GetParent() ? name_cstr : NULL,
+ options);
+ // Process watchpoint if necessary.
+ if (m_option_watchpoint.watch_variable)
+ {
+ lldb::addr_t addr = LLDB_INVALID_ADDRESS;
+ size_t size = 0;
+ uint32_t watch_type = m_option_watchpoint.watch_type;
+ WatchpointLocation *wp_loc =
+ exe_ctx.target->CreateWatchpointLocation(addr, size, watch_type).get();
+ if (wp_loc)
{
- var_sp->GetDeclaration ().DumpStopContext (&s, false);
- s.PutCString (": ");
+ output_stream.Printf("Watchpoint created: ");
+ wp_loc->GetDescription(&output_stream, lldb::eDescriptionLevelBrief);
+ output_stream.EOL();
+ result.SetStatus(eReturnStatusSuccessFinishResult);
}
- if (summary_format_sp)
- valobj_sp->SetCustomSummaryFormat(summary_format_sp);
-
- Stream &output_stream = result.GetOutputStream();
- ValueObject::DumpValueObject (output_stream,
- valobj_sp.get(),
- valobj_sp->GetParent() ? name_cstr : NULL,
- options);
- // Process watchpoint if necessary.
- if (m_option_watchpoint.watch_variable)
+ else
{
- lldb::addr_t addr = LLDB_INVALID_ADDRESS;
- size_t size = 0;
- uint32_t watch_type = m_option_watchpoint.watch_type;
- WatchpointLocation *wp_loc =
- exe_ctx.target->CreateWatchpointLocation(addr, size, watch_type).get();
- if (wp_loc)
- {
- output_stream.Printf("Watchpoint created: ");
- wp_loc->GetDescription(&output_stream, lldb::eDescriptionLevelBrief);
- output_stream.EOL();
- result.SetStatus(eReturnStatusSuccessFinishResult);
- }
- else
- {
- result.AppendErrorWithFormat("Watchpoint creation failed.\n");
- result.SetStatus(eReturnStatusFailed);
- }
- return (wp_loc != NULL);
+ result.AppendErrorWithFormat("Watchpoint creation failed.\n");
+ result.SetStatus(eReturnStatusFailed);
}
+ return (wp_loc != NULL);
}
+ }
+ else
+ {
+ const char *error_cstr = error.AsCString(NULL);
+ if (error_cstr)
+ result.GetErrorStream().Printf("error: %s\n", error_cstr);
else
- {
- const char *error_cstr = error.AsCString(NULL);
- if (error_cstr)
- result.GetErrorStream().Printf("error: %s\n", error_cstr);
- else
- result.GetErrorStream().Printf ("error: unable to find any variable expression path that matches '%s'\n", name_cstr);
- }
+ result.GetErrorStream().Printf ("error: unable to find any variable expression path that matches '%s'\n", name_cstr);
}
}
}
- else // No command arg specified. Use variable_list, instead.
+ }
+ else // No command arg specified. Use variable_list, instead.
+ {
+ const uint32_t num_variables = variable_list->GetSize();
+ if (num_variables > 0)
{
- const uint32_t num_variables = variable_list->GetSize();
-
- if (num_variables > 0)
+ for (uint32_t i=0; i<num_variables; i++)
{
- for (uint32_t i=0; i<num_variables; i++)
+ var_sp = variable_list->GetVariableAtIndex(i);
+ bool dump_variable = true;
+ switch (var_sp->GetScope())
{
- var_sp = variable_list->GetVariableAtIndex(i);
-
- bool dump_variable = true;
-
- switch (var_sp->GetScope())
- {
case eValueTypeVariableGlobal:
dump_variable = m_option_variable.show_globals;
if (dump_variable && m_option_variable.show_scope)
@@ -579,13 +575,13 @@
if (dump_variable && m_option_variable.show_scope)
s.PutCString("STATIC: ");
break;
-
+
case eValueTypeVariableArgument:
dump_variable = m_option_variable.show_args;
if (dump_variable && m_option_variable.show_scope)
s.PutCString(" ARG: ");
break;
-
+
case eValueTypeVariableLocal:
dump_variable = m_option_variable.show_locals;
if (dump_variable && m_option_variable.show_scope)
@@ -594,44 +590,42 @@
default:
break;
- }
-
- if (dump_variable)
+ }
+
+ if (dump_variable)
+ {
+ // Use the variable object code to make sure we are
+ // using the same APIs as the the public API will be
+ // using...
+ valobj_sp = frame_sp->GetValueObjectForFrameVariable (var_sp,
+ m_varobj_options.use_dynamic);
+ if (valobj_sp)
{
+ if (m_option_variable.format != eFormatDefault)
+ valobj_sp->SetFormat (m_option_variable.format);
- // Use the variable object code to make sure we are
- // using the same APIs as the the public API will be
- // using...
- valobj_sp = frame_sp->GetValueObjectForFrameVariable (var_sp,
- m_varobj_options.use_dynamic);
- if (valobj_sp)
+ // When dumping all variables, don't print any variables
+ // that are not in scope to avoid extra unneeded output
+ if (valobj_sp->IsInScope ())
{
- if (m_option_variable.format != eFormatDefault)
- valobj_sp->SetFormat (m_option_variable.format);
-
- // When dumping all variables, don't print any variables
- // that are not in scope to avoid extra unneeded output
- if (valobj_sp->IsInScope ())
+ if (m_option_variable.show_decl && var_sp->GetDeclaration ().GetFile())
{
- if (m_option_variable.show_decl && var_sp->GetDeclaration ().GetFile())
- {
- var_sp->GetDeclaration ().DumpStopContext (&s, false);
- s.PutCString (": ");
- }
- if (summary_format_sp)
- valobj_sp->SetCustomSummaryFormat(summary_format_sp);
- ValueObject::DumpValueObject (result.GetOutputStream(),
- valobj_sp.get(),
- name_cstr,
- options);
+ var_sp->GetDeclaration ().DumpStopContext (&s, false);
+ s.PutCString (": ");
}
+ if (summary_format_sp)
+ valobj_sp->SetCustomSummaryFormat(summary_format_sp);
+ ValueObject::DumpValueObject (result.GetOutputStream(),
+ valobj_sp.get(),
+ name_cstr,
+ options);
}
}
}
}
}
- result.SetStatus (eReturnStatusSuccessFinishResult);
}
+ result.SetStatus (eReturnStatusSuccessFinishResult);
}
if (m_interpreter.TruncationWarningNecessary())
More information about the lldb-commits
mailing list