mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 06:17:47 +08:00
Refactor code to check for terminal sharing
This refactors the code to check for terminal sharing. is_gdb_terminal is exported, and sharing_input_terminal_1 is renamed, slightly refactored, and moved to posix-hdep.c. A new Windows-specific implementation of this function is added to mingw-hdep.c. MSDN has a warning about GetConsoleProcessList This API is not recommended and does not have a virtual terminal equivalent. [...] Applications remoting via cross-platform utilities and transports like SSH may not work as expected if using this API. However, we believe this isn't likely to be an issue for gdb.
This commit is contained in:
@ -19,8 +19,8 @@
|
||||
|
||||
#include "defs.h"
|
||||
#include "gdbsupport/event-loop.h"
|
||||
|
||||
#include "gdbsupport/gdb_select.h"
|
||||
#include "inferior.h"
|
||||
|
||||
/* Wrapper for select. Nothing special needed on POSIX platforms. */
|
||||
|
||||
@ -38,3 +38,21 @@ gdb_console_fputs (const char *buf, FILE *f)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* See inferior.h. */
|
||||
|
||||
tribool
|
||||
sharing_input_terminal (int pid)
|
||||
{
|
||||
/* Using host-dependent code here is fine, because the
|
||||
child_terminal_foo functions are meant to be used by child/native
|
||||
targets. */
|
||||
#if defined (__linux__) || defined (__sun__)
|
||||
char buf[100];
|
||||
|
||||
xsnprintf (buf, sizeof (buf), "/proc/%d/fd/0", pid);
|
||||
return is_gdb_terminal (buf);
|
||||
#else
|
||||
return TRIBOOL_UNKNOWN;
|
||||
#endif
|
||||
}
|
||||
|
Reference in New Issue
Block a user