diff options
-rw-r--r-- | gdbserver/utils.cc | 20 | ||||
-rw-r--r-- | gdbsupport/config.in | 3 | ||||
-rwxr-xr-x | gdbsupport/configure | 13 | ||||
-rw-r--r-- | gdbsupport/configure.ac | 10 |
4 files changed, 43 insertions, 3 deletions
diff --git a/gdbserver/utils.cc b/gdbserver/utils.cc index 4f6516c..d24057c 100644 --- a/gdbserver/utils.cc +++ b/gdbserver/utils.cc @@ -28,13 +28,27 @@ /* Generally useful subroutines used throughout the program. */ +/* If in release mode, just exit. This avoids potentially littering + the filesystem of small embedded targets with core files. If in + development mode however, abort, producing core files to help with + debugging GDBserver. */ +static void ATTRIBUTE_NORETURN +abort_or_exit () +{ +#ifdef DEVELOPMENT + abort (); +#else + exit (1); +#endif +} + void malloc_failure (long size) { fprintf (stderr, PREFIX "ran out of memory while trying to allocate %lu bytes\n", (unsigned long) size); - exit (1); + abort_or_exit (); } /* Print the system error message for errno, and also mention STRING @@ -82,7 +96,7 @@ vwarning (const char *string, va_list args) fprintf (stderr, "\n"); } -/* Report a problem internal to GDBserver, and exit. */ +/* Report a problem internal to GDBserver, and abort/exit. */ void internal_verror (const char *file, int line, const char *fmt, va_list args) @@ -91,7 +105,7 @@ internal_verror (const char *file, int line, const char *fmt, va_list args) %s:%d: A problem internal to " TOOLNAME " has been detected.\n", file, line); vfprintf (stderr, fmt, args); fprintf (stderr, "\n"); - exit (1); + abort_or_exit (); } /* Report a problem internal to GDBserver. */ diff --git a/gdbsupport/config.in b/gdbsupport/config.in index a7ae23b..577866c 100644 --- a/gdbsupport/config.in +++ b/gdbsupport/config.in @@ -11,6 +11,9 @@ /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA +/* Define if development-mode features are enabled. */ +#undef DEVELOPMENT + /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS diff --git a/gdbsupport/configure b/gdbsupport/configure index 618f487..0b48521 100755 --- a/gdbsupport/configure +++ b/gdbsupport/configure @@ -624,6 +624,7 @@ ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS +CONFIG_STATUS_DEPENDENCIES WERROR_CFLAGS WARN_CFLAGS HAVE_PIPE_OR_PIPE2_FALSE @@ -10452,6 +10453,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +# Set the 'development' global. +. $srcdir/../bfd/development.sh + +if test "$development" = true ; then + +$as_echo "#define DEVELOPMENT 1" >>confdefs.h + +fi + case ${host} in *mingw32*) @@ -10460,6 +10470,9 @@ $as_echo "#define USE_WIN32API 1" >>confdefs.h ;; esac +CONFIG_STATUS_DEPENDENCIES='$srcdir/../bfd/development.sh' + + ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF diff --git a/gdbsupport/configure.ac b/gdbsupport/configure.ac index 1f79460..ac2ade6 100644 --- a/gdbsupport/configure.ac +++ b/gdbsupport/configure.ac @@ -63,6 +63,14 @@ GDB_AC_PTRACE AM_GDB_COMPILER_TYPE AM_GDB_WARNINGS +# Set the 'development' global. +. $srcdir/../bfd/development.sh + +if test "$development" = true ; then + AC_DEFINE(DEVELOPMENT, 1, + [Define if development-mode features are enabled.]) +fi + case ${host} in *mingw32*) AC_DEFINE(USE_WIN32API, 1, @@ -73,5 +81,7 @@ case ${host} in ;; esac +AC_SUBST([CONFIG_STATUS_DEPENDENCIES], ['$srcdir/../bfd/development.sh']) + AC_CONFIG_FILES([Makefile]) AC_OUTPUT |