diff options
author | Greg Clayton <gclayton@apple.com> | 2010-10-19 23:16:00 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2010-10-19 23:16:00 +0000 |
commit | 913c4fa15b6808b38453e90ea2269807a24defd6 (patch) | |
tree | 2a44bc0199b3ef442134967fe891a91a8dfb19d3 /lldb/source/Commands/CommandObjectProcess.cpp | |
parent | c81155eef7fee7bc0efab1d41db7659117ae250a (diff) | |
download | bcm5719-llvm-913c4fa15b6808b38453e90ea2269807a24defd6.tar.gz bcm5719-llvm-913c4fa15b6808b38453e90ea2269807a24defd6.zip |
Ok, last commit for the running processes in a new window. Now you can
optionally specify the tty you want to use if you want to use an existing
terminal window by giving a partial or full path name:
(lldb) process launch --tty=ttys002
This would find the terminal window (or tab on MacOSX) that has ttys002 in its
tty path and use it. If it isn't found, it will use a new terminal window.
llvm-svn: 116878
Diffstat (limited to 'lldb/source/Commands/CommandObjectProcess.cpp')
-rw-r--r-- | lldb/source/Commands/CommandObjectProcess.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lldb/source/Commands/CommandObjectProcess.cpp b/lldb/source/Commands/CommandObjectProcess.cpp index 82d664b0a16..5a54c3dc0fb 100644 --- a/lldb/source/Commands/CommandObjectProcess.cpp +++ b/lldb/source/Commands/CommandObjectProcess.cpp @@ -62,7 +62,11 @@ public: case 'i': stdin_path = option_arg; break; case 'o': stdout_path = option_arg; break; case 'p': plugin_name = option_arg; break; - case 't': in_new_tty = true; break; + case 't': + if (option_arg && option_arg[0]) + tty_name.assign (option_arg); + in_new_tty = true; + break; default: error.SetErrorStringWithFormat("Invalid short option character '%c'.\n", short_option); break; @@ -77,6 +81,7 @@ public: Options::ResetOptionValues(); stop_at_entry = false; in_new_tty = false; + tty_name.clear(); stdin_path.clear(); stdout_path.clear(); stderr_path.clear(); @@ -97,6 +102,7 @@ public: bool stop_at_entry; bool in_new_tty; + std::string tty_name; std::string stderr_path; std::string stdin_path; std::string stdout_path; @@ -216,7 +222,8 @@ public: if (m_options.in_new_tty) { - lldb::pid_t pid = Host::LaunchInNewTerminal (inferior_argv, + lldb::pid_t pid = Host::LaunchInNewTerminal (m_options.tty_name.c_str(), + inferior_argv, inferior_envp, &exe_module->GetArchitecture(), true, @@ -322,7 +329,7 @@ CommandObjectProcessLaunch::CommandOptions::g_option_table[] = { SET1 , false, "stdout", 'o', required_argument, NULL, 0, eArgTypePath, "Redirect stdout for the process to <path>."}, { SET1 , false, "stderr", 'e', required_argument, NULL, 0, eArgTypePath, "Redirect stderr for the process to <path>."}, { SET1 | SET2, false, "plugin", 'p', required_argument, NULL, 0, eArgTypePlugin, "Name of the process plugin you want to use."}, -{ SET2, false, "tty", 't', no_argument, NULL, 0, eArgTypeNone, "Start the process in a new terminal (tty)."}, +{ SET2, false, "tty", 't', optional_argument, NULL, 0, eArgTypePath, "Start the process in a terminal. If <path> is specified, look for a terminal whose name contains <path>, else start the process in a new terminal."}, { 0, false, NULL, 0, 0, NULL, 0, eArgTypeNone, NULL } }; |