summaryrefslogtreecommitdiffstats
path: root/lldb/source/Interpreter/CommandInterpreter.cpp
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2013-02-21 23:57:25 +0000
committerEnrico Granata <egranata@apple.com>2013-02-21 23:57:25 +0000
commitd2f16e2c2dfb8a5b46c8e7222eb75d16c7453eb5 (patch)
treef6464f6aebb6eee53c399462e0911b78af0c234a /lldb/source/Interpreter/CommandInterpreter.cpp
parentfe03e40d837ed2291de7f667d760709358f50c1f (diff)
downloadbcm5719-llvm-d2f16e2c2dfb8a5b46c8e7222eb75d16c7453eb5.tar.gz
bcm5719-llvm-d2f16e2c2dfb8a5b46c8e7222eb75d16c7453eb5.zip
<rdar://problem/13265017>
The notion of Crossref command has long been forgotten, and there is nothing using CommandObjectCrossref in the current LLDB codebase However, this was causing a conflict with process plugins and command aliases ending up in an infinite loop under situations such as: (lldb) command alias monitor process plugin packet monitor (lldb) process att -n Calendar Process 28709 stopped Executable module set to "/Applications/Calendar.app/Contents/MacOS/Calendar". Architecture set to: x86_64-apple-macosx. (lldb) command alias monitor process plugin packet monitor This fixes the loop (and consequent crash) by disposing of Crossref commands and related code llvm-svn: 175831
Diffstat (limited to 'lldb/source/Interpreter/CommandInterpreter.cpp')
-rw-r--r--lldb/source/Interpreter/CommandInterpreter.cpp33
1 files changed, 0 insertions, 33 deletions
diff --git a/lldb/source/Interpreter/CommandInterpreter.cpp b/lldb/source/Interpreter/CommandInterpreter.cpp
index 89ed5641acf..b28ed64b252 100644
--- a/lldb/source/Interpreter/CommandInterpreter.cpp
+++ b/lldb/source/Interpreter/CommandInterpreter.cpp
@@ -355,34 +355,15 @@ CommandInterpreter::LoadCommandDictionary ()
{
Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__);
- // **** IMPORTANT **** IMPORTANT *** IMPORTANT *** **** IMPORTANT **** IMPORTANT *** IMPORTANT ***
- //
- // Command objects that are used as cross reference objects (i.e. they inherit from CommandObjectCrossref)
- // *MUST* be created and put into the command dictionary *BEFORE* any multi-word commands (which may use
- // the cross-referencing stuff) are created!!!
- //
- // **** IMPORTANT **** IMPORTANT *** IMPORTANT *** **** IMPORTANT **** IMPORTANT *** IMPORTANT ***
-
-
- // Command objects that inherit from CommandObjectCrossref must be created before other command objects
- // are created. This is so that when another command is created that needs to go into a crossref object,
- // the crossref object exists and is ready to take the cross reference. Put the cross referencing command
- // objects into the CommandDictionary now, so they are ready for use when the other commands get created.
-
- // Non-CommandObjectCrossref commands can now be created.
-
lldb::ScriptLanguage script_language = m_debugger.GetScriptLanguage();
m_command_dict["apropos"] = CommandObjectSP (new CommandObjectApropos (*this));
m_command_dict["breakpoint"]= CommandObjectSP (new CommandObjectMultiwordBreakpoint (*this));
- //m_command_dict["call"] = CommandObjectSP (new CommandObjectCall (*this));
m_command_dict["command"] = CommandObjectSP (new CommandObjectMultiwordCommands (*this));
m_command_dict["disassemble"] = CommandObjectSP (new CommandObjectDisassemble (*this));
m_command_dict["expression"]= CommandObjectSP (new CommandObjectExpression (*this));
-// m_command_dict["file"] = CommandObjectSP (new CommandObjectFile (*this));
m_command_dict["frame"] = CommandObjectSP (new CommandObjectMultiwordFrame (*this));
m_command_dict["help"] = CommandObjectSP (new CommandObjectHelp (*this));
- /// m_command_dict["image"] = CommandObjectSP (new CommandObjectImage (*this));
m_command_dict["log"] = CommandObjectSP (new CommandObjectLog (*this));
m_command_dict["memory"] = CommandObjectSP (new CommandObjectMemory (*this));
m_command_dict["platform"] = CommandObjectSP (new CommandObjectPlatform (*this));
@@ -2139,20 +2120,6 @@ CommandInterpreter::Confirm (const char *message, bool default_answer)
return response;
}
-
-void
-CommandInterpreter::CrossRegisterCommand (const char * dest_cmd, const char * object_type)
-{
- CommandObjectSP cmd_obj_sp = GetCommandSPExact (dest_cmd, true);
-
- if (cmd_obj_sp)
- {
- CommandObject *cmd_obj = cmd_obj_sp.get();
- if (cmd_obj->IsCrossRefObject ())
- cmd_obj->AddObject (object_type);
- }
-}
-
OptionArgVectorSP
CommandInterpreter::GetAliasOptions (const char *alias_name)
{
OpenPOWER on IntegriCloud