Looks good, thanks for making the fix. Please commit the patch.
(forgot to Cc the list on my orig reply) On Aug 15, 2013, at 2:10 PM, Michael Sartain <[email protected]> wrote: > When using the "target modules show-unwind", it was very difficult to tell > whether I had typed something wrong or it had found zero results. > > All of these commands would return nothing: > target modules show-unwind 0x80484d0 ; invalid command - nothing done > target modules show-unwind -a 0x80484d0 ; this is a valid command that > target modules show-unwind -foobar 0x80484d0 ; invalid command - nothing > done > target modules show-unwind nonexistentfunctionname ; invalid command - > nothing done > > The patch below returns an error string if you specify an invalid option, > don't specify an option, or no results were found. > > Please let me know if it's ok to submit. Thanks. > -Mike > > mikesart@mikesart-rad:~/data/src/llvm.svn/llvm/tools/lldb$ svn diff > Index: source/Commands/CommandObjectTarget.cpp > =================================================================== > --- source/Commands/CommandObjectTarget.cpp (revision 188467) > +++ source/Commands/CommandObjectTarget.cpp (working copy) > @@ -3468,6 +3468,7 @@ > case 'a': > { > ExecutionContext exe_ctx > (m_interpreter.GetExecutionContext()); > + m_str = option_arg; > m_type = eLookupTypeAddress; > m_addr = Args::StringToAddress(&exe_ctx, option_arg, > LLDB_INVALID_ADDRESS, &error); > if (m_addr == LLDB_INVALID_ADDRESS) > @@ -3481,6 +3482,10 @@ > m_type = eLookupTypeFunctionOrSymbol; > break; > } > + > + default: > + error.SetErrorStringWithFormat ("unrecognized option > %c.", short_option); > + break; > } > > return error; > @@ -3591,8 +3596,21 @@ > } > } > } > + else > + { > + result.AppendError ("address-expression or function name option > must be specified."); > + result.SetStatus (eReturnStatusFailed); > + return false; > + } > > size_t num_matches = sc_list.GetSize(); > + if (num_matches == 0) > + { > + result.AppendErrorWithFormat ("no unwind data found that matches > '%s'.", m_options.m_str.c_str()); > + result.SetStatus (eReturnStatusFailed); > + return false; > + } > + > for (uint32_t idx = 0; idx < num_matches; idx++) > { > SymbolContext sc; > > _______________________________________________ > lldb-dev mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
