forked from Imagelibrary/binutils-gdb
Pass stderr of program run with "target remote |"
via gdb_stderr.
* serial.c (serial_open): Set error_fd to -1.
* serial.h (struct serial): New field error_fd.
(struct serial_opts): New field avail.
* ser-pipe.c (pipe_open): Create another pair
of sockets. Pass stderr to gdb.
* ser-mingw.c (pipe_windows_open): Pass
PEX_STDERR_TO_PIPE to pex_run. Initialize
sd->error_fd.
(pipe_avail): New.
(_initialize_ser_windows): Hook pipe_avail.
* ser-base.c (generic_readchar): Check if there's
anything in stderr channel and route that to gdb_stderr.
This commit is contained in:
10
gdb/serial.h
10
gdb/serial.h
@@ -191,6 +191,11 @@ extern int serial_debug_p (struct serial *scb);
|
||||
struct serial
|
||||
{
|
||||
int fd; /* File descriptor */
|
||||
/* File descriptor for a separate error stream that should be
|
||||
immediately forwarded to gdb_stderr. This may be -1.
|
||||
If != -1, this descriptor should be non-blocking or
|
||||
ops->avail should be non-NULL. */
|
||||
int error_fd;
|
||||
struct serial_ops *ops; /* Function vector */
|
||||
void *state; /* Local context info for open FD */
|
||||
serial_ttystate ttystate; /* Not used (yet) */
|
||||
@@ -246,6 +251,11 @@ struct serial_ops
|
||||
/* Perform a low-level write operation, writing (at most) COUNT
|
||||
bytes from BUF. */
|
||||
int (*write_prim)(struct serial *scb, const void *buf, size_t count);
|
||||
/* Return that number of bytes that can be read from FD
|
||||
without blocking. Return value of -1 means that the
|
||||
the read will not block even if less that requested bytes
|
||||
are available. */
|
||||
int (*avail)(struct serial *scb, int fd);
|
||||
|
||||
#ifdef USE_WIN32API
|
||||
/* Return a handle to wait on, indicating available data from SCB
|
||||
|
||||
Reference in New Issue
Block a user