Author: zturner Date: Wed Oct 5 16:14:38 2016 New Revision: 283384 URL: http://llvm.org/viewvc/llvm-project?rev=283384&view=rev Log: Convert CommandObject constructors to StringRef.
Modified: lldb/trunk/include/lldb/Core/Stream.h lldb/trunk/include/lldb/Interpreter/Args.h lldb/trunk/include/lldb/Interpreter/CommandAlias.h lldb/trunk/include/lldb/Interpreter/CommandInterpreter.h lldb/trunk/include/lldb/Interpreter/CommandObject.h lldb/trunk/include/lldb/Interpreter/CommandObjectRegexCommand.h lldb/trunk/source/API/SBCommandInterpreter.cpp lldb/trunk/source/Commands/CommandObjectArgs.cpp lldb/trunk/source/Commands/CommandObjectCommands.cpp lldb/trunk/source/Commands/CommandObjectExpression.cpp lldb/trunk/source/Commands/CommandObjectHelp.cpp lldb/trunk/source/Commands/CommandObjectMultiword.cpp lldb/trunk/source/Commands/CommandObjectSettings.cpp lldb/trunk/source/Commands/CommandObjectSource.cpp lldb/trunk/source/Commands/CommandObjectSyntax.cpp lldb/trunk/source/Commands/CommandObjectType.cpp lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp lldb/trunk/source/Core/Stream.cpp lldb/trunk/source/Interpreter/Args.cpp lldb/trunk/source/Interpreter/CommandAlias.cpp lldb/trunk/source/Interpreter/CommandInterpreter.cpp lldb/trunk/source/Interpreter/CommandObject.cpp lldb/trunk/source/Interpreter/CommandObjectRegexCommand.cpp lldb/trunk/source/Interpreter/Options.cpp lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp lldb/trunk/source/Target/LanguageRuntime.cpp Modified: lldb/trunk/include/lldb/Core/Stream.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Stream.h?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/include/lldb/Core/Stream.h (original) +++ lldb/trunk/include/lldb/Core/Stream.h Wed Oct 5 16:14:38 2016 @@ -441,6 +441,7 @@ public: /// output the indentation characters. //------------------------------------------------------------------ size_t Indent(const char *s = nullptr); + size_t Indent(llvm::StringRef s); //------------------------------------------------------------------ /// Decrement the current indentation level. Modified: lldb/trunk/include/lldb/Interpreter/Args.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/Args.h?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/include/lldb/Interpreter/Args.h (original) +++ lldb/trunk/include/lldb/Interpreter/Args.h Wed Oct 5 16:14:38 2016 @@ -322,12 +322,12 @@ public: bool IsPositionalArgument(const char *arg); // The following works almost identically to ParseOptions, except that no - // option is required to have arguments, - // and it builds up the option_arg_vector as it parses the options. + // option is required to have arguments, and it builds up the + // option_arg_vector as it parses the options. - void ParseAliasOptions(Options &options, CommandReturnObject &result, - OptionArgVector *option_arg_vector, - std::string &raw_input_line); + std::string ParseAliasOptions(Options &options, CommandReturnObject &result, + OptionArgVector *option_arg_vector, + llvm::StringRef raw_input_line); void ParseArgsForCompletion(Options &options, OptionElementVector &option_element_vector, Modified: lldb/trunk/include/lldb/Interpreter/CommandAlias.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/CommandAlias.h?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/include/lldb/Interpreter/CommandAlias.h (original) +++ lldb/trunk/include/lldb/Interpreter/CommandAlias.h Wed Oct 5 16:14:38 2016 @@ -26,9 +26,9 @@ public: typedef std::unique_ptr<CommandAlias> UniquePointer; CommandAlias(CommandInterpreter &interpreter, lldb::CommandObjectSP cmd_sp, - const char *options_args, const char *name, - const char *help = nullptr, const char *syntax = nullptr, - uint32_t flags = 0); + llvm::StringRef options_args, llvm::StringRef name, + llvm::StringRef help = llvm::StringRef(), + llvm::StringRef syntax = llvm::StringRef(), uint32_t flags = 0); void GetAliasExpansion(StreamString &help_string); Modified: lldb/trunk/include/lldb/Interpreter/CommandInterpreter.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/CommandInterpreter.h?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/include/lldb/Interpreter/CommandInterpreter.h (original) +++ lldb/trunk/include/lldb/Interpreter/CommandInterpreter.h Wed Oct 5 16:14:38 2016 @@ -195,20 +195,18 @@ public: void SourceInitFile(bool in_cwd, CommandReturnObject &result); - bool AddCommand(const char *name, const lldb::CommandObjectSP &cmd_sp, + bool AddCommand(llvm::StringRef name, const lldb::CommandObjectSP &cmd_sp, bool can_replace); + bool AddCommand(const char *, const lldb::CommandObjectSP &, bool) = delete; bool AddUserCommand(std::string name, const lldb::CommandObjectSP &cmd_sp, bool can_replace); - lldb::CommandObjectSP GetCommandSPExact(const char *cmd, - bool include_aliases); + lldb::CommandObjectSP GetCommandSPExact(llvm::StringRef cmd, + bool include_aliases) const; - CommandObject *GetCommandObjectExact(const char *cmd_cstr, - bool include_aliases); - - CommandObject *GetCommandObject(const char *cmd, - StringList *matches = nullptr); + CommandObject *GetCommandObject(llvm::StringRef cmd, + StringList *matches = nullptr) const; bool CommandExists(const char *cmd); @@ -385,13 +383,13 @@ public: void SetScriptLanguage(lldb::ScriptLanguage lang); - bool HasCommands(); + bool HasCommands() const; - bool HasAliases(); + bool HasAliases() const; - bool HasUserCommands(); + bool HasUserCommands() const; - bool HasAliasOptions(); + bool HasAliasOptions() const; void BuildAliasCommandArgs(CommandObject *alias_cmd_obj, const char *alias_name, Args &cmd_args, @@ -510,10 +508,10 @@ protected: void SetSynchronous(bool value); - lldb::CommandObjectSP GetCommandSP(const char *cmd, + lldb::CommandObjectSP GetCommandSP(llvm::StringRef cmd, bool include_aliases = true, bool exact = true, - StringList *matches = nullptr); + StringList *matches = nullptr) const; private: Error PreprocessCommand(std::string &command); Modified: lldb/trunk/include/lldb/Interpreter/CommandObject.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/CommandObject.h?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/include/lldb/Interpreter/CommandObject.h (original) +++ lldb/trunk/include/lldb/Interpreter/CommandObject.h Wed Oct 5 16:14:38 2016 @@ -35,11 +35,11 @@ namespace lldb_private { // added. template <typename ValueType> -int AddNamesMatchingPartialString(std::map<std::string, ValueType> &in_map, - const char *cmd_str, StringList &matches) { +int AddNamesMatchingPartialString(const std::map<std::string, ValueType> &in_map, + llvm::StringRef cmd_str, StringList &matches) { int number_added = 0; - const bool add_all = ((cmd_str == nullptr) || (cmd_str[0] == 0)); + const bool add_all = cmd_str.empty(); for (auto iter = in_map.begin(), end = in_map.end(); iter != end; iter++) { if (add_all || (iter->first.find(cmd_str, 0) == 0)) { @@ -108,9 +108,8 @@ public: typedef std::map<std::string, lldb::CommandObjectSP> CommandMap; - // TODO: Change arguments and all derived classes to use StringRef. - CommandObject(CommandInterpreter &interpreter, const char *name, - const char *help = nullptr, const char *syntax = nullptr, + CommandObject(CommandInterpreter &interpreter, llvm::StringRef name, + llvm::StringRef help = "", llvm::StringRef syntax = "", uint32_t flags = 0); virtual ~CommandObject(); @@ -129,7 +128,7 @@ public: virtual const char *GetSyntax(); - const char *GetCommandName(); + llvm::StringRef GetCommandName() const; virtual void SetHelp(const char *str); @@ -482,8 +481,8 @@ protected: class CommandObjectRaw : public CommandObject { public: - CommandObjectRaw(CommandInterpreter &interpreter, const char *name, - const char *help = nullptr, const char *syntax = nullptr, + CommandObjectRaw(CommandInterpreter &interpreter, llvm::StringRef name, + llvm::StringRef help = "", llvm::StringRef syntax = "", uint32_t flags = 0) : CommandObject(interpreter, name, help, syntax, flags) {} Modified: lldb/trunk/include/lldb/Interpreter/CommandObjectRegexCommand.h URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/CommandObjectRegexCommand.h?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/include/lldb/Interpreter/CommandObjectRegexCommand.h (original) +++ lldb/trunk/include/lldb/Interpreter/CommandObjectRegexCommand.h Wed Oct 5 16:14:38 2016 @@ -27,9 +27,8 @@ namespace lldb_private { class CommandObjectRegexCommand : public CommandObjectRaw { public: - // TODO: Convert this class to use StringRefs. - CommandObjectRegexCommand(CommandInterpreter &interpreter, const char *name, - const char *help, const char *syntax, + CommandObjectRegexCommand(CommandInterpreter &interpreter, llvm::StringRef name, + llvm::StringRef help, llvm::StringRef syntax, uint32_t max_matches, uint32_t completion_type_mask, bool is_removable); Modified: lldb/trunk/source/API/SBCommandInterpreter.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBCommandInterpreter.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/API/SBCommandInterpreter.cpp (original) +++ lldb/trunk/source/API/SBCommandInterpreter.cpp Wed Oct 5 16:14:38 2016 @@ -538,7 +538,7 @@ SBCommand::SBCommand(lldb::CommandObject bool SBCommand::IsValid() { return m_opaque_sp.get() != nullptr; } const char *SBCommand::GetName() { - return (IsValid() ? m_opaque_sp->GetCommandName() : nullptr); + return (IsValid() ? ConstString(m_opaque_sp->GetCommandName()).AsCString() : nullptr); } const char *SBCommand::GetHelp() { Modified: lldb/trunk/source/Commands/CommandObjectArgs.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectArgs.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectArgs.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectArgs.cpp Wed Oct 5 16:14:38 2016 @@ -148,7 +148,6 @@ bool CommandObjectArgs::DoExecute(Args & value.SetValueType(Value::eValueTypeScalar); CompilerType compiler_type; - llvm::StringRef int_type = arg_type; std::size_t int_pos = arg_type.find("int"); if (int_pos != llvm::StringRef::npos) { Encoding encoding = eEncodingSint; Modified: lldb/trunk/source/Commands/CommandObjectCommands.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectCommands.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectCommands.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectCommands.cpp Wed Oct 5 16:14:38 2016 @@ -337,7 +337,7 @@ protected: } else { result.AppendErrorWithFormat( "'%s' takes exactly one executable filename argument.\n", - GetCommandName()); + GetCommandName().str().c_str()); result.SetStatus(eReturnStatusFailed); } return result.Succeeded(); @@ -421,8 +421,7 @@ public: CommandObjectCommandsAlias(CommandInterpreter &interpreter) : CommandObjectRaw( interpreter, "command alias", - "Define a custom command in terms of an existing command.", - nullptr), + "Define a custom command in terms of an existing command."), m_option_group(), m_command_options() { m_option_group.Append(&m_command_options); m_option_group.Finalize(); @@ -737,7 +736,7 @@ protected: result.SetStatus(eReturnStatusFailed); } else { CommandObjectSP command_obj_sp( - m_interpreter.GetCommandSPExact(actual_command.c_str(), true)); + m_interpreter.GetCommandSPExact(actual_command, true)); CommandObjectSP subcommand_obj_sp; bool use_subcommand = false; if (command_obj_sp) { @@ -748,7 +747,7 @@ protected: while (cmd_obj->IsMultiwordObject() && !args.empty()) { if (argc >= 3) { - llvm::StringRef sub_command = args.GetArgumentAtIndex(0); + const std::string sub_command = args.GetArgumentAtIndex(0); assert(!sub_command.empty()); subcommand_obj_sp = cmd_obj->GetSubcommandSP(sub_command.data()); if (subcommand_obj_sp) { @@ -761,7 +760,7 @@ protected: result.AppendErrorWithFormat( "'%s' is not a valid sub-command of '%s'. " "Unable to create alias.\n", - sub_command.data(), actual_command.c_str()); + sub_command.c_str(), actual_command.c_str()); result.SetStatus(eReturnStatusFailed); return false; } @@ -934,7 +933,7 @@ protected: if (args.empty()) { result.AppendErrorWithFormat("must call '%s' with one or more valid user " "defined regular expression command names", - GetCommandName()); + GetCommandName().str().c_str()); result.SetStatus(eReturnStatusFailed); } @@ -1288,7 +1287,7 @@ public: CommandObjectPythonFunction(CommandInterpreter &interpreter, std::string name, std::string funct, std::string help, ScriptedCommandSynchronicity synch) - : CommandObjectRaw(interpreter, name.c_str(), nullptr, nullptr), + : CommandObjectRaw(interpreter, name), m_function_name(funct), m_synchro(synch), m_fetched_help_long(false) { if (!help.empty()) SetHelp(help.c_str()); @@ -1362,7 +1361,7 @@ public: std::string name, StructuredData::GenericSP cmd_obj_sp, ScriptedCommandSynchronicity synch) - : CommandObjectRaw(interpreter, name.c_str(), nullptr, nullptr), + : CommandObjectRaw(interpreter, name), m_cmd_obj_sp(cmd_obj_sp), m_synchro(synch), m_fetched_help_short(false), m_fetched_help_long(false) { StreamString stream; Modified: lldb/trunk/source/Commands/CommandObjectExpression.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectExpression.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectExpression.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectExpression.cpp Wed Oct 5 16:14:38 2016 @@ -220,7 +220,7 @@ CommandObjectExpression::CommandObjectEx interpreter, "expression", "Evaluate an expression on the current " "thread. Displays any returned value " "with LLDB's default formatting.", - nullptr, eCommandProcessMustBePaused | eCommandTryTargetAPILock), + "", eCommandProcessMustBePaused | eCommandTryTargetAPILock), IOHandlerDelegate(IOHandlerDelegate::Completion::Expression), m_option_group(), m_format_options(eFormatDefault), m_repl_option(LLDB_OPT_SET_1, false, "repl", 'r', "Drop into REPL", false, Modified: lldb/trunk/source/Commands/CommandObjectHelp.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectHelp.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectHelp.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectHelp.cpp Wed Oct 5 16:14:38 2016 @@ -166,7 +166,7 @@ bool CommandObjectHelp::DoExecute(Args & m_interpreter.GetCommandPrefix(), sub_command.c_str()); result.GetOutputStream().Printf( "\nThe closest match is '%s'. Help on it follows.\n\n", - sub_cmd_obj->GetCommandName()); + sub_cmd_obj->GetCommandName().str().c_str()); } } Modified: lldb/trunk/source/Commands/CommandObjectMultiword.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectMultiword.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectMultiword.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectMultiword.cpp Wed Oct 5 16:14:38 2016 @@ -143,7 +143,7 @@ bool CommandObjectMultiword::Execute(con } } else { result.AppendErrorWithFormat("'%s' does not have any subcommands.\n", - GetCommandName()); + GetCommandName().str().c_str()); result.SetStatus(eReturnStatusFailed); } } Modified: lldb/trunk/source/Commands/CommandObjectSettings.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectSettings.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectSettings.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectSettings.cpp Wed Oct 5 16:14:38 2016 @@ -37,8 +37,7 @@ class CommandObjectSettingsSet : public public: CommandObjectSettingsSet(CommandInterpreter &interpreter) : CommandObjectRaw(interpreter, "settings set", - "Set the value of the specified debugger setting.", - nullptr), + "Set the value of the specified debugger setting."), m_options() { CommandArgumentEntry arg1; CommandArgumentEntry arg2; @@ -409,8 +408,7 @@ public: CommandObjectSettingsRemove(CommandInterpreter &interpreter) : CommandObjectRaw(interpreter, "settings remove", "Remove a value from a setting, specified by array " - "index or dictionary key.", - nullptr) { + "index or dictionary key.") { CommandArgumentEntry arg1; CommandArgumentEntry arg2; CommandArgumentData var_name_arg; @@ -517,8 +515,7 @@ public: CommandObjectSettingsReplace(CommandInterpreter &interpreter) : CommandObjectRaw(interpreter, "settings replace", "Replace the debugger setting value specified by " - "array index or dictionary key.", - nullptr) { + "array index or dictionary key.") { CommandArgumentEntry arg1; CommandArgumentEntry arg2; CommandArgumentEntry arg3; @@ -629,8 +626,7 @@ public: : CommandObjectRaw(interpreter, "settings insert-before", "Insert one or more values into an debugger array " "setting immediately before the specified element " - "index.", - nullptr) { + "index.") { CommandArgumentEntry arg1; CommandArgumentEntry arg2; CommandArgumentEntry arg3; @@ -741,8 +737,7 @@ public: CommandObjectSettingsInsertAfter(CommandInterpreter &interpreter) : CommandObjectRaw(interpreter, "settings insert-after", "Insert one or more values into a debugger array " - "settings after the specified element index.", - nullptr) { + "settings after the specified element index.") { CommandArgumentEntry arg1; CommandArgumentEntry arg2; CommandArgumentEntry arg3; @@ -853,8 +848,7 @@ public: CommandObjectSettingsAppend(CommandInterpreter &interpreter) : CommandObjectRaw(interpreter, "settings append", "Append one or more values to a debugger array, " - "dictionary, or string setting.", - nullptr) { + "dictionary, or string setting.") { CommandArgumentEntry arg1; CommandArgumentEntry arg2; CommandArgumentData var_name_arg; Modified: lldb/trunk/source/Commands/CommandObjectSource.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectSource.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectSource.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectSource.cpp Wed Oct 5 16:14:38 2016 @@ -585,7 +585,7 @@ protected: if (argc != 0) { result.AppendErrorWithFormat("'%s' takes no arguments, only flags.\n", - GetCommandName()); + GetCommandName().str().c_str()); result.SetStatus(eReturnStatusFailed); return false; } @@ -990,7 +990,7 @@ protected: if (argc != 0) { result.AppendErrorWithFormat("'%s' takes no arguments, only flags.\n", - GetCommandName()); + GetCommandName().str().c_str()); result.SetStatus(eReturnStatusFailed); return false; } Modified: lldb/trunk/source/Commands/CommandObjectSyntax.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectSyntax.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectSyntax.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectSyntax.cpp Wed Oct 5 16:14:38 2016 @@ -77,7 +77,7 @@ bool CommandObjectSyntax::DoExecute(Args output_strm.Printf("\nSyntax: %s\n", cmd_obj->GetSyntax()); output_strm.Printf( "(Try 'help %s' for more information on command options syntax.)\n", - cmd_obj->GetCommandName()); + cmd_obj->GetCommandName().str().c_str()); result.SetStatus(eReturnStatusSuccessFinishNoResult); } else { output_strm.Printf("\nSyntax: %s\n", cmd_obj->GetSyntax()); Modified: lldb/trunk/source/Commands/CommandObjectType.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectType.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectType.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectType.cpp Wed Oct 5 16:14:38 2016 @@ -3026,7 +3026,7 @@ public: CommandObjectFormatterInfo(CommandInterpreter &interpreter, const char *formatter_name, DiscoveryFunction discovery_func) - : CommandObjectRaw(interpreter, nullptr, nullptr, nullptr, + : CommandObjectRaw(interpreter, "", "", "", eCommandRequiresFrame), m_formatter_name(formatter_name ? formatter_name : ""), m_discovery_function(discovery_func) { Modified: lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp (original) +++ lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp Wed Oct 5 16:14:38 2016 @@ -990,7 +990,7 @@ public: "If watchpoint setting fails, consider disable/delete existing " "ones " "to free up resources.", - nullptr, + "", eCommandRequiresFrame | eCommandTryTargetAPILock | eCommandProcessMustBeLaunched | eCommandProcessMustBePaused), m_option_group(), m_option_watchpoint() { Modified: lldb/trunk/source/Core/Stream.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Stream.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Core/Stream.cpp (original) +++ lldb/trunk/source/Core/Stream.cpp Wed Oct 5 16:14:38 2016 @@ -205,6 +205,10 @@ size_t Stream::Indent(const char *s) { return Printf("%*.*s%s", m_indent_level, m_indent_level, "", s ? s : ""); } +size_t Stream::Indent(llvm::StringRef str) { + return Printf("%*.*s%s", m_indent_level, m_indent_level, "", str.str().c_str()); +} + //------------------------------------------------------------------ // Stream a character "ch" out to this stream. //------------------------------------------------------------------ Modified: lldb/trunk/source/Interpreter/Args.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/Args.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Interpreter/Args.cpp (original) +++ lldb/trunk/source/Interpreter/Args.cpp Wed Oct 5 16:14:38 2016 @@ -978,9 +978,11 @@ bool Args::IsPositionalArgument(const ch return is_positional; } -void Args::ParseAliasOptions(Options &options, CommandReturnObject &result, - OptionArgVector *option_arg_vector, - std::string &raw_input_string) { +std::string Args::ParseAliasOptions(Options &options, + CommandReturnObject &result, + OptionArgVector *option_arg_vector, + llvm::StringRef raw_input_string) { + std::string result_string(raw_input_string); StreamString sstr; int i; Option *long_options = options.GetLongOptions(); @@ -988,7 +990,7 @@ void Args::ParseAliasOptions(Options &op if (long_options == nullptr) { result.AppendError("invalid long options"); result.SetStatus(eReturnStatusFailed); - return; + return result_string; } for (i = 0; long_options[i].definition != nullptr; ++i) { @@ -1048,7 +1050,7 @@ void Args::ParseAliasOptions(Options &op if (long_options_index == -1) { result.AppendErrorWithFormat("Invalid option with value '%c'.\n", val); result.SetStatus(eReturnStatusFailed); - return; + return result_string; } StreamString option_str; @@ -1065,7 +1067,7 @@ void Args::ParseAliasOptions(Options &op "Option '%s' is missing argument specifier.\n", option_str.GetData()); result.SetStatus(eReturnStatusFailed); - return; + return result_string; } LLVM_FALLTHROUGH; case OptionParser::eOptionalArgument: @@ -1078,7 +1080,7 @@ void Args::ParseAliasOptions(Options &op "in has_arg field for option '%c'.\n", val); result.SetStatus(eReturnStatusFailed); - return; + return result_string; } if (!option_arg) option_arg = "<no-argument>"; @@ -1092,11 +1094,11 @@ void Args::ParseAliasOptions(Options &op if (idx == size_t(-1)) continue; - if (raw_input_string.size() > 0) { + if (!result_string.empty()) { const char *tmp_arg = GetArgumentAtIndex(idx); - size_t pos = raw_input_string.find(tmp_arg); + size_t pos = result_string.find(tmp_arg); if (pos != std::string::npos) - raw_input_string.erase(pos, strlen(tmp_arg)); + result_string.erase(pos, strlen(tmp_arg)); } ReplaceArgumentAtIndex(idx, llvm::StringRef()); if ((long_options[long_options_index].definition->option_has_arg != @@ -1105,15 +1107,16 @@ void Args::ParseAliasOptions(Options &op (idx + 1 < GetArgumentCount()) && (strcmp(OptionParser::GetOptionArgument(), GetArgumentAtIndex(idx + 1)) == 0)) { - if (raw_input_string.size() > 0) { + if (result_string.size() > 0) { const char *tmp_arg = GetArgumentAtIndex(idx + 1); - size_t pos = raw_input_string.find(tmp_arg); + size_t pos = result_string.find(tmp_arg); if (pos != std::string::npos) - raw_input_string.erase(pos, strlen(tmp_arg)); + result_string.erase(pos, strlen(tmp_arg)); } ReplaceArgumentAtIndex(idx + 1, llvm::StringRef()); } } + return result_string; } void Args::ParseArgsForCompletion(Options &options, Modified: lldb/trunk/source/Interpreter/CommandAlias.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandAlias.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Interpreter/CommandAlias.cpp (original) +++ lldb/trunk/source/Interpreter/CommandAlias.cpp Wed Oct 5 16:14:38 2016 @@ -1,5 +1,4 @@ -//===-- CommandAlias.cpp ------------------------------------------*- C++ -//-*-===// +//===-- CommandAlias.cpp -----------------------------------------*- C++-*-===// // // The LLVM Compiler Infrastructure // @@ -22,16 +21,16 @@ using namespace lldb; using namespace lldb_private; static bool ProcessAliasOptionsArgs(lldb::CommandObjectSP &cmd_obj_sp, - const char *options_args, + llvm::StringRef options_args, OptionArgVectorSP &option_arg_vector_sp) { bool success = true; OptionArgVector *option_arg_vector = option_arg_vector_sp.get(); - if (!options_args || (strlen(options_args) < 1)) + if (options_args.size() < 1) return true; - std::string options_string(options_args); Args args(options_args); + std::string options_string(options_args); CommandReturnObject result; // Check to see if the command being aliased can take any command options. Options *options = cmd_obj_sp->GetOptions(); @@ -42,7 +41,8 @@ static bool ProcessAliasOptionsArgs(lldb cmd_obj_sp->GetCommandInterpreter().GetExecutionContext(); options->NotifyOptionParsingStarting(&exe_ctx); args.Unshift(llvm::StringRef("dummy_arg")); - args.ParseAliasOptions(*options, result, option_arg_vector, options_string); + options_string = args.ParseAliasOptions(*options, result, option_arg_vector, + options_args); args.Shift(); if (result.Succeeded()) options->VerifyPartialOptions(result); @@ -70,11 +70,11 @@ static bool ProcessAliasOptionsArgs(lldb CommandAlias::CommandAlias(CommandInterpreter &interpreter, lldb::CommandObjectSP cmd_sp, - const char *options_args, const char *name, - const char *help, const char *syntax, uint32_t flags) + llvm::StringRef options_args, llvm::StringRef name, + llvm::StringRef help, llvm::StringRef syntax, + uint32_t flags) : CommandObject(interpreter, name, help, syntax, flags), - m_underlying_command_sp(), - m_option_string(options_args ? options_args : ""), + m_underlying_command_sp(), m_option_string(options_args), m_option_args_sp(new OptionArgVector), m_is_dashdash_alias(eLazyBoolCalculate), m_did_set_help(false), m_did_set_help_long(false) { @@ -85,7 +85,7 @@ CommandAlias::CommandAlias(CommandInterp i++) { m_arguments.push_back(*cmd_entry); } - if (!help || !help[0]) { + if (!help.empty()) { StreamString sstr; StreamString translation_and_help; GetAliasExpansion(sstr); @@ -144,8 +144,8 @@ bool CommandAlias::Execute(const char *a } void CommandAlias::GetAliasExpansion(StreamString &help_string) { - const char *command_name = m_underlying_command_sp->GetCommandName(); - help_string.Printf("'%s", command_name); + llvm::StringRef command_name = m_underlying_command_sp->GetCommandName(); + help_string.Printf("'%*s", (int)command_name.size(), command_name.data()); if (!m_option_args_sp) { help_string.Printf("'"); Modified: lldb/trunk/source/Interpreter/CommandInterpreter.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandInterpreter.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Interpreter/CommandInterpreter.cpp (original) +++ lldb/trunk/source/Interpreter/CommandInterpreter.cpp Wed Oct 5 16:14:38 2016 @@ -784,17 +784,16 @@ int CommandInterpreter::GetCommandNamesM return matches.GetSize(); } -CommandObjectSP CommandInterpreter::GetCommandSP(const char *cmd_cstr, +CommandObjectSP CommandInterpreter::GetCommandSP(llvm::StringRef cmd_str, bool include_aliases, bool exact, - StringList *matches) { - CommandObject::CommandMap::iterator pos; + StringList *matches) const { CommandObjectSP command_sp; - std::string cmd(cmd_cstr); + std::string cmd = cmd_str; if (HasCommands()) { - pos = m_command_dict.find(cmd); + auto pos = m_command_dict.find(cmd); if (pos != m_command_dict.end()) command_sp = pos->second; } @@ -806,7 +805,7 @@ CommandObjectSP CommandInterpreter::GetC } if (HasUserCommands()) { - pos = m_user_dict.find(cmd); + auto pos = m_user_dict.find(cmd); if (pos != m_user_dict.end()) command_sp = pos->second; } @@ -831,19 +830,19 @@ CommandObjectSP CommandInterpreter::GetC if (HasCommands()) { num_cmd_matches = - AddNamesMatchingPartialString(m_command_dict, cmd_cstr, *matches); + AddNamesMatchingPartialString(m_command_dict, cmd_str, *matches); } if (num_cmd_matches == 1) { cmd.assign(matches->GetStringAtIndex(0)); - pos = m_command_dict.find(cmd); + auto pos = m_command_dict.find(cmd); if (pos != m_command_dict.end()) real_match_sp = pos->second; } if (include_aliases && HasAliases()) { num_alias_matches = - AddNamesMatchingPartialString(m_alias_dict, cmd_cstr, *matches); + AddNamesMatchingPartialString(m_alias_dict, cmd_str, *matches); } if (num_alias_matches == 1) { @@ -855,14 +854,14 @@ CommandObjectSP CommandInterpreter::GetC if (HasUserCommands()) { num_user_matches = - AddNamesMatchingPartialString(m_user_dict, cmd_cstr, *matches); + AddNamesMatchingPartialString(m_user_dict, cmd_str, *matches); } if (num_user_matches == 1) { cmd.assign( matches->GetStringAtIndex(num_cmd_matches + num_alias_matches)); - pos = m_user_dict.find(cmd); + auto pos = m_user_dict.find(cmd); if (pos != m_user_dict.end()) user_match_sp = pos->second; } @@ -879,30 +878,32 @@ CommandObjectSP CommandInterpreter::GetC return user_match_sp; } } else if (matches && command_sp) { - matches->AppendString(cmd_cstr); + matches->AppendString(cmd_str); } return command_sp; } -bool CommandInterpreter::AddCommand(const char *name, +bool CommandInterpreter::AddCommand(llvm::StringRef name, const lldb::CommandObjectSP &cmd_sp, bool can_replace) { if (cmd_sp.get()) assert((this == &cmd_sp->GetCommandInterpreter()) && "tried to add a CommandObject from a different interpreter"); - if (name && name[0]) { - std::string name_sstr(name); - bool found = (m_command_dict.find(name_sstr) != m_command_dict.end()); - if (found && !can_replace) - return false; - if (found && m_command_dict[name_sstr]->IsRemovable() == false) + if (name.empty()) + return false; + + std::string name_sstr(name); + auto name_iter = m_command_dict.find(name_sstr); + if (name_iter != m_command_dict.end()) { + if (!can_replace || !name_iter->second->IsRemovable()) return false; + name_iter->second = cmd_sp; + } else { m_command_dict[name_sstr] = cmd_sp; - return true; } - return false; + return true; } bool CommandInterpreter::AddUserCommand(std::string name, @@ -936,21 +937,21 @@ bool CommandInterpreter::AddUserCommand( return false; } -CommandObjectSP CommandInterpreter::GetCommandSPExact(const char *cmd_cstr, - bool include_aliases) { - Args cmd_words(cmd_cstr); // Break up the command string into words, in case +CommandObjectSP CommandInterpreter::GetCommandSPExact(llvm::StringRef cmd_str, + bool include_aliases) const { + Args cmd_words(cmd_str); // Break up the command string into words, in case // it's a multi-word command. CommandObjectSP ret_val; // Possibly empty return value. - if (cmd_cstr == nullptr) + if (cmd_str.empty()) return ret_val; if (cmd_words.GetArgumentCount() == 1) - return GetCommandSP(cmd_cstr, include_aliases, true, nullptr); + return GetCommandSP(cmd_str, include_aliases, true, nullptr); else { // We have a multi-word command (seemingly), so we need to do more work. // First, get the cmd_obj_sp for the first word in the command. - CommandObjectSP cmd_obj_sp = GetCommandSP(cmd_words.GetArgumentAtIndex(0), + CommandObjectSP cmd_obj_sp = GetCommandSP(llvm::StringRef(cmd_words.GetArgumentAtIndex(0)), include_aliases, true, nullptr); if (cmd_obj_sp.get() != nullptr) { // Loop through the rest of the words in the command (everything passed in @@ -968,28 +969,22 @@ CommandObjectSP CommandInterpreter::GetC return ret_val; } else // We have more words in the command name, but we don't have a - // multiword object. Fail and return - // empty 'ret_val'. + // multiword object. Fail and return empty 'ret_val'. return ret_val; } // We successfully looped through all the command words and got valid - // command objects for them. Assign the - // last object retrieved to 'ret_val'. + // command objects for them. Assign the last object retrieved to + // 'ret_val'. ret_val = cmd_obj_sp; } } return ret_val; } -CommandObject *CommandInterpreter::GetCommandObjectExact(const char *cmd_cstr, - bool include_aliases) { - return GetCommandSPExact(cmd_cstr, include_aliases).get(); -} - -CommandObject *CommandInterpreter::GetCommandObject(const char *cmd_cstr, - StringList *matches) { +CommandObject *CommandInterpreter::GetCommandObject(llvm::StringRef cmd_str, + StringList *matches) const { CommandObject *command_obj = - GetCommandSP(cmd_cstr, false, true, matches).get(); + GetCommandSP(cmd_str, false, true, matches).get(); // If we didn't find an exact match to the command string in the commands, // look in @@ -998,14 +993,14 @@ CommandObject *CommandInterpreter::GetCo if (command_obj) return command_obj; - command_obj = GetCommandSP(cmd_cstr, true, true, matches).get(); + command_obj = GetCommandSP(cmd_str, true, true, matches).get(); if (command_obj) return command_obj; // If there wasn't an exact match then look for an inexact one in just the // commands - command_obj = GetCommandSP(cmd_cstr, false, false, nullptr).get(); + command_obj = GetCommandSP(cmd_str, false, false, nullptr).get(); // Finally, if there wasn't an inexact match among the commands, look for an // inexact @@ -1017,7 +1012,7 @@ CommandObject *CommandInterpreter::GetCo return command_obj; } - return GetCommandSP(cmd_cstr, true, false, matches).get(); + return GetCommandSP(cmd_str, true, false, matches).get(); } bool CommandInterpreter::CommandExists(const char *cmd) { @@ -1191,7 +1186,7 @@ CommandInterpreter::GetCommandObjectForC // Since cmd_obj is NULL we are on our first time through this loop. // Check to see if cmd_word is a valid // command or alias. - cmd_obj = GetCommandObject(cmd_word.c_str()); + cmd_obj = GetCommandObject(cmd_word); else if (cmd_obj->IsMultiwordObject()) { // Our current object is a multi-word object; see if the cmd_word is a // valid sub-command for our object. @@ -1338,7 +1333,7 @@ CommandObject *CommandInterpreter::Build (alias_name_str.compare(cmd_args.GetArgumentAtIndex(0)) != 0)) cmd_args.Unshift(alias_name_str); - result_str.Printf("%s", alias_cmd_obj->GetCommandName()); + result_str.Printf("%s", alias_cmd_obj->GetCommandName().str().c_str()); if (!option_arg_vector_sp.get()) { alias_result = result_str.GetData(); @@ -1647,10 +1642,9 @@ bool CommandInterpreter::HandleCommand(c // Although the user may have abbreviated the command, the command_string now // has the command expanded to the full name. For example, if the input // was "br s -n main", command_string is now "breakpoint set -n main". - if (log) { - log->Printf("HandleCommand, cmd_obj : '%s'", - cmd_obj ? cmd_obj->GetCommandName() : "<not found>"); + llvm::StringRef command_name = cmd_obj ? cmd_obj->GetCommandName() : "<not found>"; + log->Printf("HandleCommand, cmd_obj : '%s'", command_name.str().c_str()); log->Printf("HandleCommand, (revised) command_string: '%s'", command_string.c_str()); const bool wants_raw_input = @@ -1677,7 +1671,7 @@ bool CommandInterpreter::HandleCommand(c } std::string remainder; - const std::size_t actual_cmd_name_len = strlen(cmd_obj->GetCommandName()); + const std::size_t actual_cmd_name_len = cmd_obj->GetCommandName().size(); if (actual_cmd_name_len < command_string.length()) remainder = command_string.substr(actual_cmd_name_len); @@ -1935,13 +1929,13 @@ CommandAlias *CommandInterpreter::GetAli return nullptr; } -bool CommandInterpreter::HasCommands() { return (!m_command_dict.empty()); } +bool CommandInterpreter::HasCommands() const { return (!m_command_dict.empty()); } -bool CommandInterpreter::HasAliases() { return (!m_alias_dict.empty()); } +bool CommandInterpreter::HasAliases() const { return (!m_alias_dict.empty()); } -bool CommandInterpreter::HasUserCommands() { return (!m_user_dict.empty()); } +bool CommandInterpreter::HasUserCommands() const { return (!m_user_dict.empty()); } -bool CommandInterpreter::HasAliasOptions() { return HasAliases(); } +bool CommandInterpreter::HasAliasOptions() const { return HasAliases(); } void CommandInterpreter::BuildAliasCommandArgs(CommandObject *alias_cmd_obj, const char *alias_name, @@ -2949,7 +2943,7 @@ CommandInterpreter::ResolveCommandImpl(s if (cmd_obj == nullptr) { std::string full_name; bool is_alias = GetAliasFullName(next_word.c_str(), full_name); - cmd_obj = GetCommandObject(next_word.c_str(), &matches); + cmd_obj = GetCommandObject(next_word, &matches); bool is_real_command = (is_alias == false) || (cmd_obj != nullptr && cmd_obj->IsAlias() == false); @@ -2961,14 +2955,15 @@ CommandInterpreter::ResolveCommandImpl(s revised_command_line.Printf("%s", alias_result.c_str()); if (cmd_obj) { wants_raw_input = cmd_obj->WantsRawCommandString(); - actual_cmd_name_len = strlen(cmd_obj->GetCommandName()); + actual_cmd_name_len = cmd_obj->GetCommandName().size(); } } else { if (!cmd_obj) - cmd_obj = GetCommandObject(next_word.c_str(), &matches); + cmd_obj = GetCommandObject(next_word, &matches); if (cmd_obj) { - actual_cmd_name_len += strlen(cmd_obj->GetCommandName()); - revised_command_line.Printf("%s", cmd_obj->GetCommandName()); + llvm::StringRef cmd_name = cmd_obj->GetCommandName(); + actual_cmd_name_len += cmd_name.size(); + revised_command_line.Printf("%s", cmd_name.str().c_str()); wants_raw_input = cmd_obj->WantsRawCommandString(); } else { revised_command_line.Printf("%s", next_word.c_str()); @@ -2981,9 +2976,10 @@ CommandInterpreter::ResolveCommandImpl(s if (sub_cmd_obj) { // The subcommand's name includes the parent command's name, // so restart rather than append to the revised_command_line. - actual_cmd_name_len = strlen(sub_cmd_obj->GetCommandName()) + 1; + llvm::StringRef sub_cmd_name = sub_cmd_obj->GetCommandName(); + actual_cmd_name_len = sub_cmd_name.size() + 1; revised_command_line.Clear(); - revised_command_line.Printf("%s", sub_cmd_obj->GetCommandName()); + revised_command_line.Printf("%s", sub_cmd_name.str().c_str()); cmd_obj = sub_cmd_obj; wants_raw_input = cmd_obj->WantsRawCommandString(); } else { @@ -3034,7 +3030,7 @@ CommandInterpreter::ResolveCommandImpl(s result.AppendErrorWithFormat( "command '%s' did not recognize '%s%s%s' as valid (subcommand " "might be invalid).\n", - cmd_obj->GetCommandName(), + cmd_obj->GetCommandName().str().c_str(), next_word.empty() ? "" : next_word.c_str(), next_word.empty() ? " -- " : " ", suffix.c_str()); result.SetStatus(eReturnStatusFailed); @@ -3074,7 +3070,7 @@ CommandInterpreter::ResolveCommandImpl(s } else { result.AppendErrorWithFormat( "the '%s' command doesn't support the --gdb-format option\n", - cmd_obj->GetCommandName()); + cmd_obj->GetCommandName().str().c_str()); result.SetStatus(eReturnStatusFailed); return nullptr; } Modified: lldb/trunk/source/Interpreter/CommandObject.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandObject.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Interpreter/CommandObject.cpp (original) +++ lldb/trunk/source/Interpreter/CommandObject.cpp Wed Oct 5 16:14:38 2016 @@ -40,17 +40,14 @@ using namespace lldb_private; // CommandObject //------------------------------------------------------------------------- -CommandObject::CommandObject(CommandInterpreter &interpreter, const char *name, - const char *help, const char *syntax, - uint32_t flags) - : m_interpreter(interpreter), m_cmd_name(name ? name : ""), +CommandObject::CommandObject(CommandInterpreter &interpreter, llvm::StringRef name, + llvm::StringRef help, llvm::StringRef syntax, uint32_t flags) + : m_interpreter(interpreter), m_cmd_name(name), m_cmd_help_short(), m_cmd_help_long(), m_cmd_syntax(), m_flags(flags), m_arguments(), m_deprecated_command_override_callback(nullptr), m_command_override_callback(nullptr), m_command_override_baton(nullptr) { - if (help && help[0]) - m_cmd_help_short = help; - if (syntax && syntax[0]) - m_cmd_syntax = syntax; + m_cmd_help_short = help; + m_cmd_syntax = syntax; } CommandObject::~CommandObject() {} @@ -62,7 +59,7 @@ const char *CommandObject::GetHelpLong() const char *CommandObject::GetSyntax() { if (m_cmd_syntax.length() == 0) { StreamString syntax_str; - syntax_str.Printf("%s", GetCommandName()); + syntax_str.Printf("%s", GetCommandName().str().c_str()); if (!IsDashDashCommand() && GetOptions() != nullptr) syntax_str.Printf(" <cmd-options>"); if (m_arguments.size() > 0) { @@ -78,7 +75,7 @@ const char *CommandObject::GetSyntax() { return m_cmd_syntax.c_str(); } -const char *CommandObject::GetCommandName() { return m_cmd_name.c_str(); } +llvm::StringRef CommandObject::GetCommandName() const { return m_cmd_name; } void CommandObject::SetCommandName(const char *name) { m_cmd_name = name; } Modified: lldb/trunk/source/Interpreter/CommandObjectRegexCommand.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandObjectRegexCommand.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Interpreter/CommandObjectRegexCommand.cpp (original) +++ lldb/trunk/source/Interpreter/CommandObjectRegexCommand.cpp Wed Oct 5 16:14:38 2016 @@ -23,8 +23,8 @@ using namespace lldb_private; // CommandObjectRegexCommand constructor //---------------------------------------------------------------------- CommandObjectRegexCommand::CommandObjectRegexCommand( - CommandInterpreter &interpreter, const char *name, const char *help, - const char *syntax, uint32_t max_matches, uint32_t completion_type_mask, + CommandInterpreter &interpreter, llvm::StringRef name, llvm::StringRef help, + llvm::StringRef syntax, uint32_t max_matches, uint32_t completion_type_mask, bool is_removable) : CommandObjectRaw(interpreter, name, help, syntax), m_max_matches(max_matches), m_completion_type_mask(completion_type_mask), Modified: lldb/trunk/source/Interpreter/Options.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/Options.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Interpreter/Options.cpp (original) +++ lldb/trunk/source/Interpreter/Options.cpp Wed Oct 5 16:14:38 2016 @@ -406,7 +406,7 @@ void Options::GenerateOptionUsage(Stream auto opt_defs = GetDefinitions(); const uint32_t save_indent_level = strm.GetIndentLevel(); - const char *name; + llvm::StringRef name; StreamString arguments_str; Modified: lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp (original) +++ lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp Wed Oct 5 16:14:38 2016 @@ -5058,8 +5058,7 @@ public: "and print the response." "The argument passed to this command will be hex " "encoded into a valid 'qRcmd' packet, sent and the " - "response will be printed.", - NULL) {} + "response will be printed.") {} ~CommandObjectProcessGDBRemotePacketMonitor() {} Modified: lldb/trunk/source/Target/LanguageRuntime.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/LanguageRuntime.cpp?rev=283384&r1=283383&r2=283384&view=diff ============================================================================== --- lldb/trunk/source/Target/LanguageRuntime.cpp (original) +++ lldb/trunk/source/Target/LanguageRuntime.cpp Wed Oct 5 16:14:38 2016 @@ -287,12 +287,10 @@ void LanguageRuntime::InitializeCommands command_callback(parent->GetCommandInterpreter()); if (command) { // the CommandObject vended by a Language plugin cannot be created once - // and cached because - // we may create multiple debuggers and need one instance of the command - // each - the implementing function - // is meant to create a new instance of the command each time it is - // invoked - parent->LoadSubCommand(command->GetCommandName(), command); + // and cached because we may create multiple debuggers and need one + // instance of the command each - the implementing function is meant to + // create a new instance of the command each time it is invoked. + parent->LoadSubCommand(command->GetCommandName().str().c_str(), command); } } } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits