forked from OSchip/llvm-project
rdar://problem/11811338
Add 'attach <pid>|<process-name>' command to lldb, as well as 'detach' which is an alias of 'process detach'. Add two completion test cases for "attach" and "detach". llvm-svn: 162573
This commit is contained in:
parent
cf10446ffa
commit
6d675243b4
|
@ -132,12 +132,18 @@ CommandInterpreter::Initialize ()
|
|||
AddAlias ("exit", cmd_obj_sp);
|
||||
}
|
||||
|
||||
cmd_obj_sp = GetCommandSPExact ("process attach", false);
|
||||
cmd_obj_sp = GetCommandSPExact ("_regexp-attach",false);
|
||||
if (cmd_obj_sp)
|
||||
{
|
||||
AddAlias ("attach", cmd_obj_sp);
|
||||
}
|
||||
|
||||
cmd_obj_sp = GetCommandSPExact ("process detach",false);
|
||||
if (cmd_obj_sp)
|
||||
{
|
||||
AddAlias ("detach", cmd_obj_sp);
|
||||
}
|
||||
|
||||
cmd_obj_sp = GetCommandSPExact ("process continue", false);
|
||||
if (cmd_obj_sp)
|
||||
{
|
||||
|
@ -380,6 +386,21 @@ CommandInterpreter::LoadCommandDictionary ()
|
|||
}
|
||||
}
|
||||
|
||||
std::auto_ptr<CommandObjectRegexCommand>
|
||||
attach_regex_cmd_ap(new CommandObjectRegexCommand (*this,
|
||||
"_regexp-attach",
|
||||
"Attach to a process id if in decimal, otherwise treat the argument as a process name to attach to.",
|
||||
"_regexp-attach [<pid>]\n_regexp-attach [<process-name>]", 2));
|
||||
if (attach_regex_cmd_ap.get())
|
||||
{
|
||||
if (attach_regex_cmd_ap->AddRegexCommand("^([0-9]+)$", "process attach --pid %1") &&
|
||||
attach_regex_cmd_ap->AddRegexCommand("^(.*[^[:space:]])[[:space:]]*$", "process attach --name '%1'"))
|
||||
{
|
||||
CommandObjectSP attach_regex_cmd_sp(attach_regex_cmd_ap.release());
|
||||
m_command_dict[attach_regex_cmd_sp->GetCommandName ()] = attach_regex_cmd_sp;
|
||||
}
|
||||
}
|
||||
|
||||
std::auto_ptr<CommandObjectRegexCommand>
|
||||
down_regex_cmd_ap(new CommandObjectRegexCommand (*this,
|
||||
"_regexp-down",
|
||||
|
|
|
@ -18,6 +18,14 @@ class CommandLineCompletionTestCase(TestBase):
|
|||
os.remove("child_send.txt")
|
||||
os.remove("child_read.txt")
|
||||
|
||||
def test_at(self):
|
||||
"""Test that 'at' completes to 'attach '."""
|
||||
self.complete_from_to('at', 'attach ')
|
||||
|
||||
def test_de(self):
|
||||
"""Test that 'de' completes to 'detach '."""
|
||||
self.complete_from_to('de', 'detach ')
|
||||
|
||||
def test_process_attach_dash_dash_con(self):
|
||||
"""Test that 'process attach --con' completes to 'process attach --continue '."""
|
||||
self.complete_from_to('process attach --con', 'process attach --continue ')
|
||||
|
|
Loading…
Reference in New Issue