mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-11 01:48:46 +08:00

gdb's (or gdbserver's) own signal handling should not interfere with the signal dispositions their spawned children inherit. However, it currently does. For example, some paths in gdb cause SIGPIPE to be set to SIG_IGN, and as consequence, the child starts with SIGPIPE to set to SIG_IGN too, even though gdb was started with SIGPIPE set to SIG_DFL. This is because the exec family of functions does not reset the signal disposition of signals that are set to SIG_IGN: http://pubs.opengroup.org/onlinepubs/7908799/xsh/execve.html Signals set to the default action (SIG_DFL) in the calling process image are set to the default action in the new process image. Signals set to be ignored (SIG_IGN) by the calling process image are set to be ignored by the new process image. Signals set to be caught by the calling process image are set to the default action in the new process image (see <signal.h>). And neither does it reset signal masks or flags. In order to be transparent, when spawning new child processes to debug (with "run", etc.), reset signal actions and mask back to what was originally inherited from gdb/gdbserver's parent, just before execing the target program to debug. gdb/ChangeLog: 2016-08-09 Pedro Alves <palves@redhat.com> PR gdb/18653 * Makefile.in (SFILES): Add common/signals-state-save-restore.c. (HFILES_NO_SRCDIR): Add common/signals-state-save-restore.h. (COMMON_OBS): Add signals-state-save-restore.o. (signals-state-save-restore.o): New rule. * configure: Regenerate. * fork-child.c: Include "signals-state-save-restore.h". (fork_inferior): Call restore_original_signals_state. * main.c: Include "signals-state-save-restore.h". (captured_main): Call save_original_signals_state. * common/common.m4: Add sigaction to AC_CHECK_FUNCS checks. * common/signals-state-save-restore.c: New file. * common/signals-state-save-restore.h: New file. gdb/gdbserver/ChangeLog: 2016-08-09 Pedro Alves <palves@redhat.com> PR gdb/18653 * Makefile.in (OBS): Add signals-state-save-restore.o. (signals-state-save-restore.o): New rule. * config.in: Regenerate. * configure: Regenerate. * linux-low.c: Include "signals-state-save-restore.h". (linux_create_inferior): Call restore_original_signals_state. * server.c: Include "dispositions-save-restore.h". (captured_main): Call save_original_signals_state. gdb/testsuite/ChangeLog: 2016-08-09 Pedro Alves <palves@redhat.com> PR gdb/18653 * gdb.base/signals-state-child.c: New file. * gdb.base/signals-state-child.exp: New file. * gdb.gdb/selftest.exp (do_steps_and_nexts): Add new pattern.
420 lines
11 KiB
Plaintext
420 lines
11 KiB
Plaintext
/* config.in. Generated from configure.ac by autoheader. */
|
|
|
|
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
|
|
systems. This function is required for `alloca.c' support on those systems.
|
|
*/
|
|
#undef CRAY_STACKSEG_END
|
|
|
|
/* Define to 1 if using `alloca.c'. */
|
|
#undef C_ALLOCA
|
|
|
|
/* Define to 1 if you have `alloca', as a function or macro. */
|
|
#undef HAVE_ALLOCA
|
|
|
|
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
|
*/
|
|
#undef HAVE_ALLOCA_H
|
|
|
|
/* Define to 1 if you have the <arpa/inet.h> header file. */
|
|
#undef HAVE_ARPA_INET_H
|
|
|
|
/* Define to 1 if you have the declaration of `ADDR_NO_RANDOMIZE', and to 0 if
|
|
you don't. */
|
|
#undef HAVE_DECL_ADDR_NO_RANDOMIZE
|
|
|
|
/* Define to 1 if you have the declaration of `asprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_ASPRINTF
|
|
|
|
/* Define to 1 if you have the declaration of `basename(char *)', and to 0 if
|
|
you don't. */
|
|
#undef HAVE_DECL_BASENAME
|
|
|
|
/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. */
|
|
#undef HAVE_DECL_FFS
|
|
|
|
/* Define to 1 if you have the declaration of `perror', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_PERROR
|
|
|
|
/* Define to 1 if you have the declaration of `ptrace', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_PTRACE
|
|
|
|
/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_SNPRINTF
|
|
|
|
/* Define to 1 if you have the declaration of `strerror', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRERROR
|
|
|
|
/* Define to 1 if you have the declaration of `strstr', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_STRSTR
|
|
|
|
/* Define to 1 if you have the declaration of `strtol', and to 0 if you don't.
|
|
*/
|
|
#undef HAVE_DECL_STRTOL
|
|
|
|
/* Define to 1 if you have the declaration of `strtoll', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRTOLL
|
|
|
|
/* Define to 1 if you have the declaration of `strtoul', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRTOUL
|
|
|
|
/* Define to 1 if you have the declaration of `strtoull', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRTOULL
|
|
|
|
/* Define to 1 if you have the declaration of `strverscmp', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_STRVERSCMP
|
|
|
|
/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_VASPRINTF
|
|
|
|
/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
|
|
don't. */
|
|
#undef HAVE_DECL_VSNPRINTF
|
|
|
|
/* Define to 1 if you have the `dladdr' function. */
|
|
#undef HAVE_DLADDR
|
|
|
|
/* Define to 1 if the system has the type `Elf32_auxv_t'. */
|
|
#undef HAVE_ELF32_AUXV_T
|
|
|
|
/* Define to 1 if the system has the type `Elf64_auxv_t'. */
|
|
#undef HAVE_ELF64_AUXV_T
|
|
|
|
/* Define if <sys/procfs.h> has elf_fpregset_t. */
|
|
#undef HAVE_ELF_FPREGSET_T
|
|
|
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
|
#undef HAVE_FCNTL_H
|
|
|
|
/* Define to 1 if you have the `fdwalk' function. */
|
|
#undef HAVE_FDWALK
|
|
|
|
/* Define to 1 if you have the `fork' function. */
|
|
#undef HAVE_FORK
|
|
|
|
/* Define to 1 if you have the `getauxval' function. */
|
|
#undef HAVE_GETAUXVAL
|
|
|
|
/* Define to 1 if you have the `getrlimit' function. */
|
|
#undef HAVE_GETRLIMIT
|
|
|
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
#undef HAVE_INTTYPES_H
|
|
|
|
/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
|
|
#undef HAVE_LANGINFO_CODESET
|
|
|
|
/* Define to 1 if you have the `dl' library (-ldl). */
|
|
#undef HAVE_LIBDL
|
|
|
|
/* Define to 1 if you have the `mcheck' library (-lmcheck). */
|
|
#undef HAVE_LIBMCHECK
|
|
|
|
/* Define if the target supports branch tracing. */
|
|
#undef HAVE_LINUX_BTRACE
|
|
|
|
/* Define to 1 if you have the <linux/elf.h> header file. */
|
|
#undef HAVE_LINUX_ELF_H
|
|
|
|
/* Define to 1 if you have the <linux/perf_event.h> header file. */
|
|
#undef HAVE_LINUX_PERF_EVENT_H
|
|
|
|
/* Define if the target supports register sets. */
|
|
#undef HAVE_LINUX_REGSETS
|
|
|
|
/* Define if the target supports PTRACE_PEEKUSR for register access. */
|
|
#undef HAVE_LINUX_USRREGS
|
|
|
|
/* Define to 1 if you have the <locale.h> header file. */
|
|
#undef HAVE_LOCALE_H
|
|
|
|
/* Define to 1 if the system has the type `long long'. */
|
|
#undef HAVE_LONG_LONG
|
|
|
|
/* Define if <thread_db.h> has lwpid_t. */
|
|
#undef HAVE_LWPID_T
|
|
|
|
/* Define to 1 if you have the <memory.h> header file. */
|
|
#undef HAVE_MEMORY_H
|
|
|
|
/* Define to 1 if you have the <netdb.h> header file. */
|
|
#undef HAVE_NETDB_H
|
|
|
|
/* Define to 1 if you have the <netinet/in.h> header file. */
|
|
#undef HAVE_NETINET_IN_H
|
|
|
|
/* Define to 1 if you have the <netinet/tcp.h> header file. */
|
|
#undef HAVE_NETINET_TCP_H
|
|
|
|
/* Define if you support the personality syscall. */
|
|
#undef HAVE_PERSONALITY
|
|
|
|
/* Define to 1 if you have the `pipe' function. */
|
|
#undef HAVE_PIPE
|
|
|
|
/* Define to 1 if you have the `pipe2' function. */
|
|
#undef HAVE_PIPE2
|
|
|
|
/* Define to 1 if you have the `pread' function. */
|
|
#undef HAVE_PREAD
|
|
|
|
/* Define to 1 if you have the `pread64' function. */
|
|
#undef HAVE_PREAD64
|
|
|
|
/* Define if <sys/procfs.h> has prfpregset_t. */
|
|
#undef HAVE_PRFPREGSET_T
|
|
|
|
/* Define if <sys/procfs.h> has prgregset_t. */
|
|
#undef HAVE_PRGREGSET_T
|
|
|
|
/* Define to 1 if you have the <proc_service.h> header file. */
|
|
#undef HAVE_PROC_SERVICE_H
|
|
|
|
/* Define if <thread_db.h> has psaddr_t. */
|
|
#undef HAVE_PSADDR_T
|
|
|
|
/* Define if the target supports PTRACE_GETFPXREGS for extended register
|
|
access. */
|
|
#undef HAVE_PTRACE_GETFPXREGS
|
|
|
|
/* Define if the target supports PTRACE_GETREGS for register access. */
|
|
#undef HAVE_PTRACE_GETREGS
|
|
|
|
/* Define to 1 if you have the <ptrace.h> header file. */
|
|
#undef HAVE_PTRACE_H
|
|
|
|
/* Define to 1 if you have the `pwrite' function. */
|
|
#undef HAVE_PWRITE
|
|
|
|
/* Define to 1 if you have the `setns' function. */
|
|
#undef HAVE_SETNS
|
|
|
|
/* Define to 1 if you have the <sgtty.h> header file. */
|
|
#undef HAVE_SGTTY_H
|
|
|
|
/* Define to 1 if you have the `sigaction' function. */
|
|
#undef HAVE_SIGACTION
|
|
|
|
/* Define to 1 if you have the <signal.h> header file. */
|
|
#undef HAVE_SIGNAL_H
|
|
|
|
/* Define if sigsetjmp is available. */
|
|
#undef HAVE_SIGSETJMP
|
|
|
|
/* Define to 1 if you have the `socketpair' function. */
|
|
#undef HAVE_SOCKETPAIR
|
|
|
|
/* Define to 1 if the system has the type `socklen_t'. */
|
|
#undef HAVE_SOCKLEN_T
|
|
|
|
/* Define to 1 if you have the <stdint.h> header file. */
|
|
#undef HAVE_STDINT_H
|
|
|
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
#undef HAVE_STDLIB_H
|
|
|
|
/* Define to 1 if you have the <strings.h> header file. */
|
|
#undef HAVE_STRINGS_H
|
|
|
|
/* Define to 1 if you have the <string.h> header file. */
|
|
#undef HAVE_STRING_H
|
|
|
|
/* Define to 1 if `struct stat' is a member of `st_blksize'. */
|
|
#undef HAVE_STRUCT_STAT_ST_BLKSIZE
|
|
|
|
/* Define to 1 if `struct stat' is a member of `st_blocks'. */
|
|
#undef HAVE_STRUCT_STAT_ST_BLOCKS
|
|
|
|
/* Define to 1 if the target supports __sync_*_compare_and_swap */
|
|
#undef HAVE_SYNC_BUILTINS
|
|
|
|
/* Define to 1 if you have the <sys/file.h> header file. */
|
|
#undef HAVE_SYS_FILE_H
|
|
|
|
/* Define to 1 if you have the <sys/ioctl.h> header file. */
|
|
#undef HAVE_SYS_IOCTL_H
|
|
|
|
/* Define to 1 if you have the <sys/procfs.h> header file. */
|
|
#undef HAVE_SYS_PROCFS_H
|
|
|
|
/* Define to 1 if you have the <sys/ptrace.h> header file. */
|
|
#undef HAVE_SYS_PTRACE_H
|
|
|
|
/* Define to 1 if you have the <sys/reg.h> header file. */
|
|
#undef HAVE_SYS_REG_H
|
|
|
|
/* Define to 1 if you have the <sys/resource.h> header file. */
|
|
#undef HAVE_SYS_RESOURCE_H
|
|
|
|
/* Define to 1 if you have the <sys/socket.h> header file. */
|
|
#undef HAVE_SYS_SOCKET_H
|
|
|
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
#undef HAVE_SYS_STAT_H
|
|
|
|
/* Define to 1 if you have the <sys/syscall.h> header file. */
|
|
#undef HAVE_SYS_SYSCALL_H
|
|
|
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
#undef HAVE_SYS_TYPES_H
|
|
|
|
/* Define to 1 if you have the <sys/un.h> header file. */
|
|
#undef HAVE_SYS_UN_H
|
|
|
|
/* Define to 1 if you have the <sys/wait.h> header file. */
|
|
#undef HAVE_SYS_WAIT_H
|
|
|
|
/* Define if TD_VERSION is available. */
|
|
#undef HAVE_TD_VERSION
|
|
|
|
/* Define to 1 if you have the <termios.h> header file. */
|
|
#undef HAVE_TERMIOS_H
|
|
|
|
/* Define to 1 if you have the <termio.h> header file. */
|
|
#undef HAVE_TERMIO_H
|
|
|
|
/* Define to 1 if you have the <thread_db.h> header file. */
|
|
#undef HAVE_THREAD_DB_H
|
|
|
|
/* Define to 1 if you have the <unistd.h> header file. */
|
|
#undef HAVE_UNISTD_H
|
|
|
|
/* Define if UST is available */
|
|
#undef HAVE_UST
|
|
|
|
/* Define to 1 if you have the `vfork' function. */
|
|
#undef HAVE_VFORK
|
|
|
|
/* Define to 1 if you have the <vfork.h> header file. */
|
|
#undef HAVE_VFORK_H
|
|
|
|
/* Define to 1 if you have the <wait.h> header file. */
|
|
#undef HAVE_WAIT_H
|
|
|
|
/* Define to 1 if `fork' works. */
|
|
#undef HAVE_WORKING_FORK
|
|
|
|
/* Define to 1 if `vfork' works. */
|
|
#undef HAVE_WORKING_VFORK
|
|
|
|
/* Define to the address where bug reports for this package should be sent. */
|
|
#undef PACKAGE_BUGREPORT
|
|
|
|
/* Define to the full name of this package. */
|
|
#undef PACKAGE_NAME
|
|
|
|
/* Define to the full name and version of this package. */
|
|
#undef PACKAGE_STRING
|
|
|
|
/* Define to the one symbol short name of this package. */
|
|
#undef PACKAGE_TARNAME
|
|
|
|
/* Define to the home page for this package. */
|
|
#undef PACKAGE_URL
|
|
|
|
/* Define to the version of this package. */
|
|
#undef PACKAGE_VERSION
|
|
|
|
/* Additional package description */
|
|
#undef PKGVERSION
|
|
|
|
/* Define to the type of arg 1 for ptrace. */
|
|
#undef PTRACE_TYPE_ARG1
|
|
|
|
/* Define to the type of arg 3 for ptrace. */
|
|
#undef PTRACE_TYPE_ARG3
|
|
|
|
/* Define to the type of arg 4 for ptrace. */
|
|
#undef PTRACE_TYPE_ARG4
|
|
|
|
/* Define to the type of arg 5 for ptrace. */
|
|
#undef PTRACE_TYPE_ARG5
|
|
|
|
/* Define as the return type of ptrace. */
|
|
#undef PTRACE_TYPE_RET
|
|
|
|
/* Bug reporting address */
|
|
#undef REPORT_BUGS_TO
|
|
|
|
/* The size of `long long', as computed by sizeof. */
|
|
#undef SIZEOF_LONG_LONG
|
|
|
|
/* If using the C implementation of alloca, define if you know the
|
|
direction of stack growth for your system; otherwise it will be
|
|
automatically deduced at runtime.
|
|
STACK_DIRECTION > 0 => grows toward higher addresses
|
|
STACK_DIRECTION < 0 => grows toward lower addresses
|
|
STACK_DIRECTION = 0 => direction of growth unknown */
|
|
#undef STACK_DIRECTION
|
|
|
|
/* Define to 1 if you have the ANSI C header files. */
|
|
#undef STDC_HEADERS
|
|
|
|
/* Define if we should use libthread_db directly. */
|
|
#undef USE_LIBTHREAD_DB_DIRECTLY
|
|
|
|
/* Enable extensions on AIX 3, Interix. */
|
|
#ifndef _ALL_SOURCE
|
|
# undef _ALL_SOURCE
|
|
#endif
|
|
/* Enable GNU extensions on systems that have them. */
|
|
#ifndef _GNU_SOURCE
|
|
# undef _GNU_SOURCE
|
|
#endif
|
|
/* Enable threading extensions on Solaris. */
|
|
#ifndef _POSIX_PTHREAD_SEMANTICS
|
|
# undef _POSIX_PTHREAD_SEMANTICS
|
|
#endif
|
|
/* Enable extensions on HP NonStop. */
|
|
#ifndef _TANDEM_SOURCE
|
|
# undef _TANDEM_SOURCE
|
|
#endif
|
|
/* Enable general extensions on Solaris. */
|
|
#ifndef __EXTENSIONS__
|
|
# undef __EXTENSIONS__
|
|
#endif
|
|
|
|
|
|
/* Define if we should use libthread_db. */
|
|
#undef USE_THREAD_DB
|
|
|
|
/* Define if we should use the Windows API, instead of the POSIX API. On
|
|
Windows, we use the Windows API when building for MinGW, but the POSIX API
|
|
when building for Cygwin. */
|
|
#undef USE_WIN32API
|
|
|
|
/* Define if an XML target description is available. */
|
|
#undef USE_XML
|
|
|
|
/* Number of bits in a file offset, on hosts where this is settable. */
|
|
#undef _FILE_OFFSET_BITS
|
|
|
|
/* Define for large files, on AIX-style hosts. */
|
|
#undef _LARGE_FILES
|
|
|
|
/* Define to 1 if on MINIX. */
|
|
#undef _MINIX
|
|
|
|
/* Define to 2 if the system does not provide POSIX.1 features except with
|
|
this defined. */
|
|
#undef _POSIX_1_SOURCE
|
|
|
|
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
|
#undef _POSIX_SOURCE
|
|
|
|
/* Define to `int' if <sys/types.h> does not define. */
|
|
#undef pid_t
|
|
|
|
/* Define as `fork' if `vfork' does not work. */
|
|
#undef vfork
|