diff options
author | Alan Hayward <alan.hayward@arm.com> | 2019-05-28 10:07:54 +0100 |
---|---|---|
committer | Alan Hayward <alan.hayward@arm.com> | 2019-05-28 10:07:54 +0100 |
commit | 766f883622ef008230250aa5aecef9fb9b29f233 (patch) | |
tree | e1302190a7dc0b839e38d03dfbc192af18701dd6 /gdb/top.c | |
parent | 0f4a61b42002f568473f821f00dd240413beadd0 (diff) | |
download | fsf-binutils-gdb-766f883622ef008230250aa5aecef9fb9b29f233.zip fsf-binutils-gdb-766f883622ef008230250aa5aecef9fb9b29f233.tar.gz fsf-binutils-gdb-766f883622ef008230250aa5aecef9fb9b29f233.tar.bz2 |
Suppress SIGTTOU when handling errors
Calls to error () can cause SIGTTOU to send gdb to the background.
For example, on an Arm build:
(gdb) b main
Breakpoint 1 at 0x10774: file /build/gdb/testsuite/../../../src/binutils-gdb/gdb/testsuite/gdb.base/watchpoint.c, line 174.
(gdb) r
Starting program: /build/gdb/testsuite/outputs/gdb.base/watchpoint/watchpoint
[1]+ Stopped ../gdb ./outputs/gdb.base/watchpoint/watchpoint
localhost$ fg
../gdb ./outputs/gdb.base/watchpoint/watchpoint
Cannot parse expression `.L1199 4@r4'.
warning: Probes-based dynamic linker interface failed.
Reverting to original interface.
The SIGTTOU is raised whilst inside a syscall during the call to tcdrain.
Fix is to use scoped_ignore_sigttou to ensure SIGTTOU is blocked.
In addition fix include comments - job_control is not included via terminal.h
gdb/ChangeLog:
* event-top.c: Remove include comment.
* inflow.c (class scoped_ignore_sigttou): Move from here...
* inflow.h (class scoped_ignore_sigttou): ...to here.
* ser-unix.c (hardwire_drain_output): Block SIGTTOU during drain.
* top.c: Remove include comment.
Diffstat (limited to 'gdb/top.c')
-rw-r--r-- | gdb/top.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -34,7 +34,7 @@ #include "expression.h" #include "value.h" #include "language.h" -#include "terminal.h" /* For job_control. */ +#include "terminal.h" #include "common/job-control.h" #include "annotate.h" #include "completer.h" |