aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2011-03-02 21:34:46 +0000
committerGreg Clayton <gclayton@apple.com>2011-03-02 21:34:46 +0000
commit5f2a4f999d33167f55f55886222219321207393d (patch)
tree11ec9d0141d70c12df7fb76e3f3d65793f83aec4 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
parentc4eb31e5e55608c44621754f4193ef5b21e86597 (diff)
downloadllvm-5f2a4f999d33167f55f55886222219321207393d.zip
llvm-5f2a4f999d33167f55f55886222219321207393d.tar.gz
llvm-5f2a4f999d33167f55f55886222219321207393d.tar.bz2
Added a missing API call in SBTarget that enables one to get
anything in a SBSymbolContext filled in given an SBAddress: SBSymbolContext SBTarget::ResolveSymbolContextForAddress (const SBAddress& addr, uint32_t resolve_scope); Also did a little cleanup on the ProcessGDBRemote stdio file handle code. llvm-svn: 126885
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp')
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index 20afb62..df09bf37 100644
--- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -460,13 +460,12 @@ ProcessGDBRemote::DoLaunch
{
lldb_utility::PseudoTerminal pty;
const bool disable_stdio = (launch_flags & eLaunchFlagDisableSTDIO) != 0;
- if (disable_stdio)
- {
- stdin_path = "/dev/null";
- stdout_path = "/dev/null";
- stderr_path = "/dev/null";
- }
- else
+
+ // If the debugserver is local and we aren't disabling STDIO, lets use
+ // a pseudo terminal to instead of relying on the 'O' packets for stdio
+ // since 'O' packets can really slow down debugging if the inferior
+ // does a lot of output.
+ if (m_local_debugserver && !disable_stdio)
{
const char *slave_name = NULL;
if (stdin_path == NULL || stdout_path == NULL || stderr_path == NULL)
@@ -484,13 +483,19 @@ ProcessGDBRemote::DoLaunch
stderr_path = slave_name;
}
- if (stdin_path == NULL && (stdout_path || stderr_path))
+ // Set STDIN to /dev/null if we want STDIO disabled or if either
+ // STDOUT or STDERR have been set to something and STDIN hasn't
+ if (disable_stdio || (stdin_path == NULL && (stdout_path || stderr_path)))
stdin_path = "/dev/null";
- if (stdout_path == NULL && (stdin_path || stderr_path))
+ // Set STDOUT to /dev/null if we want STDIO disabled or if either
+ // STDIN or STDERR have been set to something and STDOUT hasn't
+ if (disable_stdio || (stdout_path == NULL && (stdin_path || stderr_path)))
stdout_path = "/dev/null";
- if (stderr_path == NULL && (stdin_path || stdout_path))
+ // Set STDERR to /dev/null if we want STDIO disabled or if either
+ // STDIN or STDOUT have been set to something and STDERR hasn't
+ if (disable_stdio || (stderr_path == NULL && (stdin_path || stdout_path)))
stderr_path = "/dev/null";
if (stdin_path)