aboutsummaryrefslogtreecommitdiff
path: root/gdb/serial.h
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2016-04-12 16:49:30 +0100
committerPedro Alves <palves@redhat.com>2016-04-12 16:52:36 +0100
commitacd5494dd868ae849b4544abdc50dc8b10ba6f54 (patch)
treea3724eb4ea2c779d196dc88c7fc434fa1c53c0c1 /gdb/serial.h
parentd2acc30bb60357815c3965c058965d0f5313f814 (diff)
downloadgdb-acd5494dd868ae849b4544abdc50dc8b10ba6f54.zip
gdb-acd5494dd868ae849b4544abdc50dc8b10ba6f54.tar.gz
gdb-acd5494dd868ae849b4544abdc50dc8b10ba6f54.tar.bz2
Stop remote-fileio.c from throwing from SIGINT handler
This code installs a custom signal handler that throws a quit exception if remote_fio_no_longjmp is not set. AFAICS, the only real reason for this might have been to unblock the ui_file_read call, in remote_fileio_func_read. But ever since: 2009-11-13 Daniel Jacobowitz <dan@codesourcery.com> * ui-file.c (stdio_file_read): Call gdb_select before read. at: https://sourceware.org/ml/gdb-patches/2009-11/msg00321.html that call is interruptible. This is not only useful for switching to native C++ exceptions, but AFAICS, also fixes a potential mess up of the remote protocol connection, since there are target_read_memory calls done while remote_fio_no_longjmp is clear. If the user presses ctrl-c while GDB is sending or receiving a packet, we'll stop the communication immediately, at a point where it isn't safe. gdbserver doesn't support the File I/O remote protocol extension so I can't test this. gdb/ChangeLog: 2016-04-12 Pedro Alves <palves@redhat.com> * remote-fileio.c (sigint_fileio_token, remote_fio_no_longjmp): Delete. (async_remote_fileio_interrupt): Delete. (remote_fileio_ctrl_c_signal_handler): Don't call the async signal handler. Instead just always set the ctrl_c flag. (remote_fileio_reply): Clear remote_fio_ctrl_c_flag before re-enabling the SIGINT handler. (remote_fileio_func_open, remote_fileio_func_close) (remote_fileio_func_read, remote_fileio_func_write) (remote_fileio_func_lseek, remote_fileio_func_rename) (remote_fileio_func_unlink, remote_fileio_func_stat) (remote_fileio_func_fstat, remote_fileio_func_gettimeofday) (remote_fileio_func_isatty, remote_fileio_func_system) (remote_fileio_request): Remove references to remote_fio_no_longjmp. (initialize_remote_fileio): Don't create an async signal handler.
Diffstat (limited to 'gdb/serial.h')
0 files changed, 0 insertions, 0 deletions