Imported Upstream version 7.8.1 upstream/7.8.1
authorChanho Park <chanho61.park@samsung.com>
Tue, 4 Nov 2014 11:14:17 +0000 (20:14 +0900)
committerChanho Park <chanho61.park@samsung.com>
Tue, 4 Nov 2014 11:14:17 +0000 (20:14 +0900)
82 files changed:
bfd/ChangeLog
bfd/doc/bfdver.texi
bfd/elfcode.h
bfd/version.h
djunpack.bat
gdb/ChangeLog
gdb/NEWS
gdb/acinclude.m4
gdb/annotate.c
gdb/config.in
gdb/configure
gdb/configure.ac
gdb/ctf.c
gdb/data-directory/Makefile.in
gdb/dcache.h
gdb/doc/gcore.1
gdb/doc/gdb.1
gdb/doc/gdb.info
gdb/doc/gdb.info-1
gdb/doc/gdb.info-2
gdb/doc/gdb.info-3
gdb/doc/gdb.info-4
gdb/doc/gdb.info-5
gdb/doc/gdb.info-6
gdb/doc/gdb.info-7
gdb/doc/gdbinit.5
gdb/doc/gdbserver.1
gdb/event-top.c
gdb/event-top.h
gdb/features/aarch64-core.xml
gdb/features/aarch64.c
gdb/gdbarch.h
gdb/gdbarch.sh
gdb/gdbserver/ChangeLog
gdb/gdbserver/win32-i386-low.c
gdb/guile/guile.c
gdb/infcmd.c
gdb/infrun.c
gdb/linux-tdep.c
gdb/main.c
gdb/po/gdb.pot
gdb/python/lib/gdb/__init__.py
gdb/python/lib/gdb/command/bound_registers.py [deleted file]
gdb/python/lib/gdb/command/xmethods.py
gdb/python/lib/gdb/printer/__init__.py [new file with mode: 0644]
gdb/python/lib/gdb/printer/bound_registers.py [new file with mode: 0644]
gdb/python/lib/gdb/printing.py
gdb/python/py-framefilter.c
gdb/target.c
gdb/target.h
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/annota-input-while-running.c [new file with mode: 0644]
gdb/testsuite/gdb.base/annota-input-while-running.exp [new file with mode: 0644]
gdb/testsuite/gdb.base/attach.exp
gdb/testsuite/gdb.base/bg-execution-repeat.c [new file with mode: 0644]
gdb/testsuite/gdb.base/bg-execution-repeat.exp [new file with mode: 0644]
gdb/testsuite/gdb.base/continue-all-already-running.c [new file with mode: 0644]
gdb/testsuite/gdb.base/continue-all-already-running.exp [new file with mode: 0644]
gdb/testsuite/gdb.base/multi-line-starts-subshell.exp [new file with mode: 0644]
gdb/testsuite/gdb.base/solib-overlap.exp
gdb/testsuite/gdb.multi/multi-attach.exp
gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S [new file with mode: 0644]
gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in [new file with mode: 0644]
gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp [new file with mode: 0644]
gdb/testsuite/gdb.python/py-framefilter-invalidarg.py [new file with mode: 0644]
gdb/testsuite/gdb.python/py-prompt.exp
gdb/testsuite/gdb.python/py-sync-interp.exp
gdb/testsuite/gdb.python/py-xmethods.py
gdb/testsuite/gdb.python/python.exp
gdb/testsuite/gdb.server/ext-attach.exp
gdb/testsuite/gdb.threads/gcore-stale-thread.c [new file with mode: 0644]
gdb/testsuite/gdb.threads/gcore-stale-thread.exp [new file with mode: 0644]
gdb/testsuite/gdb.threads/next-bp-other-thread.c [new file with mode: 0644]
gdb/testsuite/gdb.threads/next-bp-other-thread.exp [new file with mode: 0644]
gdb/testsuite/gdb.threads/schedlock.c
gdb/testsuite/gdb.threads/schedlock.exp
gdb/testsuite/lib/gdb.exp
gdb/top.c
gdb/top.h
gdb/version.in
gdb/windows-nat.c
md5.sum

index 96bbcf7f3730e4c99195b7e43b556c6f13e83a3d..a2b06f967753ad6dfcae54ceb8cbeb15674c9133 100644 (file)
@@ -1,3 +1,8 @@
+2014-09-18  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR gdb/17407
+       * elfcode.h (bfd_from_remote_memory): Use SIZE for HIGH_OFFSET.
+
 2014-07-16  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elf32-i386.c (elf_i386_plt_sym_val): Match PLT entry only for
index d9692342e0091f5a86b935643642bbab1fa0eb42..5a3e1b56dc50589d147365377381146419345140 100644 (file)
@@ -1,4 +1,4 @@
 @set VERSION 2.24.51
 @set VERSION_PACKAGE (GNU Binutils) 
-@set UPDATED July 2014
+@set UPDATED October 2014
 @set BUGURL @uref{http://www.sourceware.org/bugzilla/}
index a49a7088ebbd9156b4af5cd40359bf45be122c02..ec53c3bbd8f65ba6f655293759a8357196e885b0 100644 (file)
@@ -1749,7 +1749,7 @@ NAME(_bfd_elf,bfd_from_remote_memory)
             headers.  */
        }
       else if (size >= shdr_end)
-       high_offset = shdr_end;
+       high_offset = size;
       else
        {
          bfd_vma page_size = get_elf_backend_data (templ)->minpagesize;
index 6495c24485b91f4c62a4e4a4d92d21a0f91e5580..34eb4c90bfc73b93af6a43fd579b28be6480cead 100644 (file)
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20140729
+#define BFD_VERSION_DATE 20141029
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
index 8daf99d02eef918c8ca98655292b0142fcd1d275..96f97782c9a368f195f7b5347fb9538145b6df7a 100644 (file)
@@ -17,8 +17,8 @@ Rem
 Rem The following 2 lines need to be changed with each new GDB release, to\r
 Rem be identical to the name of the top-level directory where the GDB\r
 Rem distribution unpacks itself.\r
-set GDBVER=gdb-7.8\r
-if "%GDBVER%"=="gdb-7.8" GoTo EnvOk\r
+set GDBVER=gdb-7.8.1\r
+if "%GDBVER%"=="gdb-7.8.1" GoTo EnvOk\r
 Rem If their environment space is too small, re-exec with a larger one\r
 command.com /e:4096 /c %0 %1\r
 GoTo End\r
index 8fc70c0027819e071629f7c382b4fd1e36e107b0..d773644d3a768317d3761c9cb011bff713232e37 100644 (file)
@@ -1,3 +1,190 @@
+2014-10-29  Joel Brobecker  <brobecker@adacore.com>
+
+       * version.in: Set GDB version number to 7.8.1.
+
+2014-10-29  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17408
+       * infrun.c (switch_back_to_stepped_thread): Use currently_stepping
+       instead of assuming a thread with a stepping range is always
+       stepping.
+
+2014-10-29  Pedro Alves  <palves@redhat.com>
+
+       PR python/17372
+       * event-top.c (change_line_handler): Call
+       gdb_rl_callback_handler_remove instead of
+       rl_callback_handler_remove.
+       (callback_handler_installed): New global.
+       (gdb_rl_callback_handler_remove, gdb_rl_callback_handler_install)
+       (gdb_rl_callback_handler_reinstall): New functions.
+       (display_gdb_prompt): Call gdb_rl_callback_handler_remove and
+       gdb_rl_callback_handler_install instead of
+       rl_callback_handler_remove and rl_callback_handler_install.
+       (gdb_disable_readline): Call gdb_rl_callback_handler_remove
+       instead of rl_callback_handler_remove.
+       * event-top.h (gdb_rl_callback_handler_remove)
+       (gdb_rl_callback_handler_install)
+       (gdb_rl_callback_handler_reinstall): New declarations.
+       * infrun.c (reinstall_readline_callback_handler_cleanup): New
+       cleanup function.
+       (fetch_inferior_event): Install it.
+       * top.c (gdb_readline_wrapper_line) Call
+       gdb_rl_callback_handler_remove instead of
+       rl_callback_handler_remove.
+       (gdb_readline_wrapper_cleanup): Don't call
+       rl_callback_handler_install.
+
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17471
+       * infcmd.c (strip_bg_char): Change prototype and rewrite.  Now
+       returns a copy of the input.
+       (run_command_1, continue_command, step_1, jump_command)
+       (signal_command, until_command, advance_command, finish_command)
+       (attach_command): Adjust and install a cleanup to free the
+       stripped args.
+
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17300
+       * infcmd.c (continue_1): If continuing all threads in the
+       foreground, make sure the inferior's terminal settings are put in
+       effect.
+
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17472
+       * annotate.c (annotate_breakpoints_invalid): Use
+       target_terminal_our_for_output instead of target_terminal_ours.
+       Give back the terminal to the target.
+       (annotate_frames_invalid): Likewise.
+
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       * target.c (enum terminal_state): New enum.
+       (terminal_state): New global.
+       (target_terminal_init): New function.
+       (target_terminal_inferior): Skip if inferior already owns the
+       terminal.
+       (target_terminal_ours, target_terminal_ours_for_output): New
+       functions.
+       * target.h (target_terminal_init): Convert to function prototype.
+       (target_terminal_ours_for_output): Convert to function prototype
+       and tweak comment.
+       (target_terminal_ours): Convert to function prototype and tweak
+       comment.
+       * windows-nat.c (do_initial_windows_stuff): Call
+       target_terminal_init instead of child_terminal_init_with_pgrp.
+
+2014-10-15  Doug Evans  <dje@google.com>
+           Walfred Tedeschi  <walfred.tedeschi@intel.com>
+
+       PR python/17364
+       * python/lib/gdb/__init__.py (packages): Add "printer".
+       * python/lib/gdb/command/bound_registers.py: Moved to ...
+       * python/lib/gdb/printer/bound_registers.py: ... here.
+       Add printer to global set of builtin printers.  Rename printer from
+       "bound" to "mpx_bound128".
+       * python/lib/gdb/printing.py (_builtin_pretty_printers): New global,
+       registered as global "builtin" printer.
+       (add_builtin_pretty_printer): New function.
+       * data-directory/Makefile.in (PYTHON_FILE_LIST): Update, and add
+       gdb/printer/__init__.py.
+
+2014-10-01  Pedro Alves  <palves@redhat.com>
+
+       * features/aarch64-core.xml (cpsr): Change back to 32-bit.
+       * features/aarch64.c: Regenerate.
+
+2014-09-11  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17347
+       * main.c: Include "infrun.h".
+       (catch_command_errors, catch_command_errors_const): Wait for the
+       foreground command to complete.
+       * top.c (maybe_wait_sync_command_done): New function, factored out
+       from ...
+       (maybe_wait_sync_command_done): ... here.
+       * top.h (maybe_wait_sync_command_done): New declaration.
+
+2014-09-09  Doug Evans  <xdje42@gmail.com>
+
+       PR guile/17367
+       * acinclude.m4 (GDB_GUILE_PROGRAM_NAMES): Pass guile version as
+       last parameter to pkg-config, not first.
+       * configure.ac: Pass --with-guile provided pkg-config path to
+       GDB_GUILE_PROGRAM_NAMES.
+       * configure: Regenerate.
+
+2014-09-09  Doug Evans  <xdje42@gmail.com>
+
+       PR 17247
+       * guile.c: #include <signal.h>.
+       (_initialize_guile): Block SIGCHLD while initializing Guile.
+
+       Replaces the following, which is reverted.
+
+       2014-07-26  Doug Evans  <xdje42@gmail.com>
+
+       PR 17185
+       * configure.ac: Add check for header gc/gc.h.
+       Add check for function setenv.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * guile/guile.c (_initialize_guile): Add workaround for libgc 7.4.0.
+
+2014-09-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR python/17355
+       * python/py-framefilter.c (py_print_single_arg): Handle NULL FA->VAL.
+       Fix goto out of TRY_CATCH.
+
+2014-08-30  Siva Chandra Reddy  <sivachandra@google.com>
+
+       * python/lib/gdb/command/xmethods.py (set_xm_status1): Use the
+       'items' methods instead of 'iteritems' method on dictionaries.
+
+2014-08-27  Yao Qi  <yao@codesourcery.com>
+
+       * ctf.c (CTF_FILE_MIN_SIZE): Remove.
+       (ctf_end): Remove code.
+
+2014-08-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * linux-tdep.c (linux_corefile_thread_callback): Ignore THREAD_EXITED.
+       (linux_make_corefile_notes): call update_thread_list, protected against
+       exceptions.
+
+2014-08-15  Eli Zaretskii  <eliz@gnu.org>
+
+       * dcache.h: Include target.h, to avoid compile time warnings.
+
+2014-08-15  Joel Brobecker  <brobecker@adacore.com>
+
+       * gdbarch.sh: #include "frame.h" in gdbarch.h.  Delete "struct
+       frame_info" partial declaration.
+       * gdbarch.h: Regenerate.
+
+2014-08-13  Yao Qi  <yao@codesourcery.com>
+
+       PR build/17104
+       * configure.ac: Use local variable 'pos'.
+       * configure: Regenerated.
+
+2014-08-04  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * NEWS (Changes in GDB-4.0): Move Intel MPX and Intel AVX-512 items ...
+       (Changes in GDB 7.8): ... here.
+
+2014-07-29  Joel Brobecker  <brobecker@adacore.com>
+
+       * version.in: Set GDB version number to 7.8.0.DATE-cvs.
+
+2014-07-29  Joel Brobecker  <brobecker@adacore.com>
+
+       GDB 7.8 released.
+
 2014-07-29  Joel Brobecker  <brobecker@adacore.com>
 
        * version.in: Set GDB version number to 7.8.
index c2d0b6be6a8afeeb6f5cfa4fac6cb0caa0ffb1f0..471e8058f4b2204dc64efe2bd75d73f5738cbd5b 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -142,6 +142,12 @@ show mi-async
   can be used to launch native programs even when "set
   auto-connect-native-target" is set to off.
 
+* GDB now supports access to Intel(R) MPX registers on GNU/Linux.
+
+* Support for Intel(R) AVX-512 registers on GNU/Linux.
+  Support displaying and modifying Intel(R) AVX-512 registers
+  $zmm0 - $zmm31 and $k0 - $k7 on GNU/Linux.
+
 * New remote packets
 
 qXfer:btrace:read's annex
@@ -5768,10 +5774,3 @@ GDB now handles cross debugging.  If you are remotely debugging between
 two different machines, type ``./configure host -target=targ''.
 Host is the machine where GDB will run; targ is the machine
 where the program that you are debugging will run.
-
- *  GDB now supports access to Intel(R) MPX registers on GNU/Linux.
-
- *  Support for Intel(R) AVX-512 registers on GNU/Linux.
-
-Support displaying and modifying Intel(R) AVX-512 registers $zmm0 - $zmm31 and
-$k0 - $k7 on GNU/Linux.
index a3fb9e27ac62ff31cf41d544ad4fd01514bce592..45d73966d8927f2ec7c963d49b81d1a69a7f1621 100644 (file)
@@ -482,14 +482,14 @@ dnl similar to Guile's 'GUILE_PROGS' macro.)
 AC_DEFUN([GDB_GUILE_PROGRAM_NAMES], [
   AC_CACHE_CHECK([for the absolute file name of the 'guild' command],
     [ac_cv_guild_program_name],
-    [ac_cv_guild_program_name="`$1 $2 --variable guild`"
+    [ac_cv_guild_program_name="`$1 --variable guild $2`"
 
      # In Guile up to 2.0.11 included, guile-2.0.pc would not define
      # the 'guild' and 'bindir' variables.  In that case, try to guess
      # what the program name is, at the risk of getting it wrong if
      # Guile was configured with '--program-suffix' or similar.
      if test "x$ac_cv_guild_program_name" = "x"; then
-       guile_exec_prefix="`$1 $2 --variable exec_prefix`"
+       guile_exec_prefix="`$1 --variable exec_prefix $2`"
        ac_cv_guild_program_name="$guile_exec_prefix/bin/guild"
      fi
   ])
index 6cce693385d03f14320810269ef4020152a8bacc..97e2b2ba8ac801bb3d278b820c57baff6e160d6a 100644 (file)
@@ -72,8 +72,17 @@ annotate_breakpoints_invalid (void)
       && (!breakpoints_invalid_emitted
          || async_background_execution_p ()))
     {
-      target_terminal_ours ();
+      /* If the inferior owns the terminal (e.g., we're resuming),
+        make sure to leave with the inferior still owning it.  */
+      int was_inferior = target_terminal_is_inferior ();
+
+      target_terminal_ours_for_output ();
+
       printf_unfiltered (("\n\032\032breakpoints-invalid\n"));
+
+      if (was_inferior)
+       target_terminal_inferior ();
+
       breakpoints_invalid_emitted = 1;
     }
 }
@@ -210,8 +219,17 @@ annotate_frames_invalid (void)
       && (!frames_invalid_emitted
          || async_background_execution_p ()))
     {
-      target_terminal_ours ();
+      /* If the inferior owns the terminal (e.g., we're resuming),
+        make sure to leave with the inferior still owning it.  */
+      int was_inferior = target_terminal_is_inferior ();
+
+      target_terminal_ours_for_output ();
+
       printf_unfiltered (("\n\032\032frames-invalid\n"));
+
+      if (was_inferior)
+       target_terminal_inferior ();
+
       frames_invalid_emitted = 1;
     }
 }
index 31e6d91237f51150838906e1c4d5194dcc211517..cd4ce92d022abdcd11a6cae1c190faa6bf69bc1b 100644 (file)
 /* Define if <sys/procfs.h> has fpregset_t. */
 #undef HAVE_FPREGSET_T
 
-/* Define to 1 if you have the <gc/gc.h> header file. */
-#undef HAVE_GC_GC_H
-
 /* Define to 1 if you have the `getgid' function. */
 #undef HAVE_GETGID
 
 /* Define to 1 if you have the `scm_new_smob' function. */
 #undef HAVE_SCM_NEW_SMOB
 
-/* Define to 1 if you have the `setenv' function. */
-#undef HAVE_SETENV
-
 /* Define to 1 if you have the `setlocale' function. */
 #undef HAVE_SETLOCALE
 
index 958fad93ab9d07ed4a7c364f4a99fb9bdf111e8f..4b2906eb5bd511f18db352416342277ab3a4ec0f 100755 (executable)
@@ -9082,20 +9082,22 @@ $as_echo "${found_usable_guile}" >&6; }
 esac
 
 if test "${have_libguile}" != no; then
+    case "${with_guile}" in
+  [\\/]* | ?:[\\/]*)
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the absolute file name of the 'guild' command" >&5
 $as_echo_n "checking for the absolute file name of the 'guild' command... " >&6; }
 if test "${ac_cv_guild_program_name+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_guild_program_name="`"${pkg_config_prog_path}" "${guile_version}" --variable guild`"
+  ac_cv_guild_program_name="`"${with_guile}" --variable guild "${guile_version}"`"
 
      # In Guile up to 2.0.11 included, guile-2.0.pc would not define
      # the 'guild' and 'bindir' variables.  In that case, try to guess
      # what the program name is, at the risk of getting it wrong if
      # Guile was configured with '--program-suffix' or similar.
      if test "x$ac_cv_guild_program_name" = "x"; then
-       guile_exec_prefix="`"${pkg_config_prog_path}" "${guile_version}" --variable exec_prefix`"
+       guile_exec_prefix="`"${with_guile}" --variable exec_prefix "${guile_version}"`"
        ac_cv_guild_program_name="$guile_exec_prefix/bin/guild"
      fi
 
@@ -9110,6 +9112,38 @@ $as_echo "$ac_cv_guild_program_name" >&6; }
   GUILD="$ac_cv_guild_program_name"
 
 
+    ;;
+  *)
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the absolute file name of the 'guild' command" >&5
+$as_echo_n "checking for the absolute file name of the 'guild' command... " >&6; }
+if test "${ac_cv_guild_program_name+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_guild_program_name="`"${pkg_config_prog_path}" --variable guild "${guile_version}"`"
+
+     # In Guile up to 2.0.11 included, guile-2.0.pc would not define
+     # the 'guild' and 'bindir' variables.  In that case, try to guess
+     # what the program name is, at the risk of getting it wrong if
+     # Guile was configured with '--program-suffix' or similar.
+     if test "x$ac_cv_guild_program_name" = "x"; then
+       guile_exec_prefix="`"${pkg_config_prog_path}" --variable exec_prefix "${guile_version}"`"
+       ac_cv_guild_program_name="$guile_exec_prefix/bin/guild"
+     fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_guild_program_name" >&5
+$as_echo "$ac_cv_guild_program_name" >&6; }
+
+  if ! "$ac_cv_guild_program_name" --version >&5 2>&5; then
+    as_fn_error "'$ac_cv_guild_program_name' appears to be unusable" "$LINENO" 5
+  fi
+
+  GUILD="$ac_cv_guild_program_name"
+
+
+    ;;
+  esac
 
 
   if test "$cross_compiling" = no; then
@@ -9187,32 +9221,6 @@ else
 fi
 
 
-# PR 17185, see if we can get the libgc version to see if we need
-# to apply the workaround.
-for ac_header in gc/gc.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "gc/gc.h" "ac_cv_header_gc_gc_h" "$ac_includes_default"
-if test "x$ac_cv_header_gc_gc_h" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GC_GC_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_func in setenv
-do :
-  ac_fn_c_check_func "$LINENO" "setenv" "ac_cv_func_setenv"
-if test "x$ac_cv_func_setenv" = x""yes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SETENV 1
-_ACEOF
-
-fi
-done
-
-
 # --------------------- #
 # Check for libmcheck.  #
 # --------------------- #
@@ -15344,6 +15352,7 @@ struct bt_iter_pos *pos = bt_iter_get_pos (bt_ctf_get_iter (NULL));
                        struct bt_ctf_event *event = NULL;
                        const struct bt_definition *scope;
 
+                       bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
                        scope = bt_ctf_get_top_level_scope (event,
                                                           BT_STREAM_EVENT_HEADER);
                        bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
index e44955eb1df1fc38e67a36f7ced2be3ee1d358b8..c083e52cac99ee96a9cf4434175d2a38e20c73e9 100644 (file)
@@ -1143,8 +1143,9 @@ dnl        It could be a shell script.  It is invoked as:
 dnl        pkg-config --exists $version
 dnl        pkg-config --cflags $version
 dnl        pkg-config --libs $version
-dnl        $version will be the default guile version (currently guile-2.0),
-dnl        but the program is free to ignore this.
+dnl        pkg-config --variable guild $version
+dnl        The script will be called with $version having each value in
+dnl        $try_guile_versions until --exists indicates success.
 
 AC_ARG_WITH(guile,
   AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
@@ -1196,7 +1197,14 @@ esac
 
 if test "${have_libguile}" != no; then
   dnl Get the name of the 'guild' program.
-  GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
+  case "${with_guile}" in
+  [[\\/]]* | ?:[[\\/]]*)
+    GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
+    ;;
+  *)
+    GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
+    ;;
+  esac
 
   dnl Make sure guild can handle this host.
   GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])
@@ -1233,11 +1241,6 @@ AC_SUBST(GUILE_CPPFLAGS)
 AC_SUBST(GUILE_LIBS)
 AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
 
-# PR 17185, see if we can get the libgc version to see if we need
-# to apply the workaround.
-AC_CHECK_HEADERS(gc/gc.h)
-AC_CHECK_FUNCS([setenv])
-
 # --------------------- #
 # Check for libmcheck.  #
 # --------------------- #
@@ -2437,6 +2440,7 @@ else
                        struct bt_ctf_event *event = NULL;
                        const struct bt_definition *scope;
 
+                       bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
                        scope = bt_ctf_get_top_level_scope (event,
                                                           BT_STREAM_EVENT_HEADER);
                        bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
index 84d0a4817cee6b126e2542c9202ea2a2390250d6..6e4189320a71a7face520308e61f85e50d607872 100644 (file)
--- a/gdb/ctf.c
+++ b/gdb/ctf.c
@@ -623,11 +623,6 @@ ctf_write_definition_end (struct trace_file_writer *self)
   self->ops->frame_ops->end (self);
 }
 
-/* The minimal file size of data stream.  It is required by
-   babeltrace.  */
-
-#define CTF_FILE_MIN_SIZE              4096
-
 /* This is the implementation of trace_file_write_ops method
    end.  */
 
@@ -637,50 +632,6 @@ ctf_end (struct trace_file_writer *self)
   struct ctf_trace_file_writer *writer = (struct ctf_trace_file_writer *) self;
 
   gdb_assert (writer->tcs.content_size == 0);
-  /* The babeltrace requires or assumes that the size of datastream
-     file is greater than 4096 bytes.  If we don't generate enough
-     packets and events, create a fake packet which has zero event,
-      to use up the space.  */
-  if (writer->tcs.packet_start < CTF_FILE_MIN_SIZE)
-    {
-      uint32_t u32;
-
-      /* magic.  */
-      u32 = CTF_MAGIC;
-      ctf_save_write_uint32 (&writer->tcs, u32);
-
-      /* content_size.  */
-      u32 = 0;
-      ctf_save_write_uint32 (&writer->tcs, u32);
-
-      /* packet_size.  */
-      u32 = 12;
-      if (writer->tcs.packet_start + u32 < CTF_FILE_MIN_SIZE)
-       u32 = CTF_FILE_MIN_SIZE - writer->tcs.packet_start;
-
-      u32 *= TARGET_CHAR_BIT;
-      ctf_save_write_uint32 (&writer->tcs, u32);
-
-      /* tpnum.  */
-      u32 = 0;
-      ctf_save_write (&writer->tcs, (gdb_byte *) &u32, 2);
-
-      /* Enlarge the file to CTF_FILE_MIN_SIZE is it is still less
-        than that.  */
-      if (CTF_FILE_MIN_SIZE
-         > (writer->tcs.packet_start + writer->tcs.content_size))
-       {
-         gdb_byte b = 0;
-
-         /* Fake the content size to avoid assertion failure in
-            ctf_save_fseek.  */
-         writer->tcs.content_size = (CTF_FILE_MIN_SIZE
-                                     - 1 - writer->tcs.packet_start);
-         ctf_save_fseek (&writer->tcs, CTF_FILE_MIN_SIZE - 1,
-                         SEEK_SET);
-         ctf_save_write (&writer->tcs, &b, 1);
-       }
-    }
 }
 
 /* This is the implementation of trace_frame_write_ops method
index 509f8885a92dc9f70010e54d43ed72693f66fdc3..1b11c84f11c6d73a29f567c58f5cdc18ef2bb249 100644 (file)
@@ -64,7 +64,6 @@ PYTHON_FILE_LIST = \
        gdb/printing.py \
        gdb/prompt.py \
        gdb/xmethod.py \
-       gdb/command/bound_registers.py \
        gdb/command/__init__.py \
        gdb/command/xmethods.py \
        gdb/command/frame_filters.py \
@@ -73,7 +72,9 @@ PYTHON_FILE_LIST = \
        gdb/command/prompt.py \
        gdb/command/explore.py \
        gdb/function/__init__.py \
-       gdb/function/strfns.py
+       gdb/function/strfns.py \
+       gdb/printer/__init__.py \
+       gdb/printer/bound_registers.py
 
 @HAVE_PYTHON_TRUE@PYTHON_FILES = $(PYTHON_FILE_LIST)
 @HAVE_PYTHON_FALSE@PYTHON_FILES =
index 020abd6bb4de2c2d8d35f395c6da40d124d79406..75c2b3ec3f2c1b133c2c8bc8f84353599de91f1c 100644 (file)
@@ -21,6 +21,8 @@
 #ifndef DCACHE_H
 #define DCACHE_H
 
+#include "target.h"    /* for enum target_xfer_status */
+
 typedef struct dcache_struct DCACHE;
 
 /* Invalidate DCACHE.  */
index 75f5f7149f698725efd1a162c935f06355bae396..179f8aaa87298e3dbec05225a69fd7f2f0bac56e 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2014-07-29" "gdb-7.8" "GNU Development Tools"
+.TH GCORE 1 "2014-10-29" "gdb-7.8.1" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
index 87d5e4f797e0b79f833107eb757aa9619f7a3532..484fee7157eeeb158a076089460e1e85846b6ffe 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2014-07-29" "gdb-7.8" "GNU Development Tools"
+.TH GDB 1 "2014-10-29" "gdb-7.8.1" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
index 844337d194638cb49e94f52d52aecb8e6730f24b..21b8aa77766c8a9665498f21852a562c17db6908 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
 
    Copyright (C) 1988-2014 Free Software Foundation, Inc.
 
@@ -38,698 +38,698 @@ developing GNU and promoting software freedom."
 
 \1f
 Indirect:
-gdb.info-1: 1700
-gdb.info-2: 303342
-gdb.info-3: 623494
-gdb.info-4: 912719
-gdb.info-5: 1201731
-gdb.info-6: 1521760
-gdb.info-7: 1801737
+gdb.info-1: 1702
+gdb.info-2: 303350
+gdb.info-3: 623504
+gdb.info-4: 912731
+gdb.info-5: 1201745
+gdb.info-6: 1521834
+gdb.info-7: 1801813
 \1f
 Tag Table:
 (Indirect)
-Node: Top\7f1700
-Node: Summary\7f5156
-Node: Free Software\7f7017
-Node: Free Documentation\7f7757
-Node: Contributors\7f12691
-Node: Sample Session\7f20789
-Node: Invocation\7f27625
-Node: Invoking GDB\7f28168
-Node: File Options\7f30502
-Node: Mode Options\7f33559
-Ref: -nx\7f33786
-Ref: -nh\7f34870
-Node: Startup\7f41188
-Ref: Home Directory Init File\7f41739
-Ref: Option -init-eval-command\7f41849
-Ref: Init File in the Current Directory during Startup\7f42189
-Ref: Startup-Footnote-1\7f44385
-Node: Quitting GDB\7f44494
-Node: Shell Commands\7f45391
-Node: Logging Output\7f46318
-Node: Commands\7f47155
-Node: Command Syntax\7f47793
-Node: Completion\7f49959
-Ref: Completion-Footnote-1\7f55323
-Node: Help\7f55483
-Node: Running\7f61234
-Node: Compilation\7f62463
-Node: Starting\7f64547
-Ref: set exec-wrapper\7f69840
-Ref: set auto-connect-native-target\7f71994
-Node: Arguments\7f76390
-Node: Environment\7f77659
-Node: Working Directory\7f81393
-Node: Input/Output\7f82545
-Node: Attach\7f84516
-Node: Kill Process\7f86982
-Node: Inferiors and Programs\7f87963
-Node: Threads\7f95206
-Ref: set libthread-db-search-path\7f102615
-Node: Forks\7f104669
-Node: Checkpoint/Restart\7f110983
-Ref: Checkpoint/Restart-Footnote-1\7f115511
-Node: Stopping\7f115546
-Node: Breakpoints\7f116809
-Node: Set Breaks\7f120348
-Node: Set Watchpoints\7f139083
-Node: Set Catchpoints\7f148487
-Node: Delete Breaks\7f159361
-Node: Disabling\7f161301
-Node: Conditions\7f164686
-Node: Break Commands\7f170333
-Node: Dynamic Printf\7f173554
-Node: Save Breakpoints\7f177813
-Node: Static Probe Points\7f178988
-Node: Error in Breakpoints\7f181675
-Node: Breakpoint-related Warnings\7f182411
-Node: Continuing and Stepping\7f184738
-Ref: range stepping\7f194118
-Node: Skipping Over Functions and Files\7f195198
-Node: Signals\7f198770
-Ref: extra signal information\7f203204
-Node: Thread Stops\7f204708
-Node: All-Stop Mode\7f205807
-Node: Non-Stop Mode\7f209707
-Node: Background Execution\7f213120
-Node: Thread-Specific Breakpoints\7f215336
-Node: Interrupted System Calls\7f217354
-Node: Observer Mode\7f218868
-Node: Reverse Execution\7f222304
-Ref: Reverse Execution-Footnote-1\7f226929
-Ref: Reverse Execution-Footnote-2\7f227556
-Node: Process Record and Replay\7f227606
-Node: Stack\7f241932
-Node: Frames\7f243480
-Node: Backtrace\7f246247
-Ref: backtrace-command\7f246598
-Ref: Backtrace-Footnote-1\7f252368
-Node: Frame Filter Management\7f252556
-Ref: disable frame-filter all\7f253100
-Node: Selection\7f257408
-Node: Frame Info\7f260280
-Node: Source\7f262267
-Node: List\7f263333
-Node: Specify Location\7f266035
-Node: Edit\7f270639
-Ref: Edit-Footnote-1\7f272115
-Node: Search\7f272350
-Node: Source Path\7f273158
-Ref: set substitute-path\7f279524
-Node: Machine Code\7f281744
-Node: Data\7f288645
-Node: Expressions\7f296309
-Node: Ambiguous Expressions\7f298412
-Node: Variables\7f303342
-Node: Arrays\7f309408
-Node: Output Formats\7f311939
-Ref: Output Formats-Footnote-1\7f315312
-Node: Memory\7f315469
-Node: Auto Display\7f321866
-Node: Print Settings\7f326408
-Ref: set print entry-values\7f334570
-Node: Pretty Printing\7f345884
-Node: Pretty-Printer Introduction\7f346398
-Node: Pretty-Printer Example\7f348153
-Node: Pretty-Printer Commands\7f348931
-Node: Value History\7f351355
-Node: Convenience Vars\7f353777
-Node: Convenience Funs\7f360259
-Node: Registers\7f363130
-Ref: Registers-Footnote-1\7f369063
-Node: Floating Point Hardware\7f369458
-Node: Vector Unit\7f369990
-Node: OS Information\7f370377
-Ref: linux info os infotypes\7f372401
-Node: Memory Region Attributes\7f376608
-Node: Dump/Restore Files\7f381272
-Node: Core File Generation\7f383577
-Node: Character Sets\7f384801
-Node: Caching Target Data\7f391166
-Ref: Caching Target Data-Footnote-1\7f393894
-Node: Searching Memory\7f394132
-Node: Optimized Code\7f397010
-Node: Inline Functions\7f398687
-Node: Tail Call Frames\7f401314
-Ref: set debug entry-values\7f403454
-Node: Macros\7f407528
-Ref: Macros-Footnote-1\7f415104
-Node: Tracepoints\7f415257
-Node: Set Tracepoints\7f417319
-Node: Create and Delete Tracepoints\7f420257
-Node: Enable and Disable Tracepoints\7f426658
-Node: Tracepoint Passcounts\7f427898
-Node: Tracepoint Conditions\7f429309
-Node: Trace State Variables\7f431003
-Node: Tracepoint Actions\7f433198
-Node: Listing Tracepoints\7f439501
-Node: Listing Static Tracepoint Markers\7f441203
-Node: Starting and Stopping Trace Experiments\7f443051
-Ref: disconnected tracing\7f444796
-Node: Tracepoint Restrictions\7f449216
-Node: Analyze Collected Data\7f452985
-Node: tfind\7f454291
-Node: tdump\7f458713
-Node: save tracepoints\7f461228
-Node: Tracepoint Variables\7f461724
-Node: Trace Files\7f462852
-Node: Overlays\7f465228
-Node: How Overlays Work\7f465948
-Ref: A code overlay\7f468503
-Node: Overlay Commands\7f471916
-Node: Automatic Overlay Debugging\7f476098
-Node: Overlay Sample Program\7f478237
-Node: Languages\7f479974
-Node: Setting\7f481137
-Node: Filenames\7f482838
-Node: Manually\7f483649
-Node: Automatically\7f484858
-Node: Show\7f485919
-Ref: show language\7f486207
-Node: Checks\7f487241
-Node: Type Checking\7f488246
-Node: Range Checking\7f490075
-Node: Supported Languages\7f492476
-Node: C\7f493776
-Node: C Operators\7f494740
-Node: C Constants\7f499079
-Node: C Plus Plus Expressions\7f501958
-Node: C Defaults\7f505301
-Node: C Checks\7f505969
-Node: Debugging C\7f506529
-Node: Debugging C Plus Plus\7f507013
-Node: Decimal Floating Point\7f510487
-Node: D\7f511757
-Node: Go\7f512015
-Node: Objective-C\7f513109
-Node: Method Names in Commands\7f513572
-Node: The Print Command with Objective-C\7f515263
-Node: OpenCL C\7f515914
-Node: OpenCL C Datatypes\7f516189
-Node: OpenCL C Expressions\7f516564
-Node: OpenCL C Operators\7f516921
-Node: Fortran\7f517153
-Node: Fortran Operators\7f517874
-Node: Fortran Defaults\7f518730
-Node: Special Fortran Commands\7f519115
-Node: Pascal\7f519621
-Node: Modula-2\7f520136
-Node: M2 Operators\7f521111
-Node: Built-In Func/Proc\7f524109
-Node: M2 Constants\7f527023
-Node: M2 Types\7f528624
-Node: M2 Defaults\7f531842
-Node: Deviations\7f532443
-Node: M2 Checks\7f533544
-Node: M2 Scope\7f534361
-Node: GDB/M2\7f535385
-Node: Ada\7f536298
-Node: Ada Mode Intro\7f537408
-Node: Omissions from Ada\7f539319
-Node: Additions to Ada\7f543672
-Node: Stopping Before Main Program\7f547599
-Node: Ada Exceptions\7f548133
-Node: Ada Tasks\7f549330
-Node: Ada Tasks and Core Files\7f555752
-Node: Ravenscar Profile\7f556670
-Node: Ada Glitches\7f557739
-Node: Unsupported Languages\7f561748
-Node: Symbols\7f562438
-Node: Altering\7f580702
-Node: Assignment\7f581671
-Node: Jumping\7f584777
-Node: Signaling\7f586939
-Node: Returning\7f588076
-Node: Calling\7f591427
-Node: Patching\7f594469
-Node: GDB Files\7f595546
-Node: Files\7f596266
-Ref: Shared Libraries\7f609989
-Ref: Files-Footnote-1\7f621619
-Node: Separate Debug Files\7f623494
-Ref: debug-file-directory\7f626598
-Node: MiniDebugInfo\7f635212
-Node: Index Files\7f637663
-Node: Symbol Errors\7f639725
-Node: Data Files\7f643341
-Node: Targets\7f644297
-Node: Active Targets\7f645777
-Node: Target Commands\7f646851
-Ref: load\7f651233
-Node: Byte Order\7f652214
-Node: Remote Debugging\7f653188
-Node: Connecting\7f654450
-Node: File Transfer\7f659385
-Node: Server\7f660324
-Ref: Other Command-Line Arguments for gdbserver\7f667915
-Ref: Monitor Commands for gdbserver\7f671029
-Ref: Server-Footnote-1\7f676204
-Node: Remote Configuration\7f676324
-Ref: set remotebreak\7f677350
-Ref: set remote hardware-watchpoint-limit\7f678813
-Ref: set remote hardware-breakpoint-limit\7f678813
-Ref: set remote hardware-watchpoint-length-limit\7f679039
-Ref: set remote exec-file\7f679454
-Node: Remote Stub\7f688943
-Node: Stub Contents\7f691838
-Node: Bootstrapping\7f693945
-Node: Debug Session\7f697760
-Node: Configurations\7f699801
-Node: Native\7f700570
-Node: HP-UX\7f701139
-Node: BSD libkvm Interface\7f701428
-Node: SVR4 Process Information\7f702499
-Node: DJGPP Native\7f706303
-Node: Cygwin Native\7f712862
-Node: Non-debug DLL Symbols\7f716936
-Node: Hurd Native\7f721089
-Node: Darwin\7f726345
-Node: Embedded OS\7f727606
-Node: VxWorks\7f728082
-Node: VxWorks Connection\7f730296
-Node: VxWorks Download\7f731230
-Node: VxWorks Attach\7f732965
-Node: Embedded Processors\7f733362
-Node: ARM\7f734495
-Node: M32R/D\7f738631
-Node: M68K\7f740333
-Node: MicroBlaze\7f740625
-Node: MIPS Embedded\7f742074
-Node: PowerPC Embedded\7f747011
-Node: PA\7f750791
-Node: Sparclet\7f751074
-Node: Sparclet File\7f752543
-Node: Sparclet Connection\7f753423
-Node: Sparclet Download\7f753901
-Node: Sparclet Execution\7f754949
-Node: Sparclite\7f755540
-Node: Z8000\7f755912
-Node: AVR\7f757294
-Node: CRIS\7f757657
-Node: Super-H\7f758635
-Node: Architectures\7f759694
-Node: AArch64\7f760131
-Node: i386\7f760537
-Ref: i386-Footnote-1\7f762769
-Node: Alpha\7f762855
-Node: MIPS\7f762988
-Node: HPPA\7f766882
-Node: SPU\7f767400
-Node: PowerPC\7f769586
-Node: Nios II\7f770321
-Node: Controlling GDB\7f770710
-Node: Prompt\7f771606
-Node: Editing\7f773324
-Node: Command History\7f774267
-Node: Screen Size\7f777798
-Node: Numbers\7f779732
-Node: ABI\7f781711
-Node: Auto-loading\7f784884
-Ref: set auto-load off\7f786259
-Ref: show auto-load\7f786895
-Ref: info auto-load\7f787674
-Node: Init File in the Current Directory\7f790604
-Ref: set auto-load local-gdbinit\7f791179
-Ref: show auto-load local-gdbinit\7f791361
-Ref: info auto-load local-gdbinit\7f791525
-Node: libthread_db.so.1 file\7f791673
-Ref: set auto-load libthread-db\7f792612
-Ref: show auto-load libthread-db\7f792743
-Ref: info auto-load libthread-db\7f792880
-Node: Auto-loading safe path\7f793064
-Ref: set auto-load safe-path\7f794370
-Ref: show auto-load safe-path\7f795109
-Ref: add-auto-load-safe-path\7f795232
-Node: Auto-loading verbose mode\7f798126
-Ref: set debug auto-load\7f799289
-Ref: show debug auto-load\7f799390
-Node: Messages/Warnings\7f799512
-Ref: confirmation requests\7f800946
-Node: Debugging Output\7f802150
-Node: Other Misc Settings\7f810629
-Node: Extending GDB\7f811653
-Node: Sequences\7f813506
-Node: Define\7f814167
-Node: Hooks\7f817978
-Node: Command Files\7f820344
-Node: Output\7f825417
-Node: Auto-loading sequences\7f830381
-Ref: set auto-load gdb-scripts\7f830876
-Ref: show auto-load gdb-scripts\7f831000
-Ref: info auto-load gdb-scripts\7f831130
-Node: Python\7f831361
-Node: Python Commands\7f832534
-Node: Python API\7f834862
-Node: Basic Python\7f837345
-Ref: prompt_hook\7f846007
-Node: Exception Handling\7f846605
-Node: Values From Inferior\7f849101
-Node: Types In Python\7f862010
-Node: Pretty Printing API\7f871191
-Node: Selecting Pretty-Printers\7f875087
-Node: Writing a Pretty-Printer\7f877420
-Node: Type Printing API\7f882742
-Node: Frame Filter API\7f885358
-Node: Frame Decorator API\7f892639
-Ref: frame_args\7f896223
-Node: Writing a Frame Filter\7f899553
-Node: Xmethods In Python\7f912719
-Node: Xmethod API\7f915609
-Node: Writing an Xmethod\7f919128
-Node: Inferiors In Python\7f924713
-Node: Events In Python\7f927593
-Node: Threads In Python\7f932772
-Node: Commands In Python\7f935212
-Node: Parameters In Python\7f944622
-Node: Functions In Python\7f950082
-Node: Progspaces In Python\7f952299
-Node: Objfiles In Python\7f953983
-Node: Frames In Python\7f956242
-Node: Blocks In Python\7f962545
-Node: Symbols In Python\7f966907
-Node: Symbol Tables In Python\7f974134
-Node: Line Tables In Python\7f977059
-Node: Breakpoints In Python\7f979896
-Node: Finish Breakpoints in Python\7f987824
-Node: Lazy Strings In Python\7f989930
-Node: Architectures In Python\7f992164
-Node: Python Auto-loading\7f994353
-Ref: set auto-load python-scripts\7f994982
-Ref: show auto-load python-scripts\7f995082
-Ref: info auto-load python-scripts\7f995188
-Node: Python modules\7f996213
-Node: gdb.printing\7f996599
-Node: gdb.types\7f998026
-Node: gdb.prompt\7f1001038
-Node: Guile\7f1002687
-Node: Guile Introduction\7f1003346
-Node: Guile Commands\7f1004217
-Node: Guile API\7f1006071
-Node: Basic Guile\7f1008068
-Node: Guile Configuration\7f1013750
-Node: GDB Scheme Data Types\7f1014726
-Node: Guile Exception Handling\7f1016558
-Node: Values From Inferior In Guile\7f1020592
-Node: Arithmetic In Guile\7f1036127
-Node: Types In Guile\7f1037758
-Ref: Fields of a type in Guile\7f1045707
-Node: Guile Pretty Printing API\7f1047103
-Node: Selecting Guile Pretty-Printers\7f1052705
-Node: Writing a Guile Pretty-Printer\7f1055081
-Node: Commands In Guile\7f1060266
-Node: Parameters In Guile\7f1071046
-Ref: Parameters In Guile-Footnote-1\7f1077927
-Node: Progspaces In Guile\7f1078043
-Node: Objfiles In Guile\7f1080631
-Node: Frames In Guile\7f1082703
-Node: Blocks In Guile\7f1089133
-Node: Symbols In Guile\7f1093941
-Node: Symbol Tables In Guile\7f1101275
-Node: Breakpoints In Guile\7f1104238
-Node: Lazy Strings In Guile\7f1114469
-Node: Architectures In Guile\7f1116763
-Node: Disassembly In Guile\7f1121070
-Node: I/O Ports in Guile\7f1124272
-Node: Memory Ports in Guile\7f1124828
-Node: Iterators In Guile\7f1128000
-Node: Guile Auto-loading\7f1132289
-Ref: set auto-load guile-scripts\7f1132912
-Ref: show auto-load guile-scripts\7f1133010
-Ref: info auto-load guile-scripts\7f1133114
-Node: Guile Modules\7f1134073
-Node: Guile Printing Module\7f1134395
-Node: Guile Types Module\7f1135214
-Node: Auto-loading extensions\7f1136507
-Node: objfile-gdbdotext file\7f1137705
-Ref: set auto-load scripts-directory\7f1139141
-Ref: with-auto-load-dir\7f1139517
-Ref: show auto-load scripts-directory\7f1140335
-Node: dotdebug_gdb_scripts section\7f1140665
-Node: Which flavor to choose?\7f1142511
-Node: Multiple Extension Languages\7f1144332
-Node: Aliases\7f1145396
-Node: Interpreters\7f1148261
-Node: TUI\7f1150359
-Node: TUI Overview\7f1151303
-Node: TUI Keys\7f1153736
-Node: TUI Single Key Mode\7f1156040
-Node: TUI Commands\7f1156915
-Node: TUI Configuration\7f1159299
-Node: Emacs\7f1160605
-Node: GDB/MI\7f1166042
-Node: GDB/MI General Design\7f1168016
-Node: Context management\7f1170536
-Node: Asynchronous and non-stop modes\7f1174364
-Node: Thread groups\7f1177338
-Node: GDB/MI Command Syntax\7f1179616
-Node: GDB/MI Input Syntax\7f1179859
-Node: GDB/MI Output Syntax\7f1181409
-Node: GDB/MI Compatibility with CLI\7f1184994
-Node: GDB/MI Development and Front Ends\7f1185731
-Node: GDB/MI Output Records\7f1187385
-Node: GDB/MI Result Records\7f1187791
-Node: GDB/MI Stream Records\7f1189141
-Node: GDB/MI Async Records\7f1190406
-Node: GDB/MI Breakpoint Information\7f1201731
-Node: GDB/MI Frame Information\7f1205682
-Node: GDB/MI Thread Information\7f1206768
-Node: GDB/MI Ada Exception Information\7f1207748
-Node: GDB/MI Simple Examples\7f1208171
-Node: GDB/MI Command Description Format\7f1210379
-Node: GDB/MI Breakpoint Commands\7f1211259
-Node: GDB/MI Catchpoint Commands\7f1231105
-Node: Shared Library GDB/MI Catchpoint Commands\7f1231473
-Node: Ada Exception GDB/MI Catchpoint Commands\7f1233131
-Node: GDB/MI Program Context\7f1235535
-Node: GDB/MI Thread Commands\7f1239803
-Node: GDB/MI Ada Tasking Commands\7f1243759
-Node: GDB/MI Program Execution\7f1246012
-Node: GDB/MI Stack Manipulation\7f1258046
-Ref: -stack-list-arguments\7f1259945
-Ref: -stack-list-frames\7f1263650
-Ref: -stack-list-locals\7f1267513
-Ref: -stack-list-variables\7f1269003
-Node: GDB/MI Variable Objects\7f1270537
-Ref: -var-set-format\7f1280495
-Ref: -var-list-children\7f1281613
-Ref: -var-update\7f1290405
-Ref: -var-set-frozen\7f1293403
-Ref: -var-set-update-range\7f1294200
-Ref: -var-set-visualizer\7f1294729
-Node: GDB/MI Data Manipulation\7f1296219
-Node: GDB/MI Tracepoint Commands\7f1315766
-Node: GDB/MI Symbol Query\7f1327351
-Node: GDB/MI File Commands\7f1328040
-Node: GDB/MI Target Manipulation\7f1331335
-Node: GDB/MI File Transfer Commands\7f1337550
-Node: GDB/MI Ada Exceptions Commands\7f1338873
-Node: GDB/MI Support Commands\7f1340226
-Node: GDB/MI Miscellaneous Commands\7f1344799
-Ref: -interpreter-exec\7f1354823
-Node: Annotations\7f1357163
-Node: Annotations Overview\7f1358082
-Node: Server Prefix\7f1360545
-Node: Prompting\7f1361279
-Node: Errors\7f1362796
-Node: Invalidation\7f1363692
-Node: Annotations for Running\7f1364171
-Node: Source Annotations\7f1365705
-Node: JIT Interface\7f1366634
-Node: Declarations\7f1368433
-Node: Registering Code\7f1369820
-Node: Unregistering Code\7f1370792
-Node: Custom Debug Info\7f1371419
-Node: Using JIT Debug Info Readers\7f1372715
-Node: Writing JIT Debug Info Readers\7f1373727
-Node: In-Process Agent\7f1375922
-Ref: Control Agent\7f1377865
-Node: In-Process Agent Protocol\7f1378732
-Node: IPA Protocol Objects\7f1379523
-Ref: agent expression object\7f1380521
-Ref: tracepoint action object\7f1380726
-Ref: tracepoint object\7f1380806
-Node: IPA Protocol Commands\7f1383382
-Node: GDB Bugs\7f1384852
-Node: Bug Criteria\7f1385584
-Node: Bug Reporting\7f1386461
-Node: Command Line Editing\7f1394290
-Node: Introduction and Notation\7f1394942
-Node: Readline Interaction\7f1396563
-Node: Readline Bare Essentials\7f1397752
-Node: Readline Movement Commands\7f1399533
-Node: Readline Killing Commands\7f1400491
-Node: Readline Arguments\7f1402407
-Node: Searching\7f1403449
-Node: Readline Init File\7f1405599
-Node: Readline Init File Syntax\7f1406750
-Node: Conditional Init Constructs\7f1421849
-Node: Sample Init File\7f1424372
-Node: Bindable Readline Commands\7f1427486
-Node: Commands For Moving\7f1428538
-Node: Commands For History\7f1429396
-Node: Commands For Text\7f1432791
-Node: Commands For Killing\7f1435514
-Node: Numeric Arguments\7f1437654
-Node: Commands For Completion\7f1438790
-Node: Keyboard Macros\7f1440756
-Node: Miscellaneous Commands\7f1441324
-Node: Readline vi Mode\7f1445172
-Node: Using History Interactively\7f1446082
-Node: History Interaction\7f1446597
-Node: Event Designators\7f1448019
-Node: Word Designators\7f1449156
-Node: Modifiers\7f1450791
-Node: In Memoriam\7f1452012
-Node: Formatting Documentation\7f1452895
-Ref: Formatting Documentation-Footnote-1\7f1456207
-Node: Installing GDB\7f1456271
-Node: Requirements\7f1456843
-Ref: Expat\7f1457412
-Node: Running Configure\7f1459979
-Node: Separate Objdir\7f1463518
-Node: Config Names\7f1466401
-Node: Configure Options\7f1467846
-Node: System-wide configuration\7f1470217
-Node: System-wide Configuration Scripts\7f1472177
-Node: Maintenance Commands\7f1473361
-Ref: maint info breakpoints\7f1475016
-Node: Remote Protocol\7f1491279
-Node: Overview\7f1491933
-Ref: Binary Data\7f1494478
-Node: Packets\7f1497003
-Ref: thread-id syntax\7f1497903
-Ref: extended mode\7f1499348
-Ref: ? packet\7f1499606
-Ref: bc\7f1501072
-Ref: bs\7f1501282
-Ref: read registers packet\7f1502899
-Ref: cycle step packet\7f1504835
-Ref: write register packet\7f1507436
-Ref: step with signal packet\7f1508415
-Ref: vCont packet\7f1509891
-Ref: vKill packet\7f1514779
-Ref: X packet\7f1515709
-Ref: insert breakpoint or watchpoint packet\7f1516020
-Node: Stop Reply Packets\7f1521760
-Node: General Query Packets\7f1526526
-Ref: qCRC packet\7f1529356
-Ref: QNonStop\7f1537179
-Ref: QPassSignals\7f1537841
-Ref: QProgramSignals\7f1539048
-Ref: qSearch memory\7f1541563
-Ref: QStartNoAckMode\7f1542071
-Ref: qSupported\7f1542602
-Ref: multiprocess extensions\7f1555300
-Ref: install tracepoint in tracing\7f1557330
-Ref: qXfer read\7f1560714
-Ref: qXfer auxiliary vector read\7f1561209
-Ref: qXfer btrace read\7f1561557
-Ref: qXfer target description read\7f1562624
-Ref: qXfer library list read\7f1563058
-Ref: qXfer svr4 library list read\7f1563714
-Ref: qXfer memory map read\7f1565567
-Ref: qXfer sdata read\7f1565954
-Ref: qXfer siginfo read\7f1566420
-Ref: qXfer spu read\7f1566817
-Ref: qXfer threads read\7f1567341
-Ref: qXfer traceframe info read\7f1567744
-Ref: qXfer unwind info block\7f1568162
-Ref: qXfer fdpic loadmap read\7f1568396
-Ref: qXfer osdata read\7f1568812
-Ref: qXfer write\7f1570074
-Ref: qXfer siginfo write\7f1570641
-Ref: qXfer spu write\7f1571038
-Ref: General Query Packets-Footnote-1\7f1573580
-Node: Architecture-Specific Protocol Details\7f1573907
-Node: ARM-Specific Protocol Details\7f1574416
-Node: ARM Breakpoint Kinds\7f1574664
-Node: MIPS-Specific Protocol Details\7f1574995
-Node: MIPS Register packet Format\7f1575278
-Node: MIPS Breakpoint Kinds\7f1576205
-Node: Tracepoint Packets\7f1576623
-Ref: QTEnable\7f1585614
-Ref: QTDisable\7f1585810
-Ref: qTfSTM\7f1591347
-Ref: qTsSTM\7f1591347
-Ref: qTSTMat\7f1592424
-Ref: QTBuffer-size\7f1593575
-Node: Host I/O Packets\7f1595548
-Node: Interrupts\7f1600159
-Node: Notification Packets\7f1602062
-Node: Remote Non-Stop\7f1607482
-Node: Packet Acknowledgment\7f1609772
-Node: Examples\7f1611887
-Node: File-I/O Remote Protocol Extension\7f1612481
-Node: File-I/O Overview\7f1612943
-Node: Protocol Basics\7f1615142
-Node: The F Request Packet\7f1617371
-Node: The F Reply Packet\7f1618272
-Node: The Ctrl-C Message\7f1619190
-Node: Console I/O\7f1620816
-Node: List of Supported Calls\7f1622032
-Node: open\7f1622394
-Node: close\7f1624902
-Node: read\7f1625285
-Node: write\7f1625894
-Node: lseek\7f1626665
-Node: rename\7f1627549
-Node: unlink\7f1628956
-Node: stat/fstat\7f1629903
-Node: gettimeofday\7f1630796
-Node: isatty\7f1631232
-Node: system\7f1631828
-Node: Protocol-specific Representation of Datatypes\7f1633370
-Node: Integral Datatypes\7f1633747
-Node: Pointer Values\7f1634554
-Node: Memory Transfer\7f1635258
-Node: struct stat\7f1635878
-Node: struct timeval\7f1638080
-Node: Constants\7f1638597
-Node: Open Flags\7f1639046
-Node: mode_t Values\7f1639387
-Node: Errno Values\7f1639879
-Node: Lseek Flags\7f1640689
-Node: Limits\7f1640874
-Node: File-I/O Examples\7f1641234
-Node: Library List Format\7f1642322
-Node: Library List Format for SVR4 Targets\7f1645104
-Node: Memory Map Format\7f1647571
-Node: Thread List Format\7f1650146
-Node: Traceframe Info Format\7f1650964
-Node: Branch Trace Format\7f1652650
-Node: Agent Expressions\7f1653995
-Node: General Bytecode Design\7f1656816
-Node: Bytecode Descriptions\7f1661610
-Node: Using Agent Expressions\7f1675041
-Node: Varying Target Capabilities\7f1677018
-Node: Rationale\7f1678179
-Node: Target Descriptions\7f1685568
-Node: Retrieving Descriptions\7f1687442
-Node: Target Description Format\7f1688527
-Node: Predefined Target Types\7f1697570
-Node: Standard Target Features\7f1698954
-Node: AArch64 Features\7f1700818
-Node: ARM Features\7f1701241
-Node: i386 Features\7f1702759
-Node: MIPS Features\7f1704695
-Node: M68K Features\7f1705880
-Node: Nios II Features\7f1706543
-Node: PowerPC Features\7f1706941
-Node: S/390 and System z Features\7f1708264
-Node: TIC6x Features\7f1709729
-Node: Operating System Information\7f1710289
-Node: Process list\7f1711124
-Node: Trace File Format\7f1712187
-Node: Index Section Format\7f1714180
-Node: Man Pages\7f1722150
-Node: gdb man\7f1722556
-Node: gdbserver man\7f1728592
-Node: gcore man\7f1735789
-Node: gdbinit man\7f1736446
-Node: Copying\7f1737329
-Node: GNU Free Documentation License\7f1774890
-Node: Concept Index\7f1801737
-Node: Command and Variable Index\7f1930239
+Node: Top\7f1702
+Node: Summary\7f5160
+Node: Free Software\7f7021
+Node: Free Documentation\7f7761
+Node: Contributors\7f12695
+Node: Sample Session\7f20793
+Node: Invocation\7f27631
+Node: Invoking GDB\7f28174
+Node: File Options\7f30508
+Node: Mode Options\7f33565
+Ref: -nx\7f33792
+Ref: -nh\7f34876
+Node: Startup\7f41194
+Ref: Home Directory Init File\7f41745
+Ref: Option -init-eval-command\7f41855
+Ref: Init File in the Current Directory during Startup\7f42195
+Ref: Startup-Footnote-1\7f44391
+Node: Quitting GDB\7f44500
+Node: Shell Commands\7f45397
+Node: Logging Output\7f46324
+Node: Commands\7f47161
+Node: Command Syntax\7f47799
+Node: Completion\7f49965
+Ref: Completion-Footnote-1\7f55329
+Node: Help\7f55489
+Node: Running\7f61240
+Node: Compilation\7f62469
+Node: Starting\7f64553
+Ref: set exec-wrapper\7f69846
+Ref: set auto-connect-native-target\7f72000
+Node: Arguments\7f76396
+Node: Environment\7f77665
+Node: Working Directory\7f81399
+Node: Input/Output\7f82551
+Node: Attach\7f84522
+Node: Kill Process\7f86988
+Node: Inferiors and Programs\7f87969
+Node: Threads\7f95212
+Ref: set libthread-db-search-path\7f102621
+Node: Forks\7f104675
+Node: Checkpoint/Restart\7f110989
+Ref: Checkpoint/Restart-Footnote-1\7f115517
+Node: Stopping\7f115552
+Node: Breakpoints\7f116815
+Node: Set Breaks\7f120354
+Node: Set Watchpoints\7f139089
+Node: Set Catchpoints\7f148493
+Node: Delete Breaks\7f159367
+Node: Disabling\7f161307
+Node: Conditions\7f164692
+Node: Break Commands\7f170339
+Node: Dynamic Printf\7f173560
+Node: Save Breakpoints\7f177819
+Node: Static Probe Points\7f178994
+Node: Error in Breakpoints\7f181681
+Node: Breakpoint-related Warnings\7f182417
+Node: Continuing and Stepping\7f184744
+Ref: range stepping\7f194124
+Node: Skipping Over Functions and Files\7f195204
+Node: Signals\7f198776
+Ref: extra signal information\7f203210
+Node: Thread Stops\7f204714
+Node: All-Stop Mode\7f205813
+Node: Non-Stop Mode\7f209713
+Node: Background Execution\7f213126
+Node: Thread-Specific Breakpoints\7f215342
+Node: Interrupted System Calls\7f217360
+Node: Observer Mode\7f218874
+Node: Reverse Execution\7f222310
+Ref: Reverse Execution-Footnote-1\7f226935
+Ref: Reverse Execution-Footnote-2\7f227562
+Node: Process Record and Replay\7f227612
+Node: Stack\7f241938
+Node: Frames\7f243486
+Node: Backtrace\7f246253
+Ref: backtrace-command\7f246604
+Ref: Backtrace-Footnote-1\7f252374
+Node: Frame Filter Management\7f252562
+Ref: disable frame-filter all\7f253106
+Node: Selection\7f257414
+Node: Frame Info\7f260286
+Node: Source\7f262273
+Node: List\7f263339
+Node: Specify Location\7f266041
+Node: Edit\7f270645
+Ref: Edit-Footnote-1\7f272121
+Node: Search\7f272356
+Node: Source Path\7f273164
+Ref: set substitute-path\7f279530
+Node: Machine Code\7f281750
+Node: Data\7f288651
+Node: Expressions\7f296315
+Node: Ambiguous Expressions\7f298418
+Node: Variables\7f303350
+Node: Arrays\7f309416
+Node: Output Formats\7f311947
+Ref: Output Formats-Footnote-1\7f315320
+Node: Memory\7f315477
+Node: Auto Display\7f321874
+Node: Print Settings\7f326416
+Ref: set print entry-values\7f334578
+Node: Pretty Printing\7f345892
+Node: Pretty-Printer Introduction\7f346406
+Node: Pretty-Printer Example\7f348161
+Node: Pretty-Printer Commands\7f348939
+Node: Value History\7f351363
+Node: Convenience Vars\7f353785
+Node: Convenience Funs\7f360267
+Node: Registers\7f363138
+Ref: Registers-Footnote-1\7f369071
+Node: Floating Point Hardware\7f369466
+Node: Vector Unit\7f369998
+Node: OS Information\7f370385
+Ref: linux info os infotypes\7f372409
+Node: Memory Region Attributes\7f376616
+Node: Dump/Restore Files\7f381280
+Node: Core File Generation\7f383585
+Node: Character Sets\7f384809
+Node: Caching Target Data\7f391174
+Ref: Caching Target Data-Footnote-1\7f393902
+Node: Searching Memory\7f394140
+Node: Optimized Code\7f397018
+Node: Inline Functions\7f398695
+Node: Tail Call Frames\7f401322
+Ref: set debug entry-values\7f403462
+Node: Macros\7f407536
+Ref: Macros-Footnote-1\7f415112
+Node: Tracepoints\7f415265
+Node: Set Tracepoints\7f417327
+Node: Create and Delete Tracepoints\7f420265
+Node: Enable and Disable Tracepoints\7f426666
+Node: Tracepoint Passcounts\7f427906
+Node: Tracepoint Conditions\7f429317
+Node: Trace State Variables\7f431011
+Node: Tracepoint Actions\7f433206
+Node: Listing Tracepoints\7f439509
+Node: Listing Static Tracepoint Markers\7f441211
+Node: Starting and Stopping Trace Experiments\7f443059
+Ref: disconnected tracing\7f444804
+Node: Tracepoint Restrictions\7f449224
+Node: Analyze Collected Data\7f452993
+Node: tfind\7f454299
+Node: tdump\7f458721
+Node: save tracepoints\7f461236
+Node: Tracepoint Variables\7f461732
+Node: Trace Files\7f462860
+Node: Overlays\7f465236
+Node: How Overlays Work\7f465956
+Ref: A code overlay\7f468511
+Node: Overlay Commands\7f471924
+Node: Automatic Overlay Debugging\7f476106
+Node: Overlay Sample Program\7f478245
+Node: Languages\7f479982
+Node: Setting\7f481145
+Node: Filenames\7f482846
+Node: Manually\7f483657
+Node: Automatically\7f484866
+Node: Show\7f485927
+Ref: show language\7f486215
+Node: Checks\7f487249
+Node: Type Checking\7f488254
+Node: Range Checking\7f490083
+Node: Supported Languages\7f492484
+Node: C\7f493784
+Node: C Operators\7f494748
+Node: C Constants\7f499087
+Node: C Plus Plus Expressions\7f501966
+Node: C Defaults\7f505309
+Node: C Checks\7f505977
+Node: Debugging C\7f506537
+Node: Debugging C Plus Plus\7f507021
+Node: Decimal Floating Point\7f510495
+Node: D\7f511765
+Node: Go\7f512023
+Node: Objective-C\7f513117
+Node: Method Names in Commands\7f513580
+Node: The Print Command with Objective-C\7f515271
+Node: OpenCL C\7f515922
+Node: OpenCL C Datatypes\7f516197
+Node: OpenCL C Expressions\7f516572
+Node: OpenCL C Operators\7f516929
+Node: Fortran\7f517161
+Node: Fortran Operators\7f517882
+Node: Fortran Defaults\7f518738
+Node: Special Fortran Commands\7f519123
+Node: Pascal\7f519629
+Node: Modula-2\7f520144
+Node: M2 Operators\7f521119
+Node: Built-In Func/Proc\7f524117
+Node: M2 Constants\7f527031
+Node: M2 Types\7f528632
+Node: M2 Defaults\7f531850
+Node: Deviations\7f532451
+Node: M2 Checks\7f533552
+Node: M2 Scope\7f534369
+Node: GDB/M2\7f535393
+Node: Ada\7f536306
+Node: Ada Mode Intro\7f537416
+Node: Omissions from Ada\7f539327
+Node: Additions to Ada\7f543680
+Node: Stopping Before Main Program\7f547607
+Node: Ada Exceptions\7f548141
+Node: Ada Tasks\7f549338
+Node: Ada Tasks and Core Files\7f555760
+Node: Ravenscar Profile\7f556678
+Node: Ada Glitches\7f557747
+Node: Unsupported Languages\7f561756
+Node: Symbols\7f562446
+Node: Altering\7f580710
+Node: Assignment\7f581679
+Node: Jumping\7f584785
+Node: Signaling\7f586947
+Node: Returning\7f588084
+Node: Calling\7f591435
+Node: Patching\7f594477
+Node: GDB Files\7f595554
+Node: Files\7f596274
+Ref: Shared Libraries\7f609997
+Ref: Files-Footnote-1\7f621627
+Node: Separate Debug Files\7f623504
+Ref: debug-file-directory\7f626608
+Node: MiniDebugInfo\7f635222
+Node: Index Files\7f637673
+Node: Symbol Errors\7f639735
+Node: Data Files\7f643351
+Node: Targets\7f644307
+Node: Active Targets\7f645787
+Node: Target Commands\7f646861
+Ref: load\7f651243
+Node: Byte Order\7f652224
+Node: Remote Debugging\7f653198
+Node: Connecting\7f654460
+Node: File Transfer\7f659395
+Node: Server\7f660334
+Ref: Other Command-Line Arguments for gdbserver\7f667925
+Ref: Monitor Commands for gdbserver\7f671039
+Ref: Server-Footnote-1\7f676214
+Node: Remote Configuration\7f676334
+Ref: set remotebreak\7f677360
+Ref: set remote hardware-watchpoint-limit\7f678823
+Ref: set remote hardware-breakpoint-limit\7f678823
+Ref: set remote hardware-watchpoint-length-limit\7f679049
+Ref: set remote exec-file\7f679464
+Node: Remote Stub\7f688953
+Node: Stub Contents\7f691848
+Node: Bootstrapping\7f693955
+Node: Debug Session\7f697770
+Node: Configurations\7f699811
+Node: Native\7f700580
+Node: HP-UX\7f701149
+Node: BSD libkvm Interface\7f701438
+Node: SVR4 Process Information\7f702509
+Node: DJGPP Native\7f706313
+Node: Cygwin Native\7f712872
+Node: Non-debug DLL Symbols\7f716946
+Node: Hurd Native\7f721099
+Node: Darwin\7f726355
+Node: Embedded OS\7f727616
+Node: VxWorks\7f728092
+Node: VxWorks Connection\7f730306
+Node: VxWorks Download\7f731240
+Node: VxWorks Attach\7f732975
+Node: Embedded Processors\7f733372
+Node: ARM\7f734505
+Node: M32R/D\7f738641
+Node: M68K\7f740343
+Node: MicroBlaze\7f740635
+Node: MIPS Embedded\7f742084
+Node: PowerPC Embedded\7f747021
+Node: PA\7f750801
+Node: Sparclet\7f751084
+Node: Sparclet File\7f752553
+Node: Sparclet Connection\7f753433
+Node: Sparclet Download\7f753911
+Node: Sparclet Execution\7f754959
+Node: Sparclite\7f755550
+Node: Z8000\7f755922
+Node: AVR\7f757304
+Node: CRIS\7f757667
+Node: Super-H\7f758645
+Node: Architectures\7f759704
+Node: AArch64\7f760141
+Node: i386\7f760547
+Ref: i386-Footnote-1\7f762779
+Node: Alpha\7f762865
+Node: MIPS\7f762998
+Node: HPPA\7f766892
+Node: SPU\7f767410
+Node: PowerPC\7f769596
+Node: Nios II\7f770331
+Node: Controlling GDB\7f770720
+Node: Prompt\7f771616
+Node: Editing\7f773334
+Node: Command History\7f774277
+Node: Screen Size\7f777808
+Node: Numbers\7f779742
+Node: ABI\7f781721
+Node: Auto-loading\7f784894
+Ref: set auto-load off\7f786269
+Ref: show auto-load\7f786905
+Ref: info auto-load\7f787684
+Node: Init File in the Current Directory\7f790614
+Ref: set auto-load local-gdbinit\7f791189
+Ref: show auto-load local-gdbinit\7f791371
+Ref: info auto-load local-gdbinit\7f791535
+Node: libthread_db.so.1 file\7f791683
+Ref: set auto-load libthread-db\7f792622
+Ref: show auto-load libthread-db\7f792753
+Ref: info auto-load libthread-db\7f792890
+Node: Auto-loading safe path\7f793074
+Ref: set auto-load safe-path\7f794380
+Ref: show auto-load safe-path\7f795119
+Ref: add-auto-load-safe-path\7f795242
+Node: Auto-loading verbose mode\7f798136
+Ref: set debug auto-load\7f799299
+Ref: show debug auto-load\7f799400
+Node: Messages/Warnings\7f799522
+Ref: confirmation requests\7f800956
+Node: Debugging Output\7f802160
+Node: Other Misc Settings\7f810639
+Node: Extending GDB\7f811663
+Node: Sequences\7f813516
+Node: Define\7f814177
+Node: Hooks\7f817988
+Node: Command Files\7f820354
+Node: Output\7f825427
+Node: Auto-loading sequences\7f830391
+Ref: set auto-load gdb-scripts\7f830886
+Ref: show auto-load gdb-scripts\7f831010
+Ref: info auto-load gdb-scripts\7f831140
+Node: Python\7f831371
+Node: Python Commands\7f832544
+Node: Python API\7f834872
+Node: Basic Python\7f837355
+Ref: prompt_hook\7f846017
+Node: Exception Handling\7f846615
+Node: Values From Inferior\7f849111
+Node: Types In Python\7f862020
+Node: Pretty Printing API\7f871201
+Node: Selecting Pretty-Printers\7f875097
+Node: Writing a Pretty-Printer\7f877430
+Node: Type Printing API\7f882752
+Node: Frame Filter API\7f885368
+Node: Frame Decorator API\7f892649
+Ref: frame_args\7f896233
+Node: Writing a Frame Filter\7f899563
+Node: Xmethods In Python\7f912731
+Node: Xmethod API\7f915621
+Node: Writing an Xmethod\7f919140
+Node: Inferiors In Python\7f924725
+Node: Events In Python\7f927605
+Node: Threads In Python\7f932784
+Node: Commands In Python\7f935224
+Node: Parameters In Python\7f944634
+Node: Functions In Python\7f950094
+Node: Progspaces In Python\7f952311
+Node: Objfiles In Python\7f953995
+Node: Frames In Python\7f956254
+Node: Blocks In Python\7f962557
+Node: Symbols In Python\7f966919
+Node: Symbol Tables In Python\7f974146
+Node: Line Tables In Python\7f977071
+Node: Breakpoints In Python\7f979908
+Node: Finish Breakpoints in Python\7f987836
+Node: Lazy Strings In Python\7f989942
+Node: Architectures In Python\7f992176
+Node: Python Auto-loading\7f994365
+Ref: set auto-load python-scripts\7f994994
+Ref: show auto-load python-scripts\7f995094
+Ref: info auto-load python-scripts\7f995200
+Node: Python modules\7f996225
+Node: gdb.printing\7f996611
+Node: gdb.types\7f998038
+Node: gdb.prompt\7f1001050
+Node: Guile\7f1002699
+Node: Guile Introduction\7f1003358
+Node: Guile Commands\7f1004229
+Node: Guile API\7f1006083
+Node: Basic Guile\7f1008080
+Node: Guile Configuration\7f1013762
+Node: GDB Scheme Data Types\7f1014738
+Node: Guile Exception Handling\7f1016570
+Node: Values From Inferior In Guile\7f1020604
+Node: Arithmetic In Guile\7f1036139
+Node: Types In Guile\7f1037770
+Ref: Fields of a type in Guile\7f1045719
+Node: Guile Pretty Printing API\7f1047115
+Node: Selecting Guile Pretty-Printers\7f1052717
+Node: Writing a Guile Pretty-Printer\7f1055093
+Node: Commands In Guile\7f1060278
+Node: Parameters In Guile\7f1071058
+Ref: Parameters In Guile-Footnote-1\7f1077939
+Node: Progspaces In Guile\7f1078055
+Node: Objfiles In Guile\7f1080643
+Node: Frames In Guile\7f1082715
+Node: Blocks In Guile\7f1089145
+Node: Symbols In Guile\7f1093953
+Node: Symbol Tables In Guile\7f1101287
+Node: Breakpoints In Guile\7f1104250
+Node: Lazy Strings In Guile\7f1114481
+Node: Architectures In Guile\7f1116775
+Node: Disassembly In Guile\7f1121082
+Node: I/O Ports in Guile\7f1124284
+Node: Memory Ports in Guile\7f1124840
+Node: Iterators In Guile\7f1128012
+Node: Guile Auto-loading\7f1132301
+Ref: set auto-load guile-scripts\7f1132924
+Ref: show auto-load guile-scripts\7f1133022
+Ref: info auto-load guile-scripts\7f1133126
+Node: Guile Modules\7f1134085
+Node: Guile Printing Module\7f1134407
+Node: Guile Types Module\7f1135226
+Node: Auto-loading extensions\7f1136519
+Node: objfile-gdbdotext file\7f1137717
+Ref: set auto-load scripts-directory\7f1139153
+Ref: with-auto-load-dir\7f1139529
+Ref: show auto-load scripts-directory\7f1140347
+Node: dotdebug_gdb_scripts section\7f1140677
+Node: Which flavor to choose?\7f1142523
+Node: Multiple Extension Languages\7f1144344
+Node: Aliases\7f1145408
+Node: Interpreters\7f1148273
+Node: TUI\7f1150371
+Node: TUI Overview\7f1151315
+Node: TUI Keys\7f1153748
+Node: TUI Single Key Mode\7f1156052
+Node: TUI Commands\7f1156927
+Node: TUI Configuration\7f1159311
+Node: Emacs\7f1160617
+Node: GDB/MI\7f1166054
+Node: GDB/MI General Design\7f1168028
+Node: Context management\7f1170548
+Node: Asynchronous and non-stop modes\7f1174376
+Node: Thread groups\7f1177350
+Node: GDB/MI Command Syntax\7f1179628
+Node: GDB/MI Input Syntax\7f1179871
+Node: GDB/MI Output Syntax\7f1181421
+Node: GDB/MI Compatibility with CLI\7f1185006
+Node: GDB/MI Development and Front Ends\7f1185743
+Node: GDB/MI Output Records\7f1187397
+Node: GDB/MI Result Records\7f1187803
+Node: GDB/MI Stream Records\7f1189153
+Node: GDB/MI Async Records\7f1190418
+Node: GDB/MI Breakpoint Information\7f1201745
+Node: GDB/MI Frame Information\7f1205696
+Node: GDB/MI Thread Information\7f1206782
+Node: GDB/MI Ada Exception Information\7f1207762
+Node: GDB/MI Simple Examples\7f1208185
+Node: GDB/MI Command Description Format\7f1210393
+Node: GDB/MI Breakpoint Commands\7f1211273
+Node: GDB/MI Catchpoint Commands\7f1231119
+Node: Shared Library GDB/MI Catchpoint Commands\7f1231487
+Node: Ada Exception GDB/MI Catchpoint Commands\7f1233145
+Node: GDB/MI Program Context\7f1235549
+Node: GDB/MI Thread Commands\7f1239817
+Node: GDB/MI Ada Tasking Commands\7f1243773
+Node: GDB/MI Program Execution\7f1246026
+Node: GDB/MI Stack Manipulation\7f1258060
+Ref: -stack-list-arguments\7f1259959
+Ref: -stack-list-frames\7f1263664
+Ref: -stack-list-locals\7f1267527
+Ref: -stack-list-variables\7f1269017
+Node: GDB/MI Variable Objects\7f1270551
+Ref: -var-set-format\7f1280509
+Ref: -var-list-children\7f1281627
+Ref: -var-update\7f1290419
+Ref: -var-set-frozen\7f1293417
+Ref: -var-set-update-range\7f1294214
+Ref: -var-set-visualizer\7f1294743
+Node: GDB/MI Data Manipulation\7f1296233
+Node: GDB/MI Tracepoint Commands\7f1315780
+Node: GDB/MI Symbol Query\7f1327365
+Node: GDB/MI File Commands\7f1328054
+Node: GDB/MI Target Manipulation\7f1331349
+Node: GDB/MI File Transfer Commands\7f1337564
+Node: GDB/MI Ada Exceptions Commands\7f1338887
+Node: GDB/MI Support Commands\7f1340240
+Node: GDB/MI Miscellaneous Commands\7f1344813
+Ref: -interpreter-exec\7f1354837
+Node: Annotations\7f1357177
+Node: Annotations Overview\7f1358096
+Node: Server Prefix\7f1360559
+Node: Prompting\7f1361293
+Node: Errors\7f1362810
+Node: Invalidation\7f1363706
+Node: Annotations for Running\7f1364185
+Node: Source Annotations\7f1365719
+Node: JIT Interface\7f1366648
+Node: Declarations\7f1368447
+Node: Registering Code\7f1369834
+Node: Unregistering Code\7f1370806
+Node: Custom Debug Info\7f1371433
+Node: Using JIT Debug Info Readers\7f1372729
+Node: Writing JIT Debug Info Readers\7f1373741
+Node: In-Process Agent\7f1375936
+Ref: Control Agent\7f1377879
+Node: In-Process Agent Protocol\7f1378746
+Node: IPA Protocol Objects\7f1379537
+Ref: agent expression object\7f1380535
+Ref: tracepoint action object\7f1380740
+Ref: tracepoint object\7f1380820
+Node: IPA Protocol Commands\7f1383396
+Node: GDB Bugs\7f1384866
+Node: Bug Criteria\7f1385598
+Node: Bug Reporting\7f1386475
+Node: Command Line Editing\7f1394304
+Node: Introduction and Notation\7f1394956
+Node: Readline Interaction\7f1396577
+Node: Readline Bare Essentials\7f1397766
+Node: Readline Movement Commands\7f1399547
+Node: Readline Killing Commands\7f1400505
+Node: Readline Arguments\7f1402421
+Node: Searching\7f1403463
+Node: Readline Init File\7f1405613
+Node: Readline Init File Syntax\7f1406764
+Node: Conditional Init Constructs\7f1421863
+Node: Sample Init File\7f1424386
+Node: Bindable Readline Commands\7f1427500
+Node: Commands For Moving\7f1428552
+Node: Commands For History\7f1429410
+Node: Commands For Text\7f1432805
+Node: Commands For Killing\7f1435528
+Node: Numeric Arguments\7f1437668
+Node: Commands For Completion\7f1438804
+Node: Keyboard Macros\7f1440770
+Node: Miscellaneous Commands\7f1441338
+Node: Readline vi Mode\7f1445186
+Node: Using History Interactively\7f1446096
+Node: History Interaction\7f1446611
+Node: Event Designators\7f1448033
+Node: Word Designators\7f1449170
+Node: Modifiers\7f1450805
+Node: In Memoriam\7f1452026
+Node: Formatting Documentation\7f1452909
+Ref: Formatting Documentation-Footnote-1\7f1456229
+Node: Installing GDB\7f1456297
+Node: Requirements\7f1456869
+Ref: Expat\7f1457438
+Node: Running Configure\7f1460005
+Node: Separate Objdir\7f1463574
+Node: Config Names\7f1466469
+Node: Configure Options\7f1467918
+Node: System-wide configuration\7f1470289
+Node: System-wide Configuration Scripts\7f1472249
+Node: Maintenance Commands\7f1473433
+Ref: maint info breakpoints\7f1475088
+Node: Remote Protocol\7f1491351
+Node: Overview\7f1492005
+Ref: Binary Data\7f1494550
+Node: Packets\7f1497075
+Ref: thread-id syntax\7f1497975
+Ref: extended mode\7f1499420
+Ref: ? packet\7f1499678
+Ref: bc\7f1501144
+Ref: bs\7f1501354
+Ref: read registers packet\7f1502971
+Ref: cycle step packet\7f1504907
+Ref: write register packet\7f1507508
+Ref: step with signal packet\7f1508487
+Ref: vCont packet\7f1509963
+Ref: vKill packet\7f1514851
+Ref: X packet\7f1515781
+Ref: insert breakpoint or watchpoint packet\7f1516092
+Node: Stop Reply Packets\7f1521834
+Node: General Query Packets\7f1526600
+Ref: qCRC packet\7f1529430
+Ref: QNonStop\7f1537253
+Ref: QPassSignals\7f1537915
+Ref: QProgramSignals\7f1539122
+Ref: qSearch memory\7f1541637
+Ref: QStartNoAckMode\7f1542145
+Ref: qSupported\7f1542676
+Ref: multiprocess extensions\7f1555374
+Ref: install tracepoint in tracing\7f1557404
+Ref: qXfer read\7f1560788
+Ref: qXfer auxiliary vector read\7f1561283
+Ref: qXfer btrace read\7f1561631
+Ref: qXfer target description read\7f1562698
+Ref: qXfer library list read\7f1563132
+Ref: qXfer svr4 library list read\7f1563788
+Ref: qXfer memory map read\7f1565641
+Ref: qXfer sdata read\7f1566028
+Ref: qXfer siginfo read\7f1566494
+Ref: qXfer spu read\7f1566891
+Ref: qXfer threads read\7f1567415
+Ref: qXfer traceframe info read\7f1567818
+Ref: qXfer unwind info block\7f1568236
+Ref: qXfer fdpic loadmap read\7f1568470
+Ref: qXfer osdata read\7f1568886
+Ref: qXfer write\7f1570148
+Ref: qXfer siginfo write\7f1570715
+Ref: qXfer spu write\7f1571112
+Ref: General Query Packets-Footnote-1\7f1573654
+Node: Architecture-Specific Protocol Details\7f1573981
+Node: ARM-Specific Protocol Details\7f1574490
+Node: ARM Breakpoint Kinds\7f1574738
+Node: MIPS-Specific Protocol Details\7f1575069
+Node: MIPS Register packet Format\7f1575352
+Node: MIPS Breakpoint Kinds\7f1576279
+Node: Tracepoint Packets\7f1576697
+Ref: QTEnable\7f1585688
+Ref: QTDisable\7f1585884
+Ref: qTfSTM\7f1591421
+Ref: qTsSTM\7f1591421
+Ref: qTSTMat\7f1592498
+Ref: QTBuffer-size\7f1593649
+Node: Host I/O Packets\7f1595622
+Node: Interrupts\7f1600233
+Node: Notification Packets\7f1602136
+Node: Remote Non-Stop\7f1607556
+Node: Packet Acknowledgment\7f1609846
+Node: Examples\7f1611961
+Node: File-I/O Remote Protocol Extension\7f1612555
+Node: File-I/O Overview\7f1613017
+Node: Protocol Basics\7f1615216
+Node: The F Request Packet\7f1617445
+Node: The F Reply Packet\7f1618346
+Node: The Ctrl-C Message\7f1619264
+Node: Console I/O\7f1620890
+Node: List of Supported Calls\7f1622106
+Node: open\7f1622468
+Node: close\7f1624976
+Node: read\7f1625359
+Node: write\7f1625968
+Node: lseek\7f1626739
+Node: rename\7f1627623
+Node: unlink\7f1629030
+Node: stat/fstat\7f1629977
+Node: gettimeofday\7f1630870
+Node: isatty\7f1631306
+Node: system\7f1631902
+Node: Protocol-specific Representation of Datatypes\7f1633444
+Node: Integral Datatypes\7f1633821
+Node: Pointer Values\7f1634628
+Node: Memory Transfer\7f1635332
+Node: struct stat\7f1635952
+Node: struct timeval\7f1638154
+Node: Constants\7f1638671
+Node: Open Flags\7f1639120
+Node: mode_t Values\7f1639461
+Node: Errno Values\7f1639953
+Node: Lseek Flags\7f1640763
+Node: Limits\7f1640948
+Node: File-I/O Examples\7f1641308
+Node: Library List Format\7f1642396
+Node: Library List Format for SVR4 Targets\7f1645178
+Node: Memory Map Format\7f1647645
+Node: Thread List Format\7f1650220
+Node: Traceframe Info Format\7f1651038
+Node: Branch Trace Format\7f1652724
+Node: Agent Expressions\7f1654069
+Node: General Bytecode Design\7f1656890
+Node: Bytecode Descriptions\7f1661684
+Node: Using Agent Expressions\7f1675115
+Node: Varying Target Capabilities\7f1677092
+Node: Rationale\7f1678253
+Node: Target Descriptions\7f1685642
+Node: Retrieving Descriptions\7f1687516
+Node: Target Description Format\7f1688601
+Node: Predefined Target Types\7f1697644
+Node: Standard Target Features\7f1699028
+Node: AArch64 Features\7f1700892
+Node: ARM Features\7f1701315
+Node: i386 Features\7f1702833
+Node: MIPS Features\7f1704769
+Node: M68K Features\7f1705954
+Node: Nios II Features\7f1706617
+Node: PowerPC Features\7f1707015
+Node: S/390 and System z Features\7f1708338
+Node: TIC6x Features\7f1709803
+Node: Operating System Information\7f1710363
+Node: Process list\7f1711198
+Node: Trace File Format\7f1712261
+Node: Index Section Format\7f1714254
+Node: Man Pages\7f1722224
+Node: gdb man\7f1722630
+Node: gdbserver man\7f1728666
+Node: gcore man\7f1735863
+Node: gdbinit man\7f1736520
+Node: Copying\7f1737403
+Node: GNU Free Documentation License\7f1774964
+Node: Concept Index\7f1801813
+Node: Command and Variable Index\7f1930315
 \1f
 End Tag Table
index 42015be419527d8e5f84b854089a5ddabbd50025..299758fd89ab620fa9291c058c0d27f958defab9 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
 
    Copyright (C) 1988-2014 Free Software Foundation, Inc.
 
@@ -44,7 +44,7 @@ Debugging with GDB
 
 This file describes GDB, the GNU symbolic debugger.
 
-   This is the Tenth Edition, for GDB (GDB) Version 7.8.
+   This is the Tenth Edition, for GDB (GDB) Version 7.8.1.
 
    Copyright (C) 1988-2014 Free Software Foundation, Inc.
 
@@ -491,7 +491,7 @@ Let us use GDB to try to see what is going on.
      There is absolutely no warranty for GDB; type "show warranty"
       for details.
 
-     GDB 7.8, Copyright 1999 Free Software Foundation, Inc...
+     GDB 7.8.1, Copyright 1999 Free Software Foundation, Inc...
      (gdb)
 
 GDB reads only enough symbol data to know where to find the rest when
index d7d20597e6185b9ed802f198a0cb20fbc24870a8..69ce52a7813c428de3d8bab5e5322677a46f091b 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
 
    Copyright (C) 1988-2014 Free Software Foundation, Inc.
 
index 4dd6b1aa77ea0f590105845602109c707e1a1318..96cfac94aad55595bb4bf5b2e13a12ecb56dc826 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
 
    Copyright (C) 1988-2014 Free Software Foundation, Inc.
 
index 175b320f07463695d1a8ae23548d2c6f3f6c11d4..1b5ac78a7d794d7450b3d7eed7767130634a909f 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
 
    Copyright (C) 1988-2014 Free Software Foundation, Inc.
 
index 6452af4f23008320c8fbd3e739c410fe334a94e9..68bba00cde9d767d40ed74f5d97b7bf43b1c29e6 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
 
    Copyright (C) 1988-2014 Free Software Foundation, Inc.
 
@@ -7616,7 +7616,7 @@ and TeX (or 'texi2roff') to typeset the printed version.
 
    GDB includes an already formatted copy of the on-line Info version of
 this manual in the 'gdb' subdirectory.  The main Info file is
-'gdb-7.8/gdb/gdb.info', and it refers to subordinate files matching
+'gdb-7.8.1/gdb/gdb.info', and it refers to subordinate files matching
 'gdb.info*' in the same directory.  If necessary, you can print out
 these files, or read them with any editor; but they are easier to read
 using the 'info' subsystem in GNU Emacs or the standalone 'info'
@@ -7626,8 +7626,8 @@ program, available as part of the GNU Texinfo distribution.
 Info formatting programs, such as 'texinfo-format-buffer' or 'makeinfo'.
 
    If you have 'makeinfo' installed, and are in the top level GDB source
-directory ('gdb-7.8', in the case of version 7.8), you can make the Info
-file by typing:
+directory ('gdb-7.8.1', in the case of version 7.8.1), you can make the
+Info file by typing:
 
      cd gdb
      make gdb.info
@@ -7652,7 +7652,7 @@ On its own, TeX cannot either read or typeset a Texinfo file.
 
    If you have TeX and a DVI printer program installed, you can typeset
 and print this manual.  First switch to the 'gdb' subdirectory of the
-main source directory (for example, to 'gdb-7.8/gdb') and type:
+main source directory (for example, to 'gdb-7.8.1/gdb') and type:
 
      make gdb.dvi
 
@@ -7660,7 +7660,7 @@ main source directory (for example, to 'gdb-7.8/gdb') and type:
 
    ---------- Footnotes ----------
 
-   (1) In 'gdb-7.8/gdb/refcard.ps' of the version 7.8 release.
+   (1) In 'gdb-7.8.1/gdb/refcard.ps' of the version 7.8.1 release.
 
 \1f
 File: gdb.info,  Node: Installing GDB,  Next: Maintenance Commands,  Prev: Formatting Documentation,  Up: Top
@@ -7763,39 +7763,39 @@ preparing GDB for installation; you can then use 'make' to build the
 a single directory, whose name is usually composed by appending the
 version number to 'gdb'.
 
-   For example, the GDB version 7.8 distribution is in the 'gdb-7.8'
+   For example, the GDB version 7.8.1 distribution is in the 'gdb-7.8.1'
 directory.  That directory contains:
 
-'gdb-7.8/configure (and supporting files)'
+'gdb-7.8.1/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-'gdb-7.8/gdb'
+'gdb-7.8.1/gdb'
      the source specific to GDB itself
 
-'gdb-7.8/bfd'
+'gdb-7.8.1/bfd'
      source for the Binary File Descriptor library
 
-'gdb-7.8/include'
+'gdb-7.8.1/include'
      GNU include files
 
-'gdb-7.8/libiberty'
+'gdb-7.8.1/libiberty'
      source for the '-liberty' free software library
 
-'gdb-7.8/opcodes'
+'gdb-7.8.1/opcodes'
      source for the library of opcode tables and disassemblers
 
-'gdb-7.8/readline'
+'gdb-7.8.1/readline'
      source for the GNU command-line interface
 
-'gdb-7.8/glob'
+'gdb-7.8.1/glob'
      source for the GNU filename pattern-matching subroutine
 
-'gdb-7.8/mmalloc'
+'gdb-7.8.1/mmalloc'
      source for the GNU memory-mapped malloc package
 
    The simplest way to configure and build GDB is to run 'configure'
 from the 'gdb-VERSION-NUMBER' source directory, which in this example is
-the 'gdb-7.8' directory.
+the 'gdb-7.8.1' directory.
 
    First switch to the 'gdb-VERSION-NUMBER' source directory if you are
 not already in it; then run 'configure'.  Pass the identifier for the
@@ -7803,7 +7803,7 @@ platform on which GDB will run as an argument.
 
    For example:
 
-     cd gdb-7.8
+     cd gdb-7.8.1
      ./configure HOST
      make
 
@@ -7824,8 +7824,8 @@ need to run 'sh' on it explicitly:
      sh configure HOST
 
    If you run 'configure' from a directory that contains source
-directories for multiple libraries or programs, such as the 'gdb-7.8'
-source directory for version 7.8, 'configure' creates configuration
+directories for multiple libraries or programs, such as the 'gdb-7.8.1'
+source directory for version 7.8.1, 'configure' creates configuration
 files for every directory level underneath (unless you tell it not to,
 with the '--norecursion' option).
 
@@ -7865,13 +7865,13 @@ to specify a path to find 'configure' itself from your working
 directory.  If the path to 'configure' would be the same as the argument
 to '--srcdir', you can leave out the '--srcdir' option; it is assumed.)
 
-   For example, with version 7.8, you can build GDB in a separate
+   For example, with version 7.8.1, you can build GDB in a separate
 directory for a Sun 4 like this:
 
-     cd gdb-7.8
+     cd gdb-7.8.1
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-7.8/configure sun4
+     ../gdb-7.8.1/configure sun4
      make
 
    When 'configure' builds a configuration using a remote source
@@ -7882,8 +7882,8 @@ the example, you'd find the Sun 4 library 'libiberty.a' in the directory
 
    Make sure that your path to the 'configure' script has just one
 instance of 'gdb' in it.  If your path to 'configure' looks like
-'../gdb-7.8/gdb/configure', you are configuring only one subdirectory of
-GDB, not the whole package.  This leads to build errors about missing
+'../gdb-7.8.1/gdb/configure', you are configuring only one subdirectory
+of GDB, not the whole package.  This leads to build errors about missing
 include files such as 'bfd/bfd.h'.
 
    One popular reason to build several GDB configurations in separate
@@ -7898,9 +7898,9 @@ a configured directory--whatever directory you were in when you called
 
    The 'Makefile' that 'configure' generates in each source directory
 also runs recursively.  If you type 'make' in a source directory such as
-'gdb-7.8' (or in a separate configured directory configured with
-'--srcdir=DIRNAME/gdb-7.8'), you will build all the required libraries,
-and then build GDB.
+'gdb-7.8.1' (or in a separate configured directory configured with
+'--srcdir=DIRNAME/gdb-7.8.1'), you will build all the required
+libraries, and then build GDB.
 
    When you have multiple hosts or targets configured in separate
 directories, you can run 'make' on them in parallel (for example, if
@@ -7943,8 +7943,8 @@ you can use it to test your guesses on abbreviations--for example:
      % sh config.sub i986v
      Invalid configuration `i986v': machine `i986v' not recognized
 
-'config.sub' is also distributed in the GDB source directory ('gdb-7.8',
-for version 7.8).
+'config.sub' is also distributed in the GDB source directory
+('gdb-7.8.1', for version 7.8.1).
 
 \1f
 File: gdb.info,  Node: Configure Options,  Next: System-wide configuration,  Prev: Config Names,  Up: Installing GDB
index 1776c1ca9538fcb1f8dd4e7ef111ea6c21731ebe..aa29498b737ef31a6c09001f8ed6a1219366dab7 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
 
    Copyright (C) 1988-2014 Free Software Foundation, Inc.
 
index 6a2b532f5df9b59725cc75bbd9293579e723f320..497ba356a1b820b919424178fcd958c78a5f4f11 100644 (file)
Binary files a/gdb/doc/gdb.info-7 and b/gdb/doc/gdb.info-7 differ
index 3d8b0b15127ebbcbaf04c0a35111e4aef6099977..dcbc7632dca04d3792616f1c92a86447c539630e 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2014-07-29" "gdb-7.8" "GNU Development Tools"
+.TH GDBINIT 5 "2014-10-29" "gdb-7.8.1" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
index 46739a084c43f65c768e9be6b0e1dff37e11a1a7..df295512f6db5bd9b2cdea6e4b678459aaff9903 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2014-07-29" "gdb-7.8" "GNU Development Tools"
+.TH GDBSERVER 1 "2014-10-29" "gdb-7.8.1" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
index 833f49db08b568c735b68e1f244d6fe00b303eec..b532bffe12177406963eac76b86f43e1ef6e218e 100644 (file)
@@ -206,7 +206,7 @@ change_line_handler (void)
   else
     {
       /* Turn off editing by using gdb_readline2.  */
-      rl_callback_handler_remove ();
+      gdb_rl_callback_handler_remove ();
       call_readline = gdb_readline2;
 
       /* Set up the command handler as well, in case we are called as
@@ -215,6 +215,57 @@ change_line_handler (void)
     }
 }
 
+/* The functions below are wrappers for rl_callback_handler_remove and
+   rl_callback_handler_install that keep track of whether the callback
+   handler is installed in readline.  This is necessary because after
+   handling a target event of a background execution command, we may
+   need to reinstall the callback handler if it was removed due to a
+   secondary prompt.  See gdb_readline_wrapper_line.  We don't
+   unconditionally install the handler for every target event because
+   that also clears the line buffer, thus installing it while the user
+   is typing would lose input.  */
+
+/* Whether we've registered a callback handler with readline.  */
+static int callback_handler_installed;
+
+/* See event-top.h, and above.  */
+
+void
+gdb_rl_callback_handler_remove (void)
+{
+  rl_callback_handler_remove ();
+  callback_handler_installed = 0;
+}
+
+/* See event-top.h, and above.  Note this wrapper doesn't have an
+   actual callback parameter because we always install
+   INPUT_HANDLER.  */
+
+void
+gdb_rl_callback_handler_install (const char *prompt)
+{
+  /* Calling rl_callback_handler_install resets readline's input
+     buffer.  Calling this when we were already processing input
+     therefore loses input.  */
+  gdb_assert (!callback_handler_installed);
+
+  rl_callback_handler_install (prompt, input_handler);
+  callback_handler_installed = 1;
+}
+
+/* See event-top.h, and above.  */
+
+void
+gdb_rl_callback_handler_reinstall (void)
+{
+  if (!callback_handler_installed)
+    {
+      /* Passing NULL as prompt argument tells readline to not display
+        a prompt.  */
+      gdb_rl_callback_handler_install (NULL);
+    }
+}
+
 /* Displays the prompt.  If the argument NEW_PROMPT is NULL, the
    prompt that is displayed is the current top level prompt.
    Otherwise, it displays whatever NEW_PROMPT is as a local/secondary
@@ -268,7 +319,7 @@ display_gdb_prompt (char *new_prompt)
             the above two functions.  Calling
             rl_callback_handler_remove(), does the job.  */
 
-         rl_callback_handler_remove ();
+         gdb_rl_callback_handler_remove ();
          do_cleanups (old_chain);
          return;
        }
@@ -283,8 +334,8 @@ display_gdb_prompt (char *new_prompt)
 
   if (async_command_editing_p)
     {
-      rl_callback_handler_remove ();
-      rl_callback_handler_install (actual_gdb_prompt, input_handler);
+      gdb_rl_callback_handler_remove ();
+      gdb_rl_callback_handler_install (actual_gdb_prompt);
     }
   /* new_prompt at this point can be the top of the stack or the one
      passed in.  It can't be NULL.  */
@@ -1040,6 +1091,6 @@ gdb_disable_readline (void)
   gdb_stdtargerr = NULL;
 #endif
 
-  rl_callback_handler_remove ();
+  gdb_rl_callback_handler_remove ();
   delete_file_handler (input_fd);
 }
index 2d05d454a0e913f32cbd189139056816b8168f9a..ac0d47bdeb090f997dc11b8f545f323999567df7 100644 (file)
@@ -62,6 +62,17 @@ extern void (*input_handler) (char *);
 extern int input_fd;
 extern void (*after_char_processing_hook) (void);
 
+/* Wrappers for rl_callback_handler_remove and
+   rl_callback_handler_install that keep track of whether the callback
+   handler is installed in readline.  Do not call the readline
+   versions directly.  */
+extern void gdb_rl_callback_handler_remove (void);
+extern void gdb_rl_callback_handler_install (const char *prompt);
+
+/* Reinstall the readline callback handler (with no prompt), if not
+   currently installed.  */
+extern void gdb_rl_callback_handler_reinstall (void);
+
 extern void cli_command_loop (void *);
 
 #endif
index dbec6dc94425a3ca9ece125819cfeca464714c25..9b45a220dd088eaa2e4058f5f75bd06060d52fd2 100644 (file)
@@ -42,5 +42,5 @@
   <reg name="sp" bitsize="64" type="data_ptr"/>
 
   <reg name="pc" bitsize="64" type="code_ptr"/>
-  <reg name="cpsr" bitsize="64"/>
+  <reg name="cpsr" bitsize="32"/>
 </feature>
index 31a148e36375f588cc7a6ac4418466f3f7a33050..1e9a99d3e948bdc64e99f3280e5061892b055b4e 100644 (file)
@@ -50,7 +50,7 @@ initialize_tdesc_aarch64 (void)
   tdesc_create_reg (feature, "x30", 30, 1, NULL, 64, "int");
   tdesc_create_reg (feature, "sp", 31, 1, NULL, 64, "data_ptr");
   tdesc_create_reg (feature, "pc", 32, 1, NULL, 64, "code_ptr");
-  tdesc_create_reg (feature, "cpsr", 33, 1, NULL, 64, "int");
+  tdesc_create_reg (feature, "cpsr", 33, 1, NULL, 32, "int");
 
   feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.fpu");
   field_type = tdesc_named_type (feature, "ieee_double");
index c621091aa4a283998fb54fc2d9bff79e216f1673..2fbb7672cda41377e7a92e63ae723bb693824163 100644 (file)
 #ifndef GDBARCH_H
 #define GDBARCH_H
 
+#include "frame.h"
+
 struct floatformat;
 struct ui_file;
-struct frame_info;
 struct value;
 struct objfile;
 struct obj_section;
index 9f357b67191a6a447edb1dd80421ebfe56adbd8e..4e0fc4110d5725f34a65313b952f301383414310 100755 (executable)
@@ -1124,9 +1124,10 @@ cat <<EOF
 #ifndef GDBARCH_H
 #define GDBARCH_H
 
+#include "frame.h"
+
 struct floatformat;
 struct ui_file;
-struct frame_info;
 struct value;
 struct objfile;
 struct obj_section;
index f6622489e97048626c8b998de4676d3615e5644e..62ca872b0533c0d917cec5c68920968d5447dcb1 100644 (file)
@@ -1,3 +1,9 @@
+2014-10-15  Joel Brobecker  <brobecker@adacore.com>
+
+       PR server/17487
+       * win32-i386-low.c (i386_get_thread_context): Do not set
+       dr->dr_control_mirror.
+
 2014-07-11  Pedro Alves  <palves@redhat.com>
 
        * linux-low.c (kill_wait_lwp): New function, based on
index 08242aa30f0b5eb38709307072cf52937dd73564..8ab1b73474a75c8969fdf5b5da0b22bb7c264792 100644 (file)
@@ -212,7 +212,6 @@ i386_get_thread_context (win32_thread_info *th, DEBUG_EVENT* current_event)
       dr->dr_mirror[2] = th->context.Dr2;
       dr->dr_mirror[3] = th->context.Dr3;
       dr->dr_status_mirror = th->context.Dr6;
-      dr->dr_control_mirror = th->context.Dr7;
     }
 }
 
index 8b076e6db7e6e374a18444cc48f0b170c12bc850..c8c1e5ff5ae179042d09742e06b2831f4e4a2253 100644 (file)
 #ifdef HAVE_GUILE
 #include "guile.h"
 #include "guile-internal.h"
-#ifdef HAVE_GC_GC_H
-#include <gc/gc.h> /* PR 17185 */
-#endif
 #endif
+#include <signal.h>
 
 /* The Guile version we're using.
    We *could* use the macros in libguile/version.h but that would preclude
@@ -834,39 +832,46 @@ extern initialize_file_ftype _initialize_guile;
 void
 _initialize_guile (void)
 {
-  char *msg;
-
   install_gdb_commands ();
 
 #if HAVE_GUILE
-  /* The Python support puts the C side in module "_gdb", leaving the Python
-     side to define module "gdb" which imports "_gdb".  There is evidently no
-     similar convention in Guile so we skip this.  */
-
-  /* PR 17185 There are problems with using libgc 7.4.0.
-     Copy over the workaround Guile uses (Guile is working around a different
-     problem, but the workaround is the same).  */
-#if (GC_VERSION_MAJOR == 7 && GC_VERSION_MINOR == 4 && GC_VERSION_MICRO == 0)
-  /* The bug is only known to appear with pthreads.  We assume any system
-     using pthreads also uses setenv (and not putenv).  That is why we don't
-     have a similar call to putenv here.  */
-#if defined (HAVE_SETENV)
-  setenv ("GC_MARKERS", "1", 1);
+  {
+#ifdef HAVE_SIGPROCMASK
+    sigset_t sigchld_mask, prev_mask;
 #endif
+
+    /* The Python support puts the C side in module "_gdb", leaving the Python
+       side to define module "gdb" which imports "_gdb".  There is evidently no
+       similar convention in Guile so we skip this.  */
+
+#ifdef HAVE_SIGPROCMASK
+    /* Before we initialize Guile, block SIGCHLD.
+       This is done so that all threads created during Guile initialization
+       have SIGCHLD blocked.  PR 17247.
+       Really libgc and Guile should do this, but we need to work with
+       libgc 7.4.x.  */
+    sigemptyset (&sigchld_mask);
+    sigaddset (&sigchld_mask, SIGCHLD);
+    sigprocmask (SIG_BLOCK, &sigchld_mask, &prev_mask);
+#endif
+
+    /* scm_with_guile is the most portable way to initialize Guile.
+       Plus we need to initialize the Guile support while in Guile mode
+       (e.g., called from within a call to scm_with_guile).  */
+    scm_with_guile (call_initialize_gdb_module, NULL);
+
+#ifdef HAVE_SIGPROCMASK
+    sigprocmask (SIG_SETMASK, &prev_mask, NULL);
 #endif
 
-  /* scm_with_guile is the most portable way to initialize Guile.
-     Plus we need to initialize the Guile support while in Guile mode
-     (e.g., called from within a call to scm_with_guile).  */
-  scm_with_guile (call_initialize_gdb_module, NULL);
-
-  /* Set Guile's backtrace to match the "set guile print-stack" default.
-     [N.B. The two settings are still separate.]
-     But only do this after we've initialized Guile, it's nice to see a
-     backtrace if there's an error during initialization.
-     OTOH, if the error is that gdb/init.scm wasn't found because gdb is being
-     run from the build tree, the backtrace is more noise than signal.
-     Sigh.  */
-  gdbscm_set_backtrace (0);
+    /* Set Guile's backtrace to match the "set guile print-stack" default.
+       [N.B. The two settings are still separate.]
+       But only do this after we've initialized Guile, it's nice to see a
+       backtrace if there's an error during initialization.
+       OTOH, if the error is that gdb/init.scm wasn't found because gdb is
+       being run from the build tree, the backtrace is more noise than signal.
+       Sigh.  */
+    gdbscm_set_backtrace (0);
+  }
 #endif
 }
index 23de1911ac09244aaa0cda1e4ab51cd8211f00fb..8ae1c7ef9d4964e1664276e709ae416e7b7d223c 100644 (file)
@@ -107,8 +107,6 @@ static void run_no_args_command (char *args, int from_tty);
 
 static void go_command (char *line_no, int from_tty);
 
-static int strip_bg_char (char **);
-
 void _initialize_infcmd (void);
 
 #define ERROR_NO_INFERIOR \
@@ -373,35 +371,40 @@ construct_inferior_arguments (int argc, char **argv)
 }
 \f
 
-/* This function detects whether or not a '&' character (indicating
-   background execution) has been added as *the last* of the arguments ARGS
-   of a command.  If it has, it removes it and returns 1.  Otherwise it
-   does nothing and returns 0.  */
+/* This function strips the '&' character (indicating background
+   execution) that is added as *the last* of the arguments ARGS of a
+   command.  A copy of the incoming ARGS without the '&' is returned,
+   unless the resulting string after stripping is empty, in which case
+   NULL is returned.  *BG_CHAR_P is an output boolean that indicates
+   whether the '&' character was found.  */
 
-static int
-strip_bg_char (char **args)
+static char *
+strip_bg_char (const char *args, int *bg_char_p)
 {
-  char *p = NULL;
+  const char *p;
 
-  p = strchr (*args, '&');
+  if (args == NULL || *args == '\0')
+    {
+      *bg_char_p = 0;
+      return NULL;
+    }
 
-  if (p)
+  p = args + strlen (args);
+  if (p[-1] == '&')
     {
-      if (p == (*args + strlen (*args) - 1))
-       {
-         if (strlen (*args) > 1)
-           {
-             do
-               p--;
-             while (*p == ' ' || *p == '\t');
-             *(p + 1) = '\0';
-           }
-         else
-           *args = 0;
-         return 1;
-       }
+      p--;
+      while (p > args && isspace (p[-1]))
+       p--;
+
+      *bg_char_p = 1;
+      if (p != args)
+       return savestring (args, p - args);
+      else
+       return NULL;
     }
-  return 0;
+
+  *bg_char_p = 0;
+  return xstrdup (args);
 }
 
 /* Common actions to take after creating any sort of inferior, by any
@@ -530,7 +533,8 @@ run_command_1 (char *args, int from_tty, int tbreak_at_main)
   ptid_t ptid;
   struct ui_out *uiout = current_uiout;
   struct target_ops *run_target;
-  int async_exec = 0;
+  int async_exec;
+  struct cleanup *args_chain;
 
   dont_repeat ();
 
@@ -553,8 +557,8 @@ run_command_1 (char *args, int from_tty, int tbreak_at_main)
   reopen_exec_file ();
   reread_symbols ();
 
-  if (args != NULL)
-    async_exec = strip_bg_char (&args);
+  args = strip_bg_char (args, &async_exec);
+  args_chain = make_cleanup (xfree, args);
 
   /* Do validation and preparation before possibly changing anything
      in the inferior.  */
@@ -600,6 +604,9 @@ run_command_1 (char *args, int from_tty, int tbreak_at_main)
       ui_out_flush (uiout);
     }
 
+  /* Done with ARGS.  */
+  do_cleanups (args_chain);
+
   /* We call get_inferior_args() because we might need to compute
      the value now.  */
   run_target->to_create_inferior (run_target, exec_file, get_inferior_args (),
@@ -738,6 +745,24 @@ continue_1 (int all_threads)
 
       iterate_over_threads (proceed_thread_callback, NULL);
 
+      if (sync_execution)
+       {
+         /* If all threads in the target were already running,
+            proceed_thread_callback ends up never calling proceed,
+            and so nothing calls this to put the inferior's terminal
+            settings in effect and remove stdin from the event loop,
+            which we must when running a foreground command.  E.g.:
+
+             (gdb) c -a&
+             Continuing.
+             <all threads are running now>
+             (gdb) c -a
+             Continuing.
+             <no thread was resumed, but the inferior now owns the terminal>
+         */
+         target_terminal_inferior ();
+       }
+
       /* Restore selected ptid.  */
       do_cleanups (old_chain);
     }
@@ -755,13 +780,15 @@ continue_1 (int all_threads)
 static void
 continue_command (char *args, int from_tty)
 {
-  int async_exec = 0;
+  int async_exec;
   int all_threads = 0;
+  struct cleanup *args_chain;
+
   ERROR_NO_INFERIOR;
 
   /* Find out whether we must run in the background.  */
-  if (args != NULL)
-    async_exec = strip_bg_char (&args);
+  args = strip_bg_char (args, &async_exec);
+  args_chain = make_cleanup (xfree, args);
 
   prepare_execution_command (&current_target, async_exec);
 
@@ -825,6 +852,9 @@ continue_command (char *args, int from_tty)
        }
     }
 
+  /* Done with ARGS.  */
+  do_cleanups (args_chain);
+
   if (from_tty)
     printf_filtered (_("Continuing.\n"));
 
@@ -884,21 +914,25 @@ step_1 (int skip_subroutines, int single_inst, char *count_string)
 {
   int count = 1;
   struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
-  int async_exec = 0;
+  int async_exec;
   int thread = -1;
+  struct cleanup *args_chain;
 
   ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
   ensure_valid_thread ();
   ensure_not_running ();
 
-  if (count_string)
-    async_exec = strip_bg_char (&count_string);
+  count_string = strip_bg_char (count_string, &async_exec);
+  args_chain = make_cleanup (xfree, count_string);
 
   prepare_execution_command (&current_target, async_exec);
 
   count = count_string ? parse_and_eval_long (count_string) : 1;
 
+  /* Done with ARGS.  */
+  do_cleanups (args_chain);
+
   if (!single_inst || skip_subroutines)                /* Leave si command alone.  */
     {
       struct thread_info *tp = inferior_thread ();
@@ -1119,7 +1153,8 @@ jump_command (char *arg, int from_tty)
   struct symtab_and_line sal;
   struct symbol *fn;
   struct symbol *sfn;
-  int async_exec = 0;
+  int async_exec;
+  struct cleanup *args_chain;
 
   ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
@@ -1127,8 +1162,8 @@ jump_command (char *arg, int from_tty)
   ensure_not_running ();
 
   /* Find out whether we must run in the background.  */
-  if (arg != NULL)
-    async_exec = strip_bg_char (&arg);
+  arg = strip_bg_char (arg, &async_exec);
+  args_chain = make_cleanup (xfree, arg);
 
   prepare_execution_command (&current_target, async_exec);
 
@@ -1144,6 +1179,9 @@ jump_command (char *arg, int from_tty)
   sal = sals.sals[0];
   xfree (sals.sals);
 
+  /* Done with ARGS.  */
+  do_cleanups (args_chain);
+
   if (sal.symtab == 0 && sal.pc == 0)
     error (_("No source file has been specified."));
 
@@ -1212,7 +1250,8 @@ static void
 signal_command (char *signum_exp, int from_tty)
 {
   enum gdb_signal oursig;
-  int async_exec = 0;
+  int async_exec;
+  struct cleanup *args_chain;
 
   dont_repeat ();              /* Too dangerous.  */
   ERROR_NO_INFERIOR;
@@ -1221,8 +1260,8 @@ signal_command (char *signum_exp, int from_tty)
   ensure_not_running ();
 
   /* Find out whether we must run in the background.  */
-  if (signum_exp != NULL)
-    async_exec = strip_bg_char (&signum_exp);
+  signum_exp = strip_bg_char (signum_exp, &async_exec);
+  args_chain = make_cleanup (xfree, signum_exp);
 
   prepare_execution_command (&current_target, async_exec);
 
@@ -1354,7 +1393,8 @@ until_next_command (int from_tty)
 static void
 until_command (char *arg, int from_tty)
 {
-  int async_exec = 0;
+  int async_exec;
+  struct cleanup *args_chain;
 
   ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
@@ -1362,8 +1402,8 @@ until_command (char *arg, int from_tty)
   ensure_not_running ();
 
   /* Find out whether we must run in the background.  */
-  if (arg != NULL)
-    async_exec = strip_bg_char (&arg);
+  arg = strip_bg_char (arg, &async_exec);
+  args_chain = make_cleanup (xfree, arg);
 
   prepare_execution_command (&current_target, async_exec);
 
@@ -1371,12 +1411,16 @@ until_command (char *arg, int from_tty)
     until_break_command (arg, from_tty, 0);
   else
     until_next_command (from_tty);
+
+  /* Done with ARGS.  */
+  do_cleanups (args_chain);
 }
 
 static void
 advance_command (char *arg, int from_tty)
 {
-  int async_exec = 0;
+  int async_exec;
+  struct cleanup *args_chain;
 
   ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
@@ -1387,12 +1431,15 @@ advance_command (char *arg, int from_tty)
     error_no_arg (_("a location"));
 
   /* Find out whether we must run in the background.  */
-  if (arg != NULL)
-    async_exec = strip_bg_char (&arg);
+  arg = strip_bg_char (arg, &async_exec);
+  args_chain = make_cleanup (xfree, arg);
 
   prepare_execution_command (&current_target, async_exec);
 
   until_break_command (arg, from_tty, 1);
+
+  /* Done with ARGS.  */
+  do_cleanups (args_chain);
 }
 \f
 /* Return the value of the result of a function at the end of a 'finish'
@@ -1668,8 +1715,8 @@ finish_command (char *arg, int from_tty)
 {
   struct frame_info *frame;
   struct symbol *function;
-
-  int async_exec = 0;
+  int async_exec;
+  struct cleanup *args_chain;
 
   ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
@@ -1677,14 +1724,17 @@ finish_command (char *arg, int from_tty)
   ensure_not_running ();
 
   /* Find out whether we must run in the background.  */
-  if (arg != NULL)
-    async_exec = strip_bg_char (&arg);
+  arg = strip_bg_char (arg, &async_exec);
+  args_chain = make_cleanup (xfree, arg);
 
   prepare_execution_command (&current_target, async_exec);
 
   if (arg)
     error (_("The \"finish\" command does not take any arguments."));
 
+  /* Done with ARGS.  */
+  do_cleanups (args_chain);
+
   frame = get_prev_frame (get_selected_frame (_("No selected frame.")));
   if (frame == 0)
     error (_("\"finish\" not meaningful in the outermost frame."));
@@ -2458,7 +2508,8 @@ attach_command_continuation_free_args (void *args)
 void
 attach_command (char *args, int from_tty)
 {
-  int async_exec = 0;
+  int async_exec;
+  struct cleanup *args_chain;
   struct target_ops *attach_target;
 
   dont_repeat ();              /* Not for the faint of heart */
@@ -2479,8 +2530,8 @@ attach_command (char *args, int from_tty)
      this function should probably be moved into target_pre_inferior.  */
   target_pre_inferior (from_tty);
 
-  if (args != NULL)
-    async_exec = strip_bg_char (&args);
+  args = strip_bg_char (args, &async_exec);
+  args_chain = make_cleanup (xfree, args);
 
   attach_target = find_attach_target ();
 
@@ -2494,6 +2545,9 @@ attach_command (char *args, int from_tty)
      shouldn't refer to attach_target again.  */
   attach_target = NULL;
 
+  /* Done with ARGS.  */
+  do_cleanups (args_chain);
+
   /* Set up the "saved terminal modes" of the inferior
      based on what modes we are starting it with.  */
   target_terminal_init ();
index b07c503775e4cb09e1e754284806f323cceba465..2fe7d2977a9cc323131e24470328695115e38ef9 100644 (file)
@@ -2848,6 +2848,23 @@ wait_for_inferior (void)
   do_cleanups (old_cleanups);
 }
 
+/* Cleanup that reinstalls the readline callback handler, if the
+   target is running in the background.  If while handling the target
+   event something triggered a secondary prompt, like e.g., a
+   pagination prompt, we'll have removed the callback handler (see
+   gdb_readline_wrapper_line).  Need to do this as we go back to the
+   event loop, ready to process further input.  Note this has no
+   effect if the handler hasn't actually been removed, because calling
+   rl_callback_handler_install resets the line buffer, thus losing
+   input.  */
+
+static void
+reinstall_readline_callback_handler_cleanup (void *arg)
+{
+  if (async_command_editing_p && !sync_execution)
+    gdb_rl_callback_handler_reinstall ();
+}
+
 /* Asynchronous version of wait_for_inferior.  It is called by the
    event loop whenever a change of state is detected on the file
    descriptor corresponding to the target.  It can be called more than
@@ -2869,6 +2886,9 @@ fetch_inferior_event (void *client_data)
 
   memset (ecs, 0, sizeof (*ecs));
 
+  /* End up with readline processing input, if necessary.  */
+  make_cleanup (reinstall_readline_callback_handler_cleanup, NULL);
+
   /* We're handling a live event, so make sure we're doing live
      debugging.  If we're looking at traceframes while the target is
      running, we're going to need to get back to that mode after
@@ -5222,7 +5242,7 @@ switch_back_to_stepped_thread (struct execution_control_state *ecs)
                 stepping, then scheduler locking can't be in effect,
                 otherwise we wouldn't have resumed the current event
                 thread in the first place.  */
-             gdb_assert (!schedlock_applies (1));
+             gdb_assert (!schedlock_applies (currently_stepping (tp)));
 
              stepping_thread = tp;
            }
index c10b8eed54ce6fc2ef84fa80ed4df2d6829dd02b..f6d4ef98f59202b97e6097e3925676ce6a819786 100644 (file)
@@ -1189,6 +1189,11 @@ linux_corefile_thread_callback (struct thread_info *info, void *data)
 {
   struct linux_corefile_thread_data *args = data;
 
+  /* It can be current thread
+     which cannot be removed by update_thread_list.  */
+  if (info->state == THREAD_EXITED)
+    return 0;
+
   if (ptid_get_pid (info->ptid) == args->pid)
     {
       struct cleanup *old_chain;
@@ -1440,6 +1445,7 @@ linux_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size,
   char *note_data = NULL;
   gdb_byte *auxv;
   int auxv_len;
+  volatile struct gdb_exception e;
 
   if (linux_fill_prpsinfo (&prpsinfo))
     {
@@ -1463,6 +1469,12 @@ linux_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size,
     }
 
   /* Thread register information.  */
+  TRY_CATCH (e, RETURN_MASK_ERROR)
+    {
+      update_thread_list ();
+    }
+  if (e.reason < 0)
+    exception_print (gdb_stderr, e);
   thread_args.gdbarch = gdbarch;
   thread_args.pid = ptid_get_pid (inferior_ptid);
   thread_args.obfd = obfd;
index ea66fe57cbbb9ae4c695f977dc7e49257bef950a..3a4e40260eda45fc29965d201ff973016f881df3 100644 (file)
@@ -46,6 +46,7 @@
 #include "filenames.h"
 #include "filestuff.h"
 #include "event-top.h"
+#include "infrun.h"
 
 /* The selected interpreter.  This will be used as a set command
    variable, so it should always be malloc'ed - since
@@ -349,7 +350,11 @@ catch_command_errors (catch_command_errors_ftype *command,
 
   TRY_CATCH (e, mask)
     {
+      int was_sync = sync_execution;
+
       command (arg, from_tty);
+
+      maybe_wait_sync_command_done (was_sync);
     }
   return handle_command_errors (e);
 }
@@ -368,7 +373,11 @@ catch_command_errors_const (catch_command_errors_const_ftype *command,
 
   TRY_CATCH (e, mask)
     {
+      int was_sync = sync_execution;
+
       command (arg, from_tty);
+
+      maybe_wait_sync_command_done (was_sync);
     }
   return handle_command_errors (e);
 }
index 9133956c7ddb63b3e2668b0b2f90acbc29a4d741..bc808c3efaaded51edf681fdbd0849e8670d7c9b 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-07-29 05:55-0700\n"
+"POT-Creation-Date: 2014-10-29 12:50-0700\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -4743,7 +4743,7 @@ msgstr ""
 #: common/print-utils.c:129 common/print-utils.c:297 dbxread.c:3074 exec.c:417
 #: exec.c:705 language.c:536 mdebugread.c:3669 monitor.c:327 monitor.c:357
 #: monitor.c:1324 printcmd.c:486 printcmd.c:841 printcmd.c:2439 psymtab.c:698
-#: psymtab.c:716 remote-mips.c:2727 target.c:614 target.c:698 target.c:725
+#: psymtab.c:716 remote-mips.c:2727 target.c:678 target.c:762 target.c:789
 #: utils.c:1920 valprint.c:1042
 msgid "failed internal consistency check"
 msgstr ""
@@ -5123,7 +5123,7 @@ msgstr ""
 msgid "set logging"
 msgstr ""
 
-#: cli/cli-logging.c:142 cli/cli-logging.c:252 guile/scm-ports.c:530 top.c:514
+#: cli/cli-logging.c:142 cli/cli-logging.c:252 guile/scm-ports.c:530 top.c:522
 msgid "Current output protocol does not support redirection"
 msgstr ""
 
@@ -5617,8 +5617,8 @@ msgstr ""
 msgid "Proceed? "
 msgstr ""
 
-#: cli/cli-script.c:1545 cli/cli-cmds.c:326 infcmd.c:1160 infcmd.c:1174
-#: infcmd.c:2265 symfile.c:1171 symfile.c:1341 symfile.c:2399 symfile.c:2481
+#: cli/cli-script.c:1545 cli/cli-cmds.c:326 infcmd.c:1198 infcmd.c:1212
+#: infcmd.c:2315 symfile.c:1171 symfile.c:1341 symfile.c:2399 symfile.c:2481
 #: tracepoint.c:2286 tracepoint.c:2292
 msgid "Not confirmed."
 msgstr ""
@@ -5626,7 +5626,7 @@ msgstr ""
 #. Should never come here as hookc would be 0.
 #: cli/cli-script.c:1586 complaints.c:304 exceptions.c:159 exceptions.c:176
 #: exceptions.c:203 hppa-tdep.c:3082 hppa-tdep.c:3095 infcall.c:687
-#: infcmd.c:1442 infrun.c:3410 language.c:448 mi/mi-out.c:334 mi/mi-out.c:352
+#: infcmd.c:1489 infrun.c:3430 language.c:448 mi/mi-out.c:334 mi/mi-out.c:352
 #: mips-tdep.c:265 mips-tdep.c:424 mips-tdep.c:2116 mips-tdep.c:5560
 #: mips-tdep.c:6676 mn10300-tdep.c:125 reggroups.c:219 remote.c:1359
 #: remote.c:6697 remote.c:7930 utils.c:747 utils.c:772
@@ -6943,7 +6943,7 @@ msgid "<synthetic pointer>"
 msgstr ""
 
 #: cp-valprint.c:334 guile/scm-pretty-print.c:638 mi/mi-cmd-stack.c:544
-#: python/py-prettyprint.c:293 stack.c:293
+#: python/py-prettyprint.c:293 python/py-framefilter.c:466 stack.c:293
 #, possible-c-format
 msgid "<error reading variable: %s>"
 msgstr ""
@@ -7086,44 +7086,44 @@ msgstr ""
 msgid "Unable to open file '%s' for saving trace data (%s)"
 msgstr ""
 
-#: ctf.c:916
+#: ctf.c:867
 msgid "Unable to create bt_context"
 msgstr ""
 
-#: ctf.c:921
+#: ctf.c:872
 #, possible-c-format
 msgid "Unable to use libbabeltrace on directory \"%s\""
 msgstr ""
 
-#: ctf.c:930
+#: ctf.c:881
 msgid "Unable to create bt_iterator"
 msgstr ""
 
-#: ctf.c:1139
+#: ctf.c:1090
 msgid "No CTF directory specified."
 msgstr ""
 
-#: ctf.c:1151
+#: ctf.c:1102
 msgid "Wrong event id of the first event"
 msgstr ""
 
-#: ctf.c:1158
+#: ctf.c:1109
 msgid "Wrong event id of the second event"
 msgstr ""
 
-#: ctf.c:1175
+#: ctf.c:1126
 msgid "Wrong event id of the first event of the second packet"
 msgstr ""
 
-#: ctf.c:1324
+#: ctf.c:1275
 msgid "ctf_xfer_partial: trace file is read-only"
 msgstr ""
 
-#: ctf.c:1651 tracefile-tfile.c:680
+#: ctf.c:1602 tracefile-tfile.c:680
 msgid "unknown tfind type"
 msgstr ""
 
-#: ctf.c:1731
+#: ctf.c:1682
 #, possible-c-format
 msgid "Unhandled trace block type (%s) while building trace frame info."
 msgstr ""
@@ -10182,13 +10182,13 @@ msgstr ""
 msgid "Exception condition detected on fd %d\n"
 msgstr ""
 
-#: event-top.c:365
+#: event-top.c:416
 msgid "error detected on stdin\n"
 msgstr ""
 
 #. This message is based on ANSI C, section 4.7.  Note that integer
 #. divide by zero causes this, so "float" is a misnomer.
-#: event-top.c:954
+#: event-top.c:1005
 msgid "Erroneous arithmetic operation."
 msgstr ""
 
@@ -10642,7 +10642,7 @@ msgstr ""
 msgid "No selected thread."
 msgstr ""
 
-#: frame.c:1480 infcmd.c:1778
+#: frame.c:1480 infcmd.c:1828
 msgid "Invalid selected thread."
 msgstr ""
 
@@ -12059,31 +12059,31 @@ msgstr ""
 msgid "<gdb:sal>"
 msgstr ""
 
-#: guile/guile.c:183 guile/guile.c:413
+#: guile/guile.c:181 guile/guile.c:411
 msgid "guile-repl currently does not take any arguments."
 msgstr ""
 
-#: guile/guile.c:272
+#: guile/guile.c:270
 msgid "Invalid \"guile\" block structure."
 msgstr ""
 
-#: guile/guile.c:414 guile/guile.c:422
+#: guile/guile.c:412 guile/guile.c:420
 msgid "Guile scripting is not supported in this copy of GDB."
 msgstr ""
 
-#: guile/guile.c:466
+#: guile/guile.c:464
 msgid "\"info guile\" must be followed by the name of an info command.\n"
 msgstr ""
 
-#: guile/guile.c:570
+#: guile/guile.c:568
 msgid "Error in function ~s:~%"
 msgstr ""
 
-#: guile/guile.c:594
+#: guile/guile.c:592
 msgid "Throw to key `~a' with args `~s'.~%"
 msgstr ""
 
-#: guile/guile.c:609
+#: guile/guile.c:607
 #, possible-c-format
 msgid ""
 "Could not complete Guile gdb module initialization from:\n"
@@ -12092,7 +12092,7 @@ msgid ""
 "Suggest passing --data-directory=/path/to/gdb/data-directory.\n"
 msgstr ""
 
-#: guile/guile.c:749
+#: guile/guile.c:747
 msgid ""
 "Start an interactive Guile prompt.\n"
 "\n"
@@ -12100,7 +12100,7 @@ msgid ""
 "prompt) or ,quit."
 msgstr ""
 
-#: guile/guile.c:755
+#: guile/guile.c:753
 msgid ""
 "Start a Guile interactive prompt.\n"
 "\n"
@@ -12108,7 +12108,7 @@ msgid ""
 "This command is only a placeholder."
 msgstr ""
 
-#: guile/guile.c:768
+#: guile/guile.c:766
 msgid ""
 "Evaluate one or more Guile expressions.\n"
 "\n"
@@ -12133,7 +12133,7 @@ msgid ""
 "Type \",help\" once in a Guile interactive session."
 msgstr ""
 
-#: guile/guile.c:791
+#: guile/guile.c:789
 msgid ""
 "Evaluate a Guile expression.\n"
 "\n"
@@ -12141,23 +12141,23 @@ msgid ""
 "This command is only a placeholder."
 msgstr ""
 
-#: guile/guile.c:801 guile/guile.c:807
+#: guile/guile.c:799 guile/guile.c:805
 msgid "Prefix command for Guile preference settings."
 msgstr ""
 
-#: guile/guile.c:813
+#: guile/guile.c:811
 msgid "Prefix command for Guile info displays."
 msgstr ""
 
-#: guile/guile.c:821
+#: guile/guile.c:819
 msgid "Set mode for Guile exception printing on error."
 msgstr ""
 
-#: guile/guile.c:822
+#: guile/guile.c:820
 msgid "Show the mode of Guile exception printing on error."
 msgstr ""
 
-#: guile/guile.c:823 python/python.c:1635
+#: guile/guile.c:821 python/python.c:1635
 msgid ""
 "none  == no stack or message will be printed.\n"
 "full == a message and a stack will be printed.\n"
@@ -13216,291 +13216,291 @@ msgid ""
 "The default is to unwind the frame."
 msgstr ""
 
-#: infcmd.c:115 infcmd.c:2263 infcmd.c:2653 linux-fork.c:664
+#: infcmd.c:113 infcmd.c:2313 infcmd.c:2707 linux-fork.c:664
 #: record-btrace.c:198 remote-sim.c:890
 msgid "The program is not being run."
 msgstr ""
 
-#: infcmd.c:193
+#: infcmd.c:191
 #, possible-c-format
 msgid "Terminal for future runs of program being debugged is \"%s\".\n"
 msgstr ""
 
-#: infcmd.c:357
+#: infcmd.c:355
 msgid "can't handle command-line argument containing whitespace"
 msgstr ""
 
-#: infcmd.c:453
+#: infcmd.c:456
 msgid ""
 "platform-specific solib_create_inferior_hook did not load initial shared "
 "libraries."
 msgstr ""
 
-#: infcmd.c:493
+#: infcmd.c:496
 msgid ""
 "The program being debugged has been started already.\n"
 "Start it from the beginning? "
 msgstr ""
 
-#: infcmd.c:495
+#: infcmd.c:498
 msgid "Program not restarted."
 msgstr ""
 
-#: infcmd.c:508
+#: infcmd.c:511
 msgid "Asynchronous execution not supported on this target."
 msgstr ""
 
-#: infcmd.c:567
+#: infcmd.c:571
 msgid "The target does not support running in non-stop mode."
 msgstr ""
 
-#: infcmd.c:660
+#: infcmd.c:667
 msgid "No symbol table loaded.  Use the \"file\" command."
 msgstr ""
 
-#: infcmd.c:692
+#: infcmd.c:699
 msgid "Cannot execute this command without a live selected thread."
 msgstr ""
 
-#: infcmd.c:703
+#: infcmd.c:710
 msgid "Cannot execute this command while looking at trace frames."
 msgstr ""
 
-#: infcmd.c:711
+#: infcmd.c:718
 msgid "Cannot execute this command while the selected thread is running."
 msgstr ""
 
-#: infcmd.c:780
+#: infcmd.c:807
 msgid "`-a' is meaningless in all-stop mode."
 msgstr ""
 
-#: infcmd.c:783
+#: infcmd.c:810
 msgid "Can't resume all threads and specify proceed count simultaneously."
 msgstr ""
 
-#: infcmd.c:829
+#: infcmd.c:859
 msgid "Continuing.\n"
 msgstr ""
 
-#: infcmd.c:1067
+#: infcmd.c:1101
 msgid "Cannot find bounds of current function"
 msgstr ""
 
-#: infcmd.c:1070
+#: infcmd.c:1104
 #, possible-c-format
 msgid ""
 "Single stepping until exit from function %s,\n"
 "which has no line number information.\n"
 msgstr ""
 
-#: infcmd.c:1136
+#: infcmd.c:1171
 msgid "starting address"
 msgstr ""
 
-#: infcmd.c:1141
+#: infcmd.c:1176
 msgid "Unreasonable jump request"
 msgstr ""
 
-#: infcmd.c:1148
+#: infcmd.c:1186
 msgid "No source file has been specified."
 msgstr ""
 
-#: infcmd.c:1157
+#: infcmd.c:1195
 #, possible-c-format
 msgid "Line %d is not in `%s'.  Jump anyway? "
 msgstr ""
 
-#: infcmd.c:1171
+#: infcmd.c:1209
 msgid "WARNING!!!  Destination is in unmapped overlay!  Jump anyway? "
 msgstr ""
 
-#: infcmd.c:1184
+#: infcmd.c:1222
 msgid "Continuing at "
 msgstr ""
 
-#: infcmd.c:1200
+#: infcmd.c:1238
 msgid "Usage: go <location>\n"
 msgstr ""
 
-#: infcmd.c:1230
+#: infcmd.c:1269
 msgid "signal number"
 msgstr ""
 
-#: infcmd.c:1251
+#: infcmd.c:1290
 msgid "Continuing with no signal.\n"
 msgstr ""
 
-#: infcmd.c:1253
+#: infcmd.c:1292
 #, possible-c-format
 msgid "Continuing with signal %s.\n"
 msgstr ""
 
-#: infcmd.c:1315
+#: infcmd.c:1354
 msgid "Execution is not within a known function."
 msgstr ""
 
-#: infcmd.c:1387
+#: infcmd.c:1431
 msgid "a location"
 msgstr ""
 
-#: infcmd.c:1528
+#: infcmd.c:1575
 msgid "finish_command: function has no target type"
 msgstr ""
 
-#: infcmd.c:1579
+#: infcmd.c:1626
 msgid "Finish: couldn't find function."
 msgstr ""
 
-#: infcmd.c:1686
+#: infcmd.c:1733
 msgid "The \"finish\" command does not take any arguments."
 msgstr ""
 
 #. Finishing from an inline frame is completely different.  We don't
 #. try to show the "return value" - no way to locate it.  So we do
 #. not need a completion.
-#: infcmd.c:1688 infcmd.c:1697
+#: infcmd.c:1738 infcmd.c:1747
 msgid "No selected frame."
 msgstr ""
 
-#: infcmd.c:1690
+#: infcmd.c:1740
 msgid "\"finish\" not meaningful in the outermost frame."
 msgstr ""
 
-#: infcmd.c:1718 infcmd.c:1742
+#: infcmd.c:1768 infcmd.c:1792
 msgid "Run till exit from "
 msgstr ""
 
-#: infcmd.c:1740
+#: infcmd.c:1790
 msgid "Run back to call of "
 msgstr ""
 
-#: infcmd.c:1764
+#: infcmd.c:1814
 msgid "The program being debugged is not being run.\n"
 msgstr ""
 
-#: infcmd.c:1780 infrun.c:6747
+#: infcmd.c:1830 infrun.c:6767
 msgid "Selected thread is running."
 msgstr ""
 
-#: infcmd.c:1787
+#: infcmd.c:1837
 #, possible-c-format
 msgid "Program stopped at %s.\n"
 msgstr ""
 
-#: infcmd.c:1790
+#: infcmd.c:1840
 msgid "It stopped after being stepped.\n"
 msgstr ""
 
-#: infcmd.c:1799
+#: infcmd.c:1849
 msgid "It stopped at a breakpoint that has since been deleted.\n"
 msgstr ""
 
-#: infcmd.c:1803
+#: infcmd.c:1853
 #, possible-c-format
 msgid "It stopped at breakpoint %d.\n"
 msgstr ""
 
-#: infcmd.c:1809
+#: infcmd.c:1859
 #, possible-c-format
 msgid "It stopped with signal %s, %s.\n"
 msgstr ""
 
-#: infcmd.c:1816
+#: infcmd.c:1866
 msgid "Type \"info stack\" or \"info registers\" for more information.\n"
 msgstr ""
 
-#: infcmd.c:1861
+#: infcmd.c:1911
 msgid "environment variable and value"
 msgstr ""
 
-#: infcmd.c:1885
+#: infcmd.c:1935
 msgid "environment variable to set"
 msgstr ""
 
-#: infcmd.c:1907
+#: infcmd.c:1957
 #, possible-c-format
 msgid "Setting environment variable \"%s\" to null value.\n"
 msgstr ""
 
 #. If there is no argument, delete all environment variables.
 #. Ask for confirmation if reading from the terminal.
-#: infcmd.c:1924
+#: infcmd.c:1974
 msgid "Delete all environment variables? "
 msgstr ""
 
-#: infcmd.c:2102 infcmd.c:2248 infcmd.c:2777
+#: infcmd.c:2152 infcmd.c:2298 infcmd.c:2831
 msgid "The program has no registers now."
 msgstr ""
 
-#: infcmd.c:2126
+#: infcmd.c:2176
 msgid "Missing register name"
 msgstr ""
 
 #. Nothing matched.
-#: infcmd.c:2199
+#: infcmd.c:2249
 #, possible-c-format
 msgid "Invalid register `%.*s'"
 msgstr ""
 
-#: infcmd.c:2264
+#: infcmd.c:2314
 msgid "Kill the program being debugged? "
 msgstr ""
 
-#: infcmd.c:2278
+#: infcmd.c:2328
 #, possible-c-format
 msgid "In %s,\n"
 msgstr ""
 
-#: infcmd.c:2472 target.c:2050
+#: infcmd.c:2523 target.c:2114
 msgid "A program is being debugged already.  Kill it? "
 msgstr ""
 
-#: infcmd.c:2475
+#: infcmd.c:2526
 msgid "Not killed."
 msgstr ""
 
-#: infcmd.c:2490
+#: infcmd.c:2541
 msgid "Cannot attach to this target in non-stop mode"
 msgstr ""
 
-#: infcmd.c:2737
+#: infcmd.c:2791
 msgid "-a is meaningless in all-stop mode."
 msgstr ""
 
-#: infcmd.c:2785
+#: infcmd.c:2839
 msgid "\"unset\" must be followed by the name of an unset subcommand.\n"
 msgstr ""
 
-#: infcmd.c:2802 procfs.c:5167
+#: infcmd.c:2856 procfs.c:5167
 msgid "Not supported on this target."
 msgstr ""
 
-#: infcmd.c:2879
+#: infcmd.c:2933
 msgid "Set terminal for future runs of program being debugged."
 msgstr ""
 
-#: infcmd.c:2880
+#: infcmd.c:2934
 msgid "Show terminal for future runs of program being debugged."
 msgstr ""
 
-#: infcmd.c:2881
+#: infcmd.c:2935
 msgid "Usage: set inferior-tty /dev/pts/1"
 msgstr ""
 
-#: infcmd.c:2890
+#: infcmd.c:2944
 msgid "Set argument list to give program being debugged when it is started."
 msgstr ""
 
-#: infcmd.c:2891
+#: infcmd.c:2945
 msgid "Show argument list to give program being debugged when it is started."
 msgstr ""
 
-#: infcmd.c:2892
+#: infcmd.c:2946
 msgid ""
 "Follow this command with any number of args, to be passed to the program."
 msgstr ""
 
-#: infcmd.c:2901
+#: infcmd.c:2955
 msgid ""
 "The environment to give the program, or one variable's value.\n"
 "With an argument VAR, prints the value of environment variable VAR to\n"
@@ -13508,17 +13508,17 @@ msgid ""
 "environment to be given to the program."
 msgstr ""
 
-#: infcmd.c:2909
+#: infcmd.c:2963
 msgid "Complement to certain \"set\" commands."
 msgstr ""
 
-#: infcmd.c:2912
+#: infcmd.c:2966
 msgid ""
 "Cancel environment variable VAR for the program.\n"
 "This does not affect the program until the next \"run\" command."
 msgstr ""
 
-#: infcmd.c:2918
+#: infcmd.c:2972
 msgid ""
 "Set environment variable value to give the program.\n"
 "Arguments are VAR VALUE where VAR is variable name and VALUE is value.\n"
@@ -13526,7 +13526,7 @@ msgid ""
 "This does not affect the program until the next \"run\" command."
 msgstr ""
 
-#: infcmd.c:2926
+#: infcmd.c:2980
 msgid ""
 "Add directory DIR(s) to beginning of search path for object files.\n"
 "$cwd in the path means the current working directory.\n"
@@ -13535,7 +13535,7 @@ msgid ""
 "fully linked executable files and separately compiled object files as needed."
 msgstr ""
 
-#: infcmd.c:2935
+#: infcmd.c:2989
 msgid ""
 "Current search path for finding object files.\n"
 "$cwd in the path means the current working directory.\n"
@@ -13544,11 +13544,11 @@ msgid ""
 "fully linked executable files and separately compiled object files as needed."
 msgstr ""
 
-#: infcmd.c:2946
+#: infcmd.c:3000
 msgid "Kill execution of program being debugged."
 msgstr ""
 
-#: infcmd.c:2949
+#: infcmd.c:3003
 msgid ""
 "Attach to a process or file outside of GDB.\n"
 "This command attaches to another target, of the same type as your last\n"
@@ -13563,21 +13563,21 @@ msgid ""
 "to specify the program, and to load its symbol table."
 msgstr ""
 
-#: infcmd.c:2962
+#: infcmd.c:3016
 msgid ""
 "Detach a process or file previously attached.\n"
 "If a process, it is no longer traced, and it continues its execution.  If\n"
 "you were debugging a file, the file is closed and gdb no longer accesses it."
 msgstr ""
 
-#: infcmd.c:2968
+#: infcmd.c:3022
 msgid ""
 "Disconnect from a target.\n"
 "The target will wait for another debugger to connect.  Not available for\n"
 "all targets."
 msgstr ""
 
-#: infcmd.c:2973
+#: infcmd.c:3027
 msgid ""
 "Continue program with the specified signal.\n"
 "Usage: signal SIGNAL\n"
@@ -13589,28 +13589,28 @@ msgid ""
 "and you want to resume the program while discarding the signal."
 msgstr ""
 
-#: infcmd.c:2983
+#: infcmd.c:3037
 msgid ""
 "Step one instruction exactly.\n"
 "Usage: stepi [N]\n"
 "Argument N means step N times (or till program stops for another reason)."
 msgstr ""
 
-#: infcmd.c:2990
+#: infcmd.c:3044
 msgid ""
 "Step one instruction, but proceed through subroutine calls.\n"
 "Usage: nexti [N]\n"
 "Argument N means step N times (or till program stops for another reason)."
 msgstr ""
 
-#: infcmd.c:2997
+#: infcmd.c:3051
 msgid ""
 "Execute until selected stack frame returns.\n"
 "Usage: finish\n"
 "Upon return, the value returned is printed and put in the value history."
 msgstr ""
 
-#: infcmd.c:3003
+#: infcmd.c:3057
 msgid ""
 "Step program, proceeding through subroutine calls.\n"
 "Usage: next [N]\n"
@@ -13619,28 +13619,28 @@ msgid ""
 "the call, in effect treating it as a single source line."
 msgstr ""
 
-#: infcmd.c:3013
+#: infcmd.c:3067
 msgid ""
 "Step program until it reaches a different source line.\n"
 "Usage: step [N]\n"
 "Argument N means step N times (or till program stops for another reason)."
 msgstr ""
 
-#: infcmd.c:3020
+#: infcmd.c:3074
 msgid ""
 "Execute until the program reaches a source line greater than the current\n"
 "or a specified location (same args as break command) within the current "
 "frame."
 msgstr ""
 
-#: infcmd.c:3027
+#: infcmd.c:3081
 msgid ""
 "Continue the program up to the given location (same form as args for break "
 "command).\n"
 "Execution will also stop upon exit from the current stack frame."
 msgstr ""
 
-#: infcmd.c:3033
+#: infcmd.c:3087
 msgid ""
 "Continue program being debugged at specified line or address.\n"
 "Usage: jump <location>\n"
@@ -13648,7 +13648,7 @@ msgid ""
 "for an address to start at."
 msgstr ""
 
-#: infcmd.c:3043
+#: infcmd.c:3097
 msgid ""
 "Usage: go <location>\n"
 "Continue program being debugged, stopping at specified line or \n"
@@ -13658,7 +13658,7 @@ msgid ""
 "This command is a combination of tbreak and jump."
 msgstr ""
 
-#: infcmd.c:3056
+#: infcmd.c:3110
 msgid ""
 "Continue program being debugged, after signal or breakpoint.\n"
 "Usage: continue [N]\n"
@@ -13672,7 +13672,7 @@ msgid ""
 "Specifying -a and an ignore count simultaneously is an error."
 msgstr ""
 
-#: infcmd.c:3070
+#: infcmd.c:3124
 msgid ""
 "Start debugged program.  You may specify arguments to give it.\n"
 "Args may include \"*\", or \"[...]\"; they are expanded using \"sh\".\n"
@@ -13684,18 +13684,18 @@ msgid ""
 "use \"set args\" without arguments."
 msgstr ""
 
-#: infcmd.c:3083
+#: infcmd.c:3137
 msgid "Start debugged program with no arguments."
 msgstr ""
 
-#: infcmd.c:3085
+#: infcmd.c:3139
 msgid ""
 "Run the debugged program until the beginning of the main procedure.\n"
 "You may specify arguments to give to your program, just as with the\n"
 "\"run\" command."
 msgstr ""
 
-#: infcmd.c:3092
+#: infcmd.c:3146
 msgid ""
 "Interrupt the execution of the debugged program.\n"
 "If non-stop mode is enabled, interrupt only the current thread,\n"
@@ -13703,62 +13703,62 @@ msgid ""
 "interrupt all running threads in non-stop mode, use the -a option."
 msgstr ""
 
-#: infcmd.c:3097 infcmd.c:3103
+#: infcmd.c:3151 infcmd.c:3157
 msgid ""
 "List of integer registers and their contents, for selected stack frame.\n"
 "Register name as argument means describe only that register."
 msgstr ""
 
-#: infcmd.c:3106
+#: infcmd.c:3160
 msgid ""
 "List of all registers and their contents, for selected stack frame.\n"
 "Register name as argument means describe only that register."
 msgstr ""
 
-#: infcmd.c:3111
+#: infcmd.c:3165
 msgid "Execution status of the program."
 msgstr ""
 
-#: infcmd.c:3114
+#: infcmd.c:3168
 msgid "Print the status of the floating point unit\n"
 msgstr ""
 
-#: infcmd.c:3117
+#: infcmd.c:3171
 msgid "Print the status of the vector unit\n"
 msgstr ""
 
-#: infcmd.c:3120
+#: infcmd.c:3174
 msgid ""
 "Show /proc process information about any running process.\n"
 "Specify any process id, or use the program being debugged by default."
 msgstr ""
 
 #. allow-unknown
-#: infcmd.c:3126
+#: infcmd.c:3180
 msgid "List of mapped memory regions."
 msgstr ""
 
-#: infcmd.c:3130
+#: infcmd.c:3184
 msgid "List process info from /proc/PID/stat."
 msgstr ""
 
-#: infcmd.c:3134
+#: infcmd.c:3188
 msgid "List process info from /proc/PID/status."
 msgstr ""
 
-#: infcmd.c:3138
+#: infcmd.c:3192
 msgid "List current working directory of the process."
 msgstr ""
 
-#: infcmd.c:3142
+#: infcmd.c:3196
 msgid "List command line arguments of the process."
 msgstr ""
 
-#: infcmd.c:3146
+#: infcmd.c:3200
 msgid "List absolute filename for executable of the process."
 msgstr ""
 
-#: infcmd.c:3150
+#: infcmd.c:3204
 msgid "List all available /proc info."
 msgstr ""
 
@@ -14001,7 +14001,7 @@ msgid ""
 "this platform."
 msgstr ""
 
-#: infrun.c:187 infrun.c:216 mi/mi-main.c:123 target.c:4126 target.c:4174
+#: infrun.c:187 infrun.c:216 mi/mi-main.c:123 target.c:4190 target.c:4238
 msgid "Cannot change this setting while the inferior is running."
 msgstr ""
 
@@ -14092,132 +14092,132 @@ msgstr ""
 msgid "Program exited while detaching"
 msgstr ""
 
-#: infrun.c:2964
+#: infrun.c:2984
 msgid "completed.\n"
 msgstr ""
 
-#: infrun.c:3493
+#: infrun.c:3513
 #, possible-c-format
 msgid "unhandled stop_soon: %d"
 msgstr ""
 
-#: infrun.c:3564
+#: infrun.c:3584
 msgid "Cannot fill $_exitsignal with the correct signal number.\n"
 msgstr ""
 
-#: infrun.c:6050
+#: infrun.c:6070
 msgid "Unknown value."
 msgstr ""
 
-#: infrun.c:6117 linux-fork.c:378 linux-fork.c:410
+#: infrun.c:6137 linux-fork.c:378 linux-fork.c:410
 #, possible-c-format
 msgid "[Switching to %s]\n"
 msgstr ""
 
-#: infrun.c:6128
+#: infrun.c:6148
 msgid "No unwaited-for children left.\n"
 msgstr ""
 
-#: infrun.c:6136
+#: infrun.c:6156
 msgid ""
 "Cannot remove breakpoints because program is no longer writable.\n"
 "Further execution is probably impossible.\n"
 msgstr ""
 
-#: infrun.c:6379
+#: infrun.c:6399
 msgid "Signal        Stop\tPrint\tPass to program\tDescription\n"
 msgstr ""
 
-#: infrun.c:6416
+#: infrun.c:6436
 msgid "signal to handle"
 msgstr ""
 
 #. Not a number and not a recognized flag word => complain.
-#: infrun.c:6519
+#: infrun.c:6539
 #, possible-c-format
 msgid "Unrecognized or ambiguous flag word: \"%s\"."
 msgstr ""
 
-#: infrun.c:6534
+#: infrun.c:6554
 #, possible-c-format
 msgid ""
 "%s is used by the debugger.\n"
 "Are you sure you want to change it? "
 msgstr ""
 
-#: infrun.c:6542
+#: infrun.c:6562
 msgid "Not confirmed, unchanged.\n"
 msgstr ""
 
-#: infrun.c:6620
+#: infrun.c:6640
 msgid "xdb command"
 msgstr ""
 
-#: infrun.c:6671
+#: infrun.c:6691
 msgid "Invalid signal handling flag.\n"
 msgstr ""
 
-#: infrun.c:6684
+#: infrun.c:6704
 msgid ""
 "Only signals 1-15 are valid as numeric signals.\n"
 "Use \"info signals\" for a list of symbolic signals."
 msgstr ""
 
-#: infrun.c:6727
+#: infrun.c:6747
 msgid ""
 "\n"
 "Use the \"handle\" command to change these tables.\n"
 msgstr ""
 
-#: infrun.c:6739
+#: infrun.c:6759
 msgid "No thread selected."
 msgstr ""
 
-#: infrun.c:6743
+#: infrun.c:6763
 msgid "The current thread has terminated"
 msgstr ""
 
-#: infrun.c:6778
+#: infrun.c:6798
 msgid "Unable to read siginfo"
 msgstr ""
 
-#: infrun.c:6799
+#: infrun.c:6819
 msgid "Unable to write siginfo"
 msgstr ""
 
-#: infrun.c:7037 stack.c:1831 stack.c:2056
+#: infrun.c:7057 stack.c:1831 stack.c:2056
 msgid "Unable to restore previously selected frame."
 msgstr ""
 
-#: infrun.c:7184
+#: infrun.c:7204
 msgid "Target does not support this operation."
 msgstr ""
 
-#: infrun.c:7194
+#: infrun.c:7214
 msgid "Forward.\n"
 msgstr ""
 
-#: infrun.c:7197
+#: infrun.c:7217
 msgid "Reverse.\n"
 msgstr ""
 
-#: infrun.c:7201
+#: infrun.c:7221
 #, possible-c-format
 msgid "bogus execution_direction value: %d"
 msgstr ""
 
-#: infrun.c:7210
+#: infrun.c:7230
 #, possible-c-format
 msgid "Resuming the execution of threads of all processes is %s.\n"
 msgstr ""
 
-#: infrun.c:7230 infrun.c:7263
+#: infrun.c:7250 infrun.c:7283
 msgid ""
 "What debugger does when program gets various signals.\n"
 "Specify a signal as argument to print info on that signal only."
 msgstr ""
 
-#: infrun.c:7235
+#: infrun.c:7255
 msgid ""
 "Specify how to handle signals.\n"
 "Usage: handle SIGNAL [ACTIONS]\n"
@@ -14244,7 +14244,7 @@ msgid ""
 "all signals cumulatively specified."
 msgstr ""
 
-#: infrun.c:7266
+#: infrun.c:7286
 msgid ""
 "Specify how to handle a signal.\n"
 "Args are signals and actions to apply to those signals.\n"
@@ -14263,46 +14263,46 @@ msgid ""
 "Pass and Stop may be combined."
 msgstr ""
 
-#: infrun.c:7286
+#: infrun.c:7306
 msgid ""
 "There is no `stop' command, but you can set a hook on `stop'.\n"
 "This allows you to set a list of commands to be run each time execution\n"
 "of the program stops."
 msgstr ""
 
-#: infrun.c:7291
+#: infrun.c:7311
 msgid "Set inferior debugging."
 msgstr ""
 
-#: infrun.c:7292
+#: infrun.c:7312
 msgid "Show inferior debugging."
 msgstr ""
 
-#: infrun.c:7293
+#: infrun.c:7313
 msgid "When non-zero, inferior specific debugging is enabled."
 msgstr ""
 
-#: infrun.c:7300
+#: infrun.c:7320
 msgid "Set displaced stepping debugging."
 msgstr ""
 
-#: infrun.c:7301
+#: infrun.c:7321
 msgid "Show displaced stepping debugging."
 msgstr ""
 
-#: infrun.c:7302
+#: infrun.c:7322
 msgid "When non-zero, displaced stepping specific debugging is enabled."
 msgstr ""
 
-#: infrun.c:7309
+#: infrun.c:7329
 msgid "Set whether gdb controls the inferior in non-stop mode."
 msgstr ""
 
-#: infrun.c:7310
+#: infrun.c:7330
 msgid "Show whether gdb controls the inferior in non-stop mode."
 msgstr ""
 
-#: infrun.c:7311
+#: infrun.c:7331
 msgid ""
 "When debugging a multi-threaded program and this setting is\n"
 "off (the default, also called all-stop mode), when one thread stops\n"
@@ -14317,30 +14317,30 @@ msgid ""
 "leave it stopped or free to run as needed."
 msgstr ""
 
-#: infrun.c:7386
+#: infrun.c:7406
 msgid "Set stopping for shared library events."
 msgstr ""
 
-#: infrun.c:7387
+#: infrun.c:7407
 msgid "Show stopping for shared library events."
 msgstr ""
 
-#: infrun.c:7388
+#: infrun.c:7408
 msgid ""
 "If nonzero, gdb will give control to the user when the dynamic linker\n"
 "notifies gdb of shared library events.  The most common event of interest\n"
 "to the user would be loading/unloading of a new library."
 msgstr ""
 
-#: infrun.c:7398
+#: infrun.c:7418
 msgid "Set debugger response to a program call of fork or vfork."
 msgstr ""
 
-#: infrun.c:7399
+#: infrun.c:7419
 msgid "Show debugger response to a program call of fork or vfork."
 msgstr ""
 
-#: infrun.c:7400
+#: infrun.c:7420
 msgid ""
 "A fork or vfork creates a new process.  follow-fork-mode can be:\n"
 "  parent  - the original process is debugged after a fork\n"
@@ -14349,15 +14349,15 @@ msgid ""
 "By default, the debugger will follow the parent process."
 msgstr ""
 
-#: infrun.c:7412
+#: infrun.c:7432
 msgid "Set debugger response to a program call of exec."
 msgstr ""
 
-#: infrun.c:7413
+#: infrun.c:7433
 msgid "Show debugger response to a program call of exec."
 msgstr ""
 
-#: infrun.c:7414
+#: infrun.c:7434
 msgid ""
 "An exec call replaces the program image of a process.\n"
 "\n"
@@ -14376,15 +14376,15 @@ msgid ""
 "By default, the debugger will use the same inferior."
 msgstr ""
 
-#: infrun.c:7435
+#: infrun.c:7455
 msgid "Set mode for locking scheduler during execution."
 msgstr ""
 
-#: infrun.c:7436
+#: infrun.c:7456
 msgid "Show mode for locking scheduler during execution."
 msgstr ""
 
-#: infrun.c:7437
+#: infrun.c:7457
 msgid ""
 "off  == no locking (threads may preempt at any time)\n"
 "on   == full locking (no thread except the current thread may run)\n"
@@ -14393,15 +14393,15 @@ msgid ""
 "\tOther threads may run while stepping over a function call ('next')."
 msgstr ""
 
-#: infrun.c:7447
+#: infrun.c:7467
 msgid "Set mode for resuming threads of all processes."
 msgstr ""
 
-#: infrun.c:7448
+#: infrun.c:7468
 msgid "Show mode for resuming threads of all processes."
 msgstr ""
 
-#: infrun.c:7449
+#: infrun.c:7469
 msgid ""
 "When on, execution commands (such as 'continue' or 'next') resume all\n"
 "threads of all processes.  When off (which is the default), execution\n"
@@ -14410,30 +14410,30 @@ msgid ""
 "mode (see help set scheduler-locking)."
 msgstr ""
 
-#: infrun.c:7459
+#: infrun.c:7479
 msgid "Set mode of the step operation."
 msgstr ""
 
-#: infrun.c:7460
+#: infrun.c:7480
 msgid "Show mode of the step operation."
 msgstr ""
 
-#: infrun.c:7461
+#: infrun.c:7481
 msgid ""
 "When set, doing a step over a function without debug line information\n"
 "will stop at the first instruction of that function. Otherwise, the\n"
 "function is skipped and the step command stops at a different source line."
 msgstr ""
 
-#: infrun.c:7470
+#: infrun.c:7490
 msgid "Set debugger's willingness to use displaced stepping."
 msgstr ""
 
-#: infrun.c:7471
+#: infrun.c:7491
 msgid "Show debugger's willingness to use displaced stepping."
 msgstr ""
 
-#: infrun.c:7472
+#: infrun.c:7492
 msgid ""
 "If on, gdb will use displaced stepping to step over breakpoints if it is\n"
 "supported by the target architecture.  If off, gdb will not use displaced\n"
@@ -14445,57 +14445,57 @@ msgid ""
 "use it in all-stop mode (see help set non-stop)."
 msgstr ""
 
-#: infrun.c:7484
+#: infrun.c:7504
 msgid ""
 "Set direction of execution.\n"
 "Options are 'forward' or 'reverse'."
 msgstr ""
 
-#: infrun.c:7486
+#: infrun.c:7506
 msgid "Show direction of execution (forward/reverse)."
 msgstr ""
 
-#: infrun.c:7487
+#: infrun.c:7507
 msgid "Tells gdb whether to execute forward or backward."
 msgstr ""
 
 #. Set/show detach-on-fork: user-settable mode.
-#: infrun.c:7493
+#: infrun.c:7513
 msgid "Set whether gdb will detach the child of a fork."
 msgstr ""
 
-#: infrun.c:7494
+#: infrun.c:7514
 msgid "Show whether gdb will detach the child of a fork."
 msgstr ""
 
-#: infrun.c:7495
+#: infrun.c:7515
 msgid "Tells gdb whether to detach the child of a fork."
 msgstr ""
 
-#: infrun.c:7502
+#: infrun.c:7522
 msgid "Set disabling of debuggee's virtual address space randomization."
 msgstr ""
 
-#: infrun.c:7503
+#: infrun.c:7523
 msgid "Show disabling of debuggee's virtual address space randomization."
 msgstr ""
 
-#: infrun.c:7504
+#: infrun.c:7524
 msgid ""
 "When this mode is on (which is the default), randomization of the virtual\n"
 "address space is disabled.  Standalone programs run with the randomization\n"
 "enabled by default on some platforms."
 msgstr ""
 
-#: infrun.c:7528
+#: infrun.c:7548
 msgid "Set whether gdb controls the inferior in observer mode."
 msgstr ""
 
-#: infrun.c:7529
+#: infrun.c:7549
 msgid "Show whether gdb controls the inferior in observer mode."
 msgstr ""
 
-#: infrun.c:7530
+#: infrun.c:7550
 msgid ""
 "In observer mode, GDB can get data from the inferior, but not\n"
 "affect its execution.  Registers and memory may not be changed,\n"
@@ -16344,78 +16344,78 @@ msgstr ""
 msgid "no definition for macro `%s' in scope to #undef at %s:%d"
 msgstr ""
 
-#: main.c:127 source.c:583
+#: main.c:128 source.c:583
 #, possible-c-format
 msgid "%s is not a directory."
 msgstr ""
 
-#: main.c:504
+#: main.c:513
 #, possible-c-format
 msgid "%s: warning: error finding working directory: %s\n"
 msgstr ""
 
-#: main.c:671
+#: main.c:680
 #, possible-c-format
 msgid "%s: TUI mode is not supported\n"
 msgstr ""
 
-#: main.c:741
+#: main.c:750
 #, possible-c-format
 msgid "%s: empty path for `--data-directory'\n"
 msgstr ""
 
-#: main.c:757
+#: main.c:766
 #, possible-c-format
 msgid "%s: unable to load tclcommand file \"%s\""
 msgstr ""
 
-#: main.c:809
+#: main.c:818
 #, possible-c-format
 msgid "warning: could not set baud rate to `%s'.\n"
 msgstr ""
 
-#: main.c:826
+#: main.c:835
 #, possible-c-format
 msgid "warning: could not set timeout limit to `%s'.\n"
 msgstr ""
 
-#: main.c:835
+#: main.c:844
 #, possible-c-format
 msgid "Use `%s --help' for a complete list of options.\n"
 msgstr ""
 
-#: main.c:860
+#: main.c:869
 #, possible-c-format
 msgid "%s: `--args' specified but no program specified\n"
 msgstr ""
 
-#: main.c:897
+#: main.c:906
 #, possible-c-format
 msgid "Excess command line arguments ignored. (%s%s)\n"
 msgstr ""
 
-#: main.c:961
+#: main.c:970
 #, possible-c-format
 msgid "Interpreter `%s' unrecognized"
 msgstr ""
 
 #. Set off error and warning messages with a blank line.
-#: main.c:990
+#: main.c:999
 msgid ""
 "\n"
 "warning: "
 msgstr ""
 
-#: main.c:1062
+#: main.c:1071
 msgid "Can't attach to process and specify a core file at the same time."
 msgstr ""
 
 #. Error messages should no longer be distinguished with extra output.
-#: main.c:1093
+#: main.c:1102
 msgid "warning: "
 msgstr ""
 
-#: main.c:1103
+#: main.c:1112
 #, possible-c-format
 msgid "auto-load: Loading .gdbinit file \"%s\".\n"
 msgstr ""
@@ -16423,7 +16423,7 @@ msgstr ""
 #. Note: The options in the list below are only approximately sorted
 #. in the alphabetical order, so as to group closely related options
 #. together.
-#: main.c:1186
+#: main.c:1195
 msgid ""
 "This is the GNU debugger.  Usage:\n"
 "\n"
@@ -16432,7 +16432,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1191
+#: main.c:1200
 msgid ""
 "Selection of debuggee and its files:\n"
 "\n"
@@ -16448,7 +16448,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1203
+#: main.c:1212
 msgid ""
 "Initial commands and command files:\n"
 "\n"
@@ -16466,7 +16466,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1217
+#: main.c:1226
 msgid ""
 "Output and user interface control:\n"
 "\n"
@@ -16479,11 +16479,11 @@ msgid ""
 "  --nw               Do not use the GUI interface.\n"
 msgstr ""
 
-#: main.c:1227
+#: main.c:1236
 msgid "  --tui              Use a terminal user interface.\n"
 msgstr ""
 
-#: main.c:1231
+#: main.c:1240
 msgid ""
 "  --dbx              DBX compatibility mode.\n"
 "  --xdb              XDB compatibility mode.\n"
@@ -16492,7 +16492,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1237
+#: main.c:1246
 msgid ""
 "Operating modes:\n"
 "\n"
@@ -16516,35 +16516,35 @@ msgid ""
 "                     Set GDB's data-directory to DIR.\n"
 msgstr ""
 
-#: main.c:1254
+#: main.c:1263
 msgid ""
 "\n"
 "At startup, GDB reads the following init files and executes their commands:\n"
 msgstr ""
 
-#: main.c:1258
+#: main.c:1267
 #, possible-c-format
 msgid "   * system-wide init file: %s\n"
 msgstr ""
 
-#: main.c:1262
+#: main.c:1271
 #, possible-c-format
 msgid "   * user-specific init file: %s\n"
 msgstr ""
 
-#: main.c:1266
+#: main.c:1275
 #, possible-c-format
 msgid "   * local init file (see also 'set auto-load local-gdbinit'): ./%s\n"
 msgstr ""
 
-#: main.c:1269
+#: main.c:1278
 msgid ""
 "\n"
 "For more information, type \"help\" from within GDB, or consult the\n"
 "GDB manual (available as on-line info or a printed manual).\n"
 msgstr ""
 
-#: main.c:1274
+#: main.c:1283
 #, possible-c-format
 msgid "Report bugs to \"%s\".\n"
 msgstr ""
@@ -20162,11 +20162,11 @@ msgstr ""
 msgid "Unexpected value.  Expecting a gdb.Symbol or a Python string."
 msgstr ""
 
-#: python/py-framefilter.c:574
+#: python/py-framefilter.c:577
 msgid "No symbol or value provided."
 msgstr ""
 
-#: python/py-framefilter.c:1203
+#: python/py-framefilter.c:1206
 msgid "FrameDecorator.function: expecting a String, integer or None."
 msgstr ""
 
@@ -20716,7 +20716,7 @@ msgstr ""
 msgid "Go backward to insn number %s\n"
 msgstr ""
 
-#: record-full.c:2000 record-full.c:2094 target.c:510
+#: record-full.c:2000 record-full.c:2094 target.c:574
 msgid "You can't do that without a process to debug."
 msgstr ""
 
@@ -20891,7 +20891,7 @@ msgstr ""
 msgid "Invalid modifier: %c."
 msgstr ""
 
-#: record.c:678 top.c:1560
+#: record.c:678 top.c:1575
 #, possible-c-format
 msgid "integer %u out of range"
 msgstr ""
@@ -25829,34 +25829,34 @@ msgid ""
 "`help target ' followed by the protocol name."
 msgstr ""
 
-#: target.c:503
+#: target.c:567
 #, possible-c-format
 msgid "You can't do that when your target is `%s'"
 msgstr ""
 
-#: target.c:516
+#: target.c:580
 msgid "No saved terminal information.\n"
 msgstr ""
 
-#: target.c:656
+#: target.c:720
 msgid "Attempt to unpush the dummy target"
 msgstr ""
 
-#: target.c:777
+#: target.c:841
 msgid "Cannot find thread-local variables in this thread library."
 msgstr ""
 
-#: target.c:782
+#: target.c:846
 #, possible-c-format
 msgid "Cannot find shared library `%s' in dynamic linker's load module list"
 msgstr ""
 
-#: target.c:785
+#: target.c:849
 #, possible-c-format
 msgid "Cannot find executable file `%s' in dynamic linker's load module list"
 msgstr ""
 
-#: target.c:790
+#: target.c:854
 #, possible-c-format
 msgid ""
 "The inferior has not yet allocated storage for thread-local variables in\n"
@@ -25864,7 +25864,7 @@ msgid ""
 "for %s"
 msgstr ""
 
-#: target.c:796
+#: target.c:860
 #, possible-c-format
 msgid ""
 "The inferior has not yet allocated storage for thread-local variables in\n"
@@ -25872,86 +25872,86 @@ msgid ""
 "for %s"
 msgstr ""
 
-#: target.c:804
+#: target.c:868
 #, possible-c-format
 msgid ""
 "Cannot find thread-local storage for %s, shared library %s:\n"
 "%s"
 msgstr ""
 
-#: target.c:809
+#: target.c:873
 #, possible-c-format
 msgid ""
 "Cannot find thread-local storage for %s, executable file %s:\n"
 "%s"
 msgstr ""
 
-#: target.c:823
+#: target.c:887
 msgid "Cannot find thread-local variables on this target"
 msgstr ""
 
-#: target.c:1077
+#: target.c:1141
 msgid "Writing to flash memory forbidden in this context"
 msgstr ""
 
-#: target.c:1208
+#: target.c:1272
 #, possible-c-format
 msgid "Writing to memory is not allowed (addr %s, len %s)"
 msgstr ""
 
-#: target.c:1420
+#: target.c:1484
 msgid "Overlapping regions in memory map: ignoring"
 msgstr ""
 
-#: target.c:1452
+#: target.c:1516
 #, possible-c-format
 msgid "Mode for reading from readonly sections is %s.\n"
 msgstr ""
 
-#: target.c:1877
+#: target.c:1941
 #, possible-c-format
 msgid "target object %d, annex %s, contained unexpected null characters"
 msgstr ""
 
-#: target.c:1920
+#: target.c:1984
 msgid "May not insert breakpoints"
 msgstr ""
 
-#: target.c:1940
+#: target.c:2004
 msgid "May not remove breakpoints"
 msgstr ""
 
-#: target.c:1955
+#: target.c:2019
 #, possible-c-format
 msgid "Symbols from \"%s\".\n"
 msgstr ""
 
-#: target.c:1966
+#: target.c:2030
 msgid "\tWhile running this, GDB does not access memory from...\n"
 msgstr ""
 
-#: target.c:2053
+#: target.c:2117
 msgid "Program not killed."
 msgstr ""
 
-#: target.c:2211
+#: target.c:2275
 msgid "could not find a target to follow fork"
 msgstr ""
 
-#: target.c:2234
+#: target.c:2298
 msgid "could not find a target to follow mourn inferior"
 msgstr ""
 
-#: target.c:2285
+#: target.c:2349
 msgid "Unable to allocate memory to perform the search."
 msgstr ""
 
-#: target.c:2293 target.c:2348
+#: target.c:2357 target.c:2412
 #, possible-c-format
 msgid "Unable to access %s bytes of target memory at %s, halting search."
 msgstr ""
 
-#: target.c:2434
+#: target.c:2498
 #, possible-c-format
 msgid ""
 "The \"%s\" target does not support \"run\".  Try \"help target\" or "
@@ -25961,199 +25961,199 @@ msgstr ""
 #. This function is only called if the target is running.  In that
 #. case there should have been a process_stratum target and it
 #. should either know how to create inferiors, or not...
-#: target.c:2442
+#: target.c:2506
 msgid "No targets found"
 msgstr ""
 
-#: target.c:2454
+#: target.c:2518
 #, possible-c-format
 msgid "Whether GDB may automatically connect to the native target is %s.\n"
 msgstr ""
 
-#: target.c:2493
+#: target.c:2557
 #, possible-c-format
 msgid "Don't know how to %s.  Try \"help target\"."
 msgstr ""
 
-#: target.c:2627
+#: target.c:2691
 #, possible-c-format
 msgid "Can't determine the current address space of thread %s\n"
 msgstr ""
 
-#: target.c:2943
+#: target.c:3007
 #, possible-c-format
 msgid "target file %s contained unexpected null characters"
 msgstr ""
 
-#: target.c:3069 target.c:3078
+#: target.c:3133 target.c:3142
 msgid "Command not implemented for this target."
 msgstr ""
 
-#: target.c:3152
+#: target.c:3216
 msgid "May not interrupt or stop the target, ignoring attempt"
 msgstr ""
 
-#: target.c:3266
+#: target.c:3330
 #, possible-c-format
 msgid "Writing to registers is not allowed (regno %d)"
 msgstr ""
 
-#: target.c:4086
+#: target.c:4150
 msgid "\"monitor\" command not supported by this target."
 msgstr ""
 
-#: target.c:4103
+#: target.c:4167
 msgid "The current target stack is:\n"
 msgstr ""
 
-#: target.c:4138
+#: target.c:4202
 #, possible-c-format
 msgid "Controlling the inferior in asynchronous mode is %s.\n"
 msgstr ""
 
-#: target.c:4207
+#: target.c:4271
 msgid "Set target debugging."
 msgstr ""
 
-#: target.c:4208
+#: target.c:4272
 msgid "Show target debugging."
 msgstr ""
 
-#: target.c:4209
+#: target.c:4273
 msgid ""
 "When non-zero, target debugging is enabled.  Higher numbers are more\n"
 "verbose.  Changes do not take effect until the next \"run\" or \"target\"\n"
 "command."
 msgstr ""
 
-#: target.c:4218
+#: target.c:4282
 msgid "Set mode for reading from readonly sections."
 msgstr ""
 
-#: target.c:4219
+#: target.c:4283
 msgid "Show mode for reading from readonly sections."
 msgstr ""
 
-#: target.c:4220
+#: target.c:4284
 msgid ""
 "When this mode is on, memory reads from readonly sections (such as .text)\n"
 "will be read from the object file instead of from the target.  This will\n"
 "result in significant performance improvement for remote targets."
 msgstr ""
 
-#: target.c:4229
+#: target.c:4293
 msgid "Send a command to the remote monitor (remote targets only)."
 msgstr ""
 
-#: target.c:4232
+#: target.c:4296
 msgid "Print the name of each layer of the internal target stack."
 msgstr ""
 
-#: target.c:4236
+#: target.c:4300
 msgid "Set whether gdb controls the inferior in asynchronous mode."
 msgstr ""
 
-#: target.c:4237
+#: target.c:4301
 msgid "Show whether gdb controls the inferior in asynchronous mode."
 msgstr ""
 
-#: target.c:4238
+#: target.c:4302
 msgid "Tells gdb whether to control the inferior in asynchronous mode."
 msgstr ""
 
-#: target.c:4246
+#: target.c:4310
 msgid "Set permission to write into registers."
 msgstr ""
 
-#: target.c:4247
+#: target.c:4311
 msgid "Show permission to write into registers."
 msgstr ""
 
-#: target.c:4248
+#: target.c:4312
 msgid ""
 "When this permission is on, GDB may write into the target's registers.\n"
 "Otherwise, any sort of write attempt will result in an error."
 msgstr ""
 
-#: target.c:4255
+#: target.c:4319
 msgid "Set permission to write into target memory."
 msgstr ""
 
-#: target.c:4256
+#: target.c:4320
 msgid "Show permission to write into target memory."
 msgstr ""
 
-#: target.c:4257
+#: target.c:4321
 msgid ""
 "When this permission is on, GDB may write into the target's memory.\n"
 "Otherwise, any sort of write attempt will result in an error."
 msgstr ""
 
-#: target.c:4264
+#: target.c:4328
 msgid "Set permission to insert breakpoints in the target."
 msgstr ""
 
-#: target.c:4265
+#: target.c:4329
 msgid "Show permission to insert breakpoints in the target."
 msgstr ""
 
-#: target.c:4266
+#: target.c:4330
 msgid ""
 "When this permission is on, GDB may insert breakpoints in the program.\n"
 "Otherwise, any sort of insertion attempt will result in an error."
 msgstr ""
 
-#: target.c:4273
+#: target.c:4337
 msgid "Set permission to insert tracepoints in the target."
 msgstr ""
 
-#: target.c:4274
+#: target.c:4338
 msgid "Show permission to insert tracepoints in the target."
 msgstr ""
 
-#: target.c:4275
+#: target.c:4339
 msgid ""
 "When this permission is on, GDB may insert tracepoints in the program.\n"
 "Otherwise, any sort of insertion attempt will result in an error."
 msgstr ""
 
-#: target.c:4282
+#: target.c:4346
 msgid "Set permission to insert fast tracepoints in the target."
 msgstr ""
 
-#: target.c:4283
+#: target.c:4347
 msgid "Show permission to insert fast tracepoints in the target."
 msgstr ""
 
-#: target.c:4284
+#: target.c:4348
 msgid ""
 "When this permission is on, GDB may insert fast tracepoints.\n"
 "Otherwise, any sort of insertion attempt will result in an error."
 msgstr ""
 
-#: target.c:4291
+#: target.c:4355
 msgid "Set permission to interrupt or signal the target."
 msgstr ""
 
-#: target.c:4292
+#: target.c:4356
 msgid "Show permission to interrupt or signal the target."
 msgstr ""
 
-#: target.c:4293
+#: target.c:4357
 msgid ""
 "When this permission is on, GDB may interrupt/stop the target's execution.\n"
 "Otherwise, any attempt to interrupt or stop will be ignored."
 msgstr ""
 
-#: target.c:4300
+#: target.c:4364
 msgid "Set whether GDB may automatically connect to the native target."
 msgstr ""
 
-#: target.c:4301
+#: target.c:4365
 msgid "Show whether GDB may automatically connect to the native target."
 msgstr ""
 
-#: target.c:4302
+#: target.c:4366
 msgid ""
 "When on, and GDB is not connected to a target yet, GDB\n"
 "attempts \"run\" and other commands with the native target."
@@ -26322,216 +26322,216 @@ msgstr ""
 msgid "Whether to confirm potentially dangerous operations is %s.\n"
 msgstr ""
 
-#: top.c:458
+#: top.c:475
 msgid "That is not a command, just a help topic."
 msgstr ""
 
-#: top.c:688
+#: top.c:696
 #, possible-c-format
 msgid "Saving of the history record on exit is %s.\n"
 msgstr ""
 
-#: top.c:700
+#: top.c:708
 #, possible-c-format
 msgid "The size of the command history is %s.\n"
 msgstr ""
 
-#: top.c:709
+#: top.c:717
 #, possible-c-format
 msgid "The filename in which to record the command history is \"%s\".\n"
 msgstr ""
 
-#: top.c:1142
+#: top.c:1157
 msgid ""
 "\n"
 "For bug reporting instructions, please see:\n"
 msgstr ""
 
-#: top.c:1146
+#: top.c:1161
 msgid ""
 "Find the GDB manual and other documentation resources online at:\n"
 "<http://www.gnu.org/software/gdb/documentation/>.\n"
 msgstr ""
 
-#: top.c:1148
+#: top.c:1163
 msgid "For help, type \"help\".\n"
 msgstr ""
 
-#: top.c:1149
+#: top.c:1164
 msgid "Type \"apropos word\" to search for commands related to \"word\"."
 msgstr ""
 
-#: top.c:1157
+#: top.c:1172
 #, possible-c-format
 msgid ""
 "This GDB was configured as follows:\n"
 "   configure --host=%s --target=%s\n"
 msgstr ""
 
-#: top.c:1161
+#: top.c:1176
 #, possible-c-format
 msgid ""
 "             --with-auto-load-dir=%s\n"
 "             --with-auto-load-safe-path=%s\n"
 msgstr ""
 
-#: top.c:1166
+#: top.c:1181
 msgid "             --with-expat\n"
 msgstr ""
 
-#: top.c:1170
+#: top.c:1185
 msgid "             --without-expat\n"
 msgstr ""
 
-#: top.c:1175
+#: top.c:1190
 #, possible-c-format
 msgid "             --with-gdb-datadir=%s%s\n"
 msgstr ""
 
-#: top.c:1179
+#: top.c:1194
 #, possible-c-format
 msgid "             --with-iconv-bin=%s%s\n"
 msgstr ""
 
-#: top.c:1184
+#: top.c:1199
 #, possible-c-format
 msgid "             --with-jit-reader-dir=%s%s\n"
 msgstr ""
 
-#: top.c:1188
+#: top.c:1203
 msgid "             --with-libunwind-ia64\n"
 msgstr ""
 
-#: top.c:1192
+#: top.c:1207
 msgid "             --without-libunwind-ia64\n"
 msgstr ""
 
-#: top.c:1197
+#: top.c:1212
 msgid "             --with-lzma\n"
 msgstr ""
 
-#: top.c:1201
+#: top.c:1216
 msgid "             --without-lzma\n"
 msgstr ""
 
-#: top.c:1206
+#: top.c:1221
 #, possible-c-format
 msgid "             --with-python=%s%s\n"
 msgstr ""
 
-#: top.c:1211
+#: top.c:1226
 msgid "             --with-guile\n"
 msgstr ""
 
-#: top.c:1215
+#: top.c:1230
 msgid "             --without-guile\n"
 msgstr ""
 
-#: top.c:1220
+#: top.c:1235
 #, possible-c-format
 msgid "             --with-relocated-sources=%s\n"
 msgstr ""
 
-#: top.c:1225
+#: top.c:1240
 #, possible-c-format
 msgid "             --with-separate-debug-dir=%s%s\n"
 msgstr ""
 
-#: top.c:1229
+#: top.c:1244
 #, possible-c-format
 msgid "             --with-sysroot=%s%s\n"
 msgstr ""
 
-#: top.c:1233
+#: top.c:1248
 #, possible-c-format
 msgid "             --with-system-gdbinit=%s%s\n"
 msgstr ""
 
-#: top.c:1237
+#: top.c:1252
 msgid "             --with-zlib\n"
 msgstr ""
 
-#: top.c:1241
+#: top.c:1256
 msgid "             --without-zlib\n"
 msgstr ""
 
-#: top.c:1246
+#: top.c:1261
 msgid "             --with-babeltrace\n"
 msgstr ""
 
-#: top.c:1250
+#: top.c:1265
 msgid "             --without-babeltrace\n"
 msgstr ""
 
 #. We assume "relocatable" will be printed at least once, thus we always
 #. print this text.  It's a reasonably safe assumption for now.
-#: top.c:1256
+#: top.c:1271
 msgid ""
 "\n"
 "(\"Relocatable\" means the directory can be moved with the GDB installation\n"
 "tree, and GDB will still find it.)\n"
 msgstr ""
 
-#: top.c:1337
+#: top.c:1352
 #, possible-c-format
 msgid "\tInferior %d [%s] will be detached.\n"
 msgstr ""
 
-#: top.c:1341
+#: top.c:1356
 #, possible-c-format
 msgid "\tInferior %d [%s] will be killed.\n"
 msgstr ""
 
-#: top.c:1366
+#: top.c:1381
 msgid ""
 "A debugging session is active.\n"
 "\n"
 msgstr ""
 
-#: top.c:1368
+#: top.c:1383
 msgid ""
 "\n"
 "Quit anyway? "
 msgstr ""
 
-#: top.c:1573
+#: top.c:1588
 msgid "\"set history\" must be followed by the name of a history subcommand.\n"
 msgstr ""
 
-#: top.c:1666
+#: top.c:1681
 #, possible-c-format
 msgid "Gdb's prompt is \"%s\".\n"
 msgstr ""
 
-#: top.c:1673
+#: top.c:1688
 #, possible-c-format
 msgid "Editing of command lines as they are typed is %s.\n"
 msgstr ""
 
-#: top.c:1682
+#: top.c:1697
 #, possible-c-format
 msgid "Annotation_level is %s.\n"
 msgstr ""
 
-#: top.c:1689
+#: top.c:1704
 #, possible-c-format
 msgid "Notification of completion for asynchronous execution commands is %s.\n"
 msgstr ""
 
-#: top.c:1712
+#: top.c:1727
 #, possible-c-format
 msgid "GDB's data directory is \"%s\".\n"
 msgstr ""
 
-#: top.c:1757
+#: top.c:1772
 msgid "Set gdb's prompt"
 msgstr ""
 
-#: top.c:1758
+#: top.c:1773
 msgid "Show gdb's prompt"
 msgstr ""
 
-#: top.c:1763
+#: top.c:1778
 msgid ""
 "Don't repeat this command.\n"
 "Primarily used inside of user-defined commands that should not be repeated "
@@ -26539,44 +26539,44 @@ msgid ""
 "hitting return."
 msgstr ""
 
-#: top.c:1769
+#: top.c:1784
 msgid "Set editing of command lines as they are typed."
 msgstr ""
 
-#: top.c:1770
+#: top.c:1785
 msgid "Show editing of command lines as they are typed."
 msgstr ""
 
-#: top.c:1771
+#: top.c:1786
 msgid ""
 "Use \"on\" to enable the editing, and \"off\" to disable it.\n"
 "Without an argument, command line editing is enabled.  To edit, use\n"
 "EMACS-like or VI-like commands like control-P or ESC."
 msgstr ""
 
-#: top.c:1779
+#: top.c:1794
 msgid "Set saving of the history record on exit."
 msgstr ""
 
-#: top.c:1780
+#: top.c:1795
 msgid "Show saving of the history record on exit."
 msgstr ""
 
-#: top.c:1781
+#: top.c:1796
 msgid ""
 "Use \"on\" to enable the saving, and \"off\" to disable it.\n"
 "Without an argument, saving is enabled."
 msgstr ""
 
-#: top.c:1788
+#: top.c:1803
 msgid "Set the size of the command history,"
 msgstr ""
 
-#: top.c:1789
+#: top.c:1804
 msgid "Show the size of the command history,"
 msgstr ""
 
-#: top.c:1790
+#: top.c:1805
 msgid ""
 "ie. the number of previous commands to keep a record of.\n"
 "If set to \"unlimited\", the number of commands kept in the history\n"
@@ -26584,61 +26584,61 @@ msgid ""
 "variable \"HISTSIZE\", or to 256 if this variable is not set."
 msgstr ""
 
-#: top.c:1799
+#: top.c:1814
 msgid "Set the filename in which to record the command history"
 msgstr ""
 
-#: top.c:1800
+#: top.c:1815
 msgid "Show the filename in which to record the command history"
 msgstr ""
 
-#: top.c:1801
+#: top.c:1816
 msgid "(the list of previous commands of which a record is kept)."
 msgstr ""
 
-#: top.c:1807
+#: top.c:1822
 msgid "Set whether to confirm potentially dangerous operations."
 msgstr ""
 
-#: top.c:1808
+#: top.c:1823
 msgid "Show whether to confirm potentially dangerous operations."
 msgstr ""
 
-#: top.c:1814
+#: top.c:1829
 msgid "Set annotation_level."
 msgstr ""
 
-#: top.c:1815
+#: top.c:1830
 msgid "Show annotation_level."
 msgstr ""
 
-#: top.c:1816
+#: top.c:1831
 msgid ""
 "0 == normal;     1 == fullname (for use when running under emacs)\n"
 "2 == output annotated suitably for use by programs that control GDB."
 msgstr ""
 
-#: top.c:1824
+#: top.c:1839
 msgid "Set notification of completion for asynchronous execution commands."
 msgstr ""
 
-#: top.c:1825
+#: top.c:1840
 msgid "Show notification of completion for asynchronous execution commands."
 msgstr ""
 
-#: top.c:1826
+#: top.c:1841
 msgid "Use \"on\" to enable the notification, and \"off\" to disable it."
 msgstr ""
 
-#: top.c:1833
+#: top.c:1848
 msgid "Set GDB's data directory."
 msgstr ""
 
-#: top.c:1834
+#: top.c:1849
 msgid "Show GDB's data directory."
 msgstr ""
 
-#: top.c:1835
+#: top.c:1850
 msgid "When set, GDB uses the specified path to search for data files."
 msgstr ""
 
index 557e1681c627186f17e767d634e99407b5b6b3a0..8c6eee2170ce4ea03b658fe94147f99df799e4b8 100644 (file)
@@ -81,7 +81,8 @@ PYTHONDIR = os.path.dirname(os.path.dirname(__file__))
 
 packages = [
     'function',
-    'command'
+    'command',
+    'printer'
 ]
 
 # pkgutil.iter_modules is not available prior to Python 2.6.  Instead,
diff --git a/gdb/python/lib/gdb/command/bound_registers.py b/gdb/python/lib/gdb/command/bound_registers.py
deleted file mode 100644 (file)
index 24d4c45..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# Pretty-printer utilities.
-# Copyright (C) 2013-2014 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-import gdb.printing
-
-class BoundPrinter:
-    """Adds size field to a _rawbound128 type."""
-
-    def __init__ (self, val):
-        self.val = val
-
-    def to_string (self):
-        upper = self.val["ubound"]
-        lower = self.val["lbound"]
-        size  = (long) ((upper) - (lower))
-        if size > -1:
-            size = size + 1
-        result = '{lbound = %s, ubound = %s} : size %s' % (lower, upper, size)
-        return result
-
-# There are two pattern matching used: first one is related to a library
-# second is related to the type. Since we are displaying a register all
-# libraries are accepted. Type to be processed is the same present
-# in the xml file.
-
-def build_pretty_printer ():
-    pp = gdb.printing.RegexpCollectionPrettyPrinter (".*")
-    pp.add_printer ('bound', '^__gdb_builtin_type_bound128', BoundPrinter)
-    return pp
-
-gdb.printing.register_pretty_printer (gdb.current_objfile (),
-                                      build_pretty_printer ())
index 55cc81f896870921b5c761d32d120165a458a051..206313e8f2cf5dee3804129e039730d040181684 100644 (file)
@@ -140,7 +140,7 @@ def print_xm_info(xm_dict, name_re):
 
 def set_xm_status1(xm_dict, name_re, status):
     """Set the status (enabled/disabled) of a dictionary of xmethods."""
-    for locus_str, matchers in xm_dict.iteritems():
+    for locus_str, matchers in xm_dict.items():
         for matcher in matchers:
             if not name_re:
                 # If the name regex is missing, then set the status of the
diff --git a/gdb/python/lib/gdb/printer/__init__.py b/gdb/python/lib/gdb/printer/__init__.py
new file mode 100644 (file)
index 0000000..04c0c7d
--- /dev/null
@@ -0,0 +1,14 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
diff --git a/gdb/python/lib/gdb/printer/bound_registers.py b/gdb/python/lib/gdb/printer/bound_registers.py
new file mode 100644 (file)
index 0000000..25e6e80
--- /dev/null
@@ -0,0 +1,36 @@
+# Pretty-printers for bounds registers.
+# Copyright (C) 2013-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import gdb.printing
+
+class MpxBound128Printer:
+    """Adds size field to a mpx __gdb_builtin_type_bound128 type."""
+
+    def __init__ (self, val):
+        self.val = val
+
+    def to_string (self):
+        upper = self.val["ubound"]
+        lower = self.val["lbound"]
+        size  = (long) ((upper) - (lower))
+        if size > -1:
+            size = size + 1
+        result = '{lbound = %s, ubound = %s} : size %s' % (lower, upper, size)
+        return result
+
+gdb.printing.add_builtin_pretty_printer ('mpx_bound128',
+                                         '^__gdb_builtin_type_bound128',
+                                         MpxBound128Printer)
index 2940b939056e956e9629d13614255079286870e9..ff5250a8093608e37b56c4733323b42aa8bc5011 100644 (file)
@@ -263,3 +263,17 @@ class FlagEnumerationPrinter(PrettyPrinter):
             return _EnumInstance(self.enumerators, val)
         else:
             return None
+
+
+# Builtin pretty-printers.
+# The set is defined as empty, and files in printing/*.py add their printers
+# to this with add_builtin_pretty_printer.
+
+_builtin_pretty_printers = RegexpCollectionPrettyPrinter("builtin")
+
+register_pretty_printer(None, _builtin_pretty_printers)
+
+# Add a builtin pretty-printer.
+
+def add_builtin_pretty_printer(name, regexp, printer):
+    _builtin_pretty_printers.add_printer(name, regexp, printer)
index 9db83c702191d2febcfb27261d5eec9684b8101e..d53282f561ecc3238cd7a4c1b2518d41f4faeb27 100644 (file)
@@ -365,9 +365,12 @@ py_print_single_arg (struct ui_out *out,
 {
   struct value *val;
   volatile struct gdb_exception except;
+  enum ext_lang_bt_status retval = EXT_LANG_BT_OK;
 
   if (fa != NULL)
     {
+      if (fa->val == NULL && fa->error == NULL)
+       return EXT_LANG_BT_OK;
       language = language_def (SYMBOL_LANGUAGE (fa->sym));
       val = fa->val;
     }
@@ -433,16 +436,18 @@ py_print_single_arg (struct ui_out *out,
       /* For MI print the type, but only for simple values.  This seems
         weird, but this is how MI choose to format the various output
         types.  */
-      if (args_type == MI_PRINT_SIMPLE_VALUES)
+      if (args_type == MI_PRINT_SIMPLE_VALUES && val != NULL)
        {
          if (py_print_type (out, val) == EXT_LANG_BT_ERROR)
            {
+             retval = EXT_LANG_BT_ERROR;
              do_cleanups (cleanups);
-             goto error;
+             continue;
            }
        }
 
-      annotate_arg_value (value_type (val));
+      if (val != NULL)
+       annotate_arg_value (value_type (val));
 
       /* If the output is to the CLI, and the user option "set print
         frame-arguments" is set to none, just output "...".  */
@@ -454,27 +459,25 @@ py_print_single_arg (struct ui_out *out,
             for the case of MI_PRINT_NO_VALUES.  */
          if (args_type != NO_VALUES)
            {
-             if (py_print_value (out, val, opts, 0, args_type, language)
-                 == EXT_LANG_BT_ERROR)
+             if (val == NULL)
                {
-                 do_cleanups (cleanups);
-                 goto error;
+                 gdb_assert (fa != NULL && fa->error != NULL);
+                 ui_out_field_fmt (out, "value",
+                                   _("<error reading variable: %s>"),
+                                   fa->error);
                }
+             else if (py_print_value (out, val, opts, 0, args_type, language)
+                      == EXT_LANG_BT_ERROR)
+               retval = EXT_LANG_BT_ERROR;
            }
        }
 
       do_cleanups (cleanups);
     }
   if (except.reason < 0)
-    {
-      gdbpy_convert_exception (except);
-      goto error;
-    }
-
-  return EXT_LANG_BT_OK;
+    gdbpy_convert_exception (except);
 
- error:
-  return EXT_LANG_BT_ERROR;
+  return retval;
 }
 
 /* Helper function to loop over frame arguments provided by the
index 2743e3834a68665def6abe14d72e5a5ff5c11fe7..e219f9a29b90d90fd46dd4543670dc14a3e036e3 100644 (file)
@@ -482,6 +482,43 @@ target_load (char *arg, int from_tty)
   (*current_target.to_load) (&current_target, arg, from_tty);
 }
 
+/* Possible terminal states.  */
+
+enum terminal_state
+  {
+    /* The inferior's terminal settings are in effect.  */
+    terminal_is_inferior = 0,
+
+    /* Some of our terminal settings are in effect, enough to get
+       proper output.  */
+    terminal_is_ours_for_output = 1,
+
+    /* Our terminal settings are in effect, for output and input.  */
+    terminal_is_ours = 2
+  };
+
+static enum terminal_state terminal_state;
+
+/* See target.h.  */
+
+void
+target_terminal_init (void)
+{
+  (*current_target.to_terminal_init) (&current_target);
+
+  terminal_state = terminal_is_ours;
+}
+
+/* See target.h.  */
+
+int
+target_terminal_is_inferior (void)
+{
+  return (terminal_state == terminal_is_inferior);
+}
+
+/* See target.h.  */
+
 void
 target_terminal_inferior (void)
 {
@@ -492,9 +529,36 @@ target_terminal_inferior (void)
   if (target_can_async_p () && !sync_execution)
     return;
 
+  if (terminal_state == terminal_is_inferior)
+    return;
+
   /* If GDB is resuming the inferior in the foreground, install
      inferior's terminal modes.  */
   (*current_target.to_terminal_inferior) (&current_target);
+  terminal_state = terminal_is_inferior;
+}
+
+/* See target.h.  */
+
+void
+target_terminal_ours (void)
+{
+  if (terminal_state == terminal_is_ours)
+    return;
+
+  (*current_target.to_terminal_ours) (&current_target);
+  terminal_state = terminal_is_ours;
+}
+
+/* See target.h.  */
+
+void
+target_terminal_ours_for_output (void)
+{
+  if (terminal_state != terminal_is_inferior)
+    return;
+  (*current_target.to_terminal_ours_for_output) (&current_target);
+  terminal_state = terminal_is_ours_for_output;
 }
 
 static void
index cd5a79962d468b16fbfb2c0e647558aa7f30031a..c88da4987eb8a16a211ae6cdc73971e2670a1eca 100644 (file)
@@ -1356,34 +1356,33 @@ extern int target_insert_breakpoint (struct gdbarch *gdbarch,
 extern int target_remove_breakpoint (struct gdbarch *gdbarch,
                                     struct bp_target_info *bp_tgt);
 
+/* Returns true if the terminal settings of the inferior are in
+   effect.  */
+
+extern int target_terminal_is_inferior (void);
+
 /* Initialize the terminal settings we record for the inferior,
    before we actually run the inferior.  */
 
-#define target_terminal_init() \
-     (*current_target.to_terminal_init) (&current_target)
+extern void target_terminal_init (void);
 
 /* Put the inferior's terminal settings into effect.
    This is preparation for starting or resuming the inferior.  */
 
 extern void target_terminal_inferior (void);
 
-/* Put some of our terminal settings into effect,
-   enough to get proper results from our output,
-   but do not change into or out of RAW mode
-   so that no input is discarded.
-
-   After doing this, either terminal_ours or terminal_inferior
-   should be called to get back to a normal state of affairs.  */
+/* Put some of our terminal settings into effect, enough to get proper
+   results from our output, but do not change into or out of RAW mode
+   so that no input is discarded.  This is a no-op if terminal_ours
+   was most recently called.  */
 
-#define target_terminal_ours_for_output() \
-     (*current_target.to_terminal_ours_for_output) (&current_target)
+extern void target_terminal_ours_for_output (void);
 
 /* Put our terminal settings into effect.
    First record the inferior's terminal settings
    so they can be restored properly later.  */
 
-#define target_terminal_ours() \
-     (*current_target.to_terminal_ours) (&current_target)
+extern void target_terminal_ours (void);
 
 /* Save our terminal settings.
    This is called from TUI after entering or leaving the curses
index 465fdf4346625c8576feb973184b81bcc9e8c12d..ab45b909fd0c0043d97390917c6ab9021ae4da26 100644 (file)
@@ -1,3 +1,95 @@
+2014-10-29  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17408
+       * gdb.threads/schedlock.c (some_function): New function.
+       (call_function): New global.
+       (MAYBE_CALL_SOME_FUNCTION): New macro.
+       (thread_function): Call it.
+       * gdb.threads/schedlock.exp (get_args): Add description parameter,
+       and use it instead of a global counter.  Adjust all callers.
+       (get_current_thread): Use "find current thread" for test message
+       here rather than having all callers pass down the same string.
+       (goto_loop): New procedure, factored out from ...
+       (my_continue): ... this.
+       (step_ten_loops): Change parameter from test message to command to
+       use.  Adjust.
+       (list_count): Delete global.
+       (check_result): New procedure, factored out from duplicate top
+       level code.
+       (continue tests): Wrap in with_test_prefix.
+       (test_step): New procedure, factored out from duplicate top level
+       code.
+       (top level): Test "step" in combination with all scheduler-locking
+       modes.  Test "next" in combination with all scheduler-locking
+       modes, and in combination with stepping over a function call or
+       not.
+       * gdb.threads/next-bp-other-thread.c: New file.
+       * gdb.threads/next-bp-other-thread.exp: New file.
+
+2014-10-29  Pedro Alves  <palves@redhat.com>
+
+       PR python/17372
+       * gdb.python/python.exp: Test a multi-line command that spawns
+       interactive Python.
+       * gdb.base/multi-line-starts-subshell.exp: New file.
+
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17471
+       * gdb.base/bg-execution-repeat.c: New file.
+       * gdb.base/bg-execution-repeat.exp: New file.
+
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17300
+       * gdb.base/continue-all-already-running.c: New file.
+       * gdb.base/continue-all-already-running.exp: New file.
+
+2014-10-17  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17472
+       * gdb.base/annota-input-while-running.c: New file.
+       * gdb.base/annota-input-while-running.exp: New file.
+
+2014-09-11  Pedro Alves  <palves@redhat.com>
+
+       PR gdb/17347
+       * lib/gdb.exp (gdb_spawn_with_cmdline_opts): New procedure.
+       * gdb.base/attach.exp (test_command_line_attach_run): New
+       procedure.
+       (top level): Call it.
+
+2014-09-11  Pedro Alves  <palves@redhat.com>
+
+       * lib/gdb.exp (spawn_wait_for_attach): New procedure.
+       * gdb.base/attach.exp (do_attach_tests, do_call_attach_tests)
+       (do_command_attach_tests): Use spawn_wait_for_attach.
+       * gdb.base/solib-overlap.exp: Likewise.
+       * gdb.multi/multi-attach.exp: Likewise.
+       * gdb.python/py-prompt.exp: Likewise.
+       * gdb.python/py-sync-interp.exp: Likewise.
+       * gdb.server/ext-attach.exp: Likewise.
+
+2014-09-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR python/17355
+       * gdb.python/amd64-py-framefilter-invalidarg.S: New file.
+       * gdb.python/py-framefilter-invalidarg-gdb.py.in: New file.
+       * gdb.python/py-framefilter-invalidarg.exp: New file.
+       * gdb.python/py-framefilter-invalidarg.py: New file.
+
+2014-08-30  Siva Chandra Reddy  <sivachandra@google.com>
+
+       * gdb.python/py-xmethods.py (A_getarrayind)
+       (E_method_char_worker.__call__, E_method_int_worker.__call__):
+       Use 'print' with function call syntax.
+       (E_method_matcher.match): Fix tab vs space indentation mixup.
+
+2014-08-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * gdb.threads/gcore-stale-thread.c: New file.
+       * gdb.threads/gcore-stale-thread.exp: New file.
+
 2014-07-29  Yao Qi  <yao@codesourcery.com>
 
        PR gdb/17206
diff --git a/gdb/testsuite/gdb.base/annota-input-while-running.c b/gdb/testsuite/gdb.base/annota-input-while-running.c
new file mode 100644 (file)
index 0000000..3db1399
--- /dev/null
@@ -0,0 +1,25 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <unistd.h>
+
+int
+main (void)
+{
+  sleep (5);
+  return 0; /* set break here */
+}
diff --git a/gdb/testsuite/gdb.base/annota-input-while-running.exp b/gdb/testsuite/gdb.base/annota-input-while-running.exp
new file mode 100644 (file)
index 0000000..1375718
--- /dev/null
@@ -0,0 +1,130 @@
+# Copyright 1999-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test that annotations support doesn't leave GDB's terminal settings
+# into effect when we run a foreground command.
+
+if [is_remote target] then {
+    # We cannot use runto_main because of the different prompt we get
+    # when using annotation level 2.
+    return 0
+}
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug] == -1} {
+    return -1
+}
+
+# Break at main
+
+gdb_test "break main" \
+    "Breakpoint.*at.* file .*$srcfile.*\\." \
+    "breakpoint main"
+
+# NOTE: this prompt is OK only when the annotation level is > 1
+# NOTE: When this prompt is in use the gdb_test procedure cannot be
+# used because it assumes that the last char after the gdb_prompt is a
+# white space.  This is not true with this annotated prompt.  So we
+# must use the gdb_annota_test replacement below, or
+# gdb_test_multiple.
+
+set old_gdb_prompt $gdb_prompt
+set gdb_prompt "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
+
+# Like gdb_test, but cope with the annotation prompt.
+proc gdb_annota_test {command pattern message} {
+    global gdb_prompt
+
+    gdb_test_multiple $command $message {
+       -re "$pattern$gdb_prompt$" {
+           pass "$message"
+       }
+       -re "$gdb_prompt$" {
+           fail "$message"
+       }
+    }
+}
+
+# Set the annotation level to 2.
+
+set test "annotation set at level 2"
+gdb_annota_test "set annotate 2" ".*" "annotation set at level 2"
+
+# Run to main.
+
+gdb_annota_test "run" \
+    "\r\n\032\032post-prompt.*\r\n\r\n\032\032stopped.*" \
+    "run until main breakpoint"
+
+set test "delete breakpoints"
+gdb_test_multiple "delete" $test {
+    -re "Delete all breakpoints. .y or n." {
+       send_gdb "y\n"
+       exp_continue
+    }
+    -re "$gdb_prompt$" {
+       pass $test
+    }
+}
+
+# Set the target running, and then type something.  GDB used to have a
+# bug where it'd be accepting input even though the target was
+# supposedly resumed in the foreground.  This ultimately resulted in
+# readline aborting.
+
+set linenum [gdb_get_line_number "set break here"]
+
+gdb_annota_test "break $linenum" \
+    "Breakpoint .*$srcfile, line .*" \
+    "break after sleep"
+
+# Continue, and wait a bit to make sure the inferior really starts
+# running.  Wait less than much the program sleeps, which is 5
+# seconds, though.
+set saw_continuing 0
+set test "continue"
+gdb_test_multiple $test $test {
+    -timeout 2
+    -re "Continuing\\." {
+       set saw_continuing 1
+       exp_continue
+    }
+    timeout {
+       gdb_assert $saw_continuing $test
+    }
+}
+
+# Type something.
+send_gdb "print 1\n"
+
+# Poor buggy GDB would crash before the breakpoint was hit.
+set test "breakpoint hit"
+gdb_test_multiple "" $test {
+    -re "stopped\r\n$gdb_prompt" {
+       pass $test
+    }
+}
+
+set test "print command result"
+gdb_test_multiple "" $test {
+    -re "\r\n1\r\n\r\n\032\032value-history-end\r\n$gdb_prompt" {
+       pass $test
+    }
+}
+
+# Restore the original prompt for the rest of the testsuite.
+
+set gdb_prompt $old_gdb_prompt
index 9714c2991ead1bacac04dc64aa16ede01d112f3f..634049608e12c85e25076f3c8ee538c18b1e5a53 100644 (file)
@@ -70,13 +70,7 @@ proc do_attach_tests {} {
     # Start the program running and then wait for a bit, to be sure
     # that it can be attached to.
 
-    set testpid [eval exec $binfile &]
-    exec sleep 2
-    if { [istarget "*-*-cygwin*"] } {
-       # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
-       # different due to the way fork/exec works.
-       set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-    }
+    set testpid [spawn_wait_for_attach $binfile]
 
     # Verify that we cannot attach to nonsense.
 
@@ -279,16 +273,7 @@ proc do_attach_tests {} {
    
     remote_exec build "kill -9 ${testpid}"
 
-    # Start the program running and then wait for a bit, to be sure
-    # that it can be attached to.
-   
-    set testpid [eval exec $binfile &]
-    exec sleep 2
-    if { [istarget "*-*-cygwin*"] } {
-       # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
-       # different due to the way fork/exec works.
-       set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-    }
+    set testpid [spawn_wait_for_attach $binfile]
 
     # Verify that we can attach to the process, and find its a.out
     # when we're cd'd to some directory that doesn't contain the
@@ -335,16 +320,7 @@ proc do_call_attach_tests {} {
     global gdb_prompt
     global binfile2
     
-    # Start the program running and then wait for a bit, to be sure
-    # that it can be attached to.
-   
-    set testpid [eval exec $binfile2 &]
-    exec sleep 2
-    if { [istarget "*-*-cygwin*"] } {
-       # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
-       # different due to the way fork/exec works.
-       set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-    }
+    set testpid [spawn_wait_for_attach $binfile2]
 
     # Attach
    
@@ -397,16 +373,7 @@ proc do_command_attach_tests {} {
        return 0
     }
 
-    # Start the program running and then wait for a bit, to be sure
-    # that it can be attached to.
-
-    set testpid [eval exec $binfile &]
-    exec sleep 2
-    if { [istarget "*-*-cygwin*"] } {
-       # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
-       # different due to the way fork/exec works.
-       set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-    }
+    set testpid [spawn_wait_for_attach $binfile]
 
     gdb_exit
     if $verbose>1 then {
@@ -429,6 +396,49 @@ proc do_command_attach_tests {} {
     remote_exec build "kill -9 ${testpid}"
 }
 
+# Test ' gdb --pid PID -ex "run" '.  GDB used to have a bug where
+# "run" would run before the attach finished - PR17347.
+
+proc test_command_line_attach_run {} {
+    global gdb_prompt
+    global binfile
+
+    if ![isnative] then {
+       unsupported "commandline attach run test"
+       return 0
+    }
+
+    with_test_prefix "cmdline attach run" {
+       set testpid [spawn_wait_for_attach $binfile]
+
+       set test "run to prompt"
+       gdb_exit
+
+       set res [gdb_spawn_with_cmdline_opts \
+                    "-iex \"set height 0\" -iex \"set width 0\" --pid=$testpid -ex \"start\""]
+       if { $res != 0} {
+           fail $test
+           return $res
+       }
+       gdb_test_multiple "" $test {
+           -re {Attaching to.*Start it from the beginning\? \(y or n\) } {
+               pass $test
+           }
+       }
+
+       send_gdb "y\n"
+
+       set test "run to main"
+       gdb_test_multiple "" $test {
+           -re "Temporary breakpoint .* main .*$gdb_prompt $" {
+               pass $test
+           }
+       }
+
+       # Get rid of the process
+       remote_exec build "kill -9 ${testpid}"
+    }
+}
 
 # Start with a fresh gdb
 
@@ -453,4 +463,6 @@ do_call_attach_tests
 
 do_command_attach_tests
 
+test_command_line_attach_run
+
 return 0
diff --git a/gdb/testsuite/gdb.base/bg-execution-repeat.c b/gdb/testsuite/gdb.base/bg-execution-repeat.c
new file mode 100644 (file)
index 0000000..26ab997
--- /dev/null
@@ -0,0 +1,33 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <unistd.h>
+
+int
+foo (void)
+{
+  return 0; /* set break here */
+}
+
+int
+main (void)
+{
+  foo ();
+  sleep (5);
+  foo ();
+  return 0;
+}
diff --git a/gdb/testsuite/gdb.base/bg-execution-repeat.exp b/gdb/testsuite/gdb.base/bg-execution-repeat.exp
new file mode 100644 (file)
index 0000000..d4eb360
--- /dev/null
@@ -0,0 +1,86 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test that repeating a background command doesn't lose the "&" in the
+# repeat, turning a background command into a foreground command.  See
+# PR gdb/17471.
+
+standard_testfile
+
+if { [build_executable "failed to prepare" ${testfile} $srcfile] } {
+    return -1
+}
+
+set linenum [gdb_get_line_number "set break here"]
+
+# Run the test proper.  CONTINUE_CMD is the background continue
+# command to issue.
+
+proc test {continue_cmd} {
+    global gdb_prompt
+    global binfile
+    global linenum
+
+    clean_restart $binfile
+
+    if ![runto_main] {
+       return
+    }
+
+    gdb_breakpoint "$linenum"
+
+    set test $continue_cmd
+    gdb_test_multiple $test $test {
+       -re "Continuing\\.\r\n$gdb_prompt " {
+           # Note no end anchor.  If the breakpoint triggers soon enough
+           # enough we see further output after the prompt.
+           pass $test
+       }
+    }
+
+    # Wait for the stop.  Don't expect a prompt, as we had resumed the
+    # inferior in the background.
+    set test "breakpoint hit 1"
+    gdb_test_multiple "" $test {
+       -re "set break here" {
+           pass $test
+       }
+    }
+
+    # Trigger a repeat.  Buggy GDB used to lose the "&", making this a
+    # foreground command...
+    send_gdb "\n"
+    gdb_test "" "Continuing\\." "repeat bg command"
+
+    # ... and thus further input wouldn't be processed until the target
+    # stopped.
+    gdb_test "print 1" " = 1" "input still accepted"
+
+    # Make sure we see a stop after the print, and not before.  Don't
+    # expect a prompt, as we had resumed the inferior in the background.
+    set test "breakpoint hit 2"
+    gdb_test_multiple "" $test {
+       -re "set break here ..\r\n" {
+           pass $test
+       }
+    }
+}
+
+# Test with and without extra arguments.
+foreach cmd {"c&" "c 1&"} {
+    with_test_prefix $cmd {
+       test $cmd
+    }
+}
diff --git a/gdb/testsuite/gdb.base/continue-all-already-running.c b/gdb/testsuite/gdb.base/continue-all-already-running.c
new file mode 100644 (file)
index 0000000..a6516d5
--- /dev/null
@@ -0,0 +1,25 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <unistd.h>
+
+int
+main (void)
+{
+  sleep (10);
+  return 0; /* set break here */
+}
diff --git a/gdb/testsuite/gdb.base/continue-all-already-running.exp b/gdb/testsuite/gdb.base/continue-all-already-running.exp
new file mode 100644 (file)
index 0000000..6dde730
--- /dev/null
@@ -0,0 +1,79 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test that "c -a" doesn't leave GDB processing input, even if all
+# threads were already running.  PR gdb/17300.
+
+standard_testfile
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} $srcfile] } {
+    return -1
+}
+
+gdb_test_no_output "set non-stop on"
+
+if ![runto_main] {
+    return
+}
+
+set linenum [gdb_get_line_number "set break here"]
+gdb_breakpoint "$linenum"
+
+gdb_test "c -a&" "Continuing\\."
+
+set test "no stop"
+gdb_test_multiple "" $test {
+    -timeout 1
+    timeout {
+       pass $test
+    }
+}
+
+# Paranoia.  Check that input works after bg command.
+gdb_test "print 1" " = 1"
+
+# Continue in the foreground, and wait one second to make sure the
+# inferior really starts running.  If we get a prompt to soon (e.g.,
+# the program stops), this issues a fail.
+set saw_continuing 0
+set test "c -a"
+gdb_test_multiple "c -a" $test {
+    -timeout 1
+    -re "Continuing\\." {
+       set saw_continuing 1
+       exp_continue
+    }
+    timeout {
+       gdb_assert $saw_continuing $test
+    }
+}
+
+# Type something while the inferior is running in the foreground.
+send_gdb "print 2\n"
+
+# Poor buggy GDB would crash before the breakpoint was hit.
+set test "breakpoint hit"
+gdb_test_multiple "" $test {
+    -re "set break here ..\r\n$gdb_prompt " {
+       pass $test
+    }
+}
+
+set test "print command result"
+gdb_test_multiple "" $test {
+    -re " = 2\r\n$gdb_prompt $" {
+       pass $test
+    }
+}
diff --git a/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp b/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
new file mode 100644 (file)
index 0000000..031883f
--- /dev/null
@@ -0,0 +1,55 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test spawning a subshell from a multi-line command, where the last
+# prompt displayed is a secondary prompt.  GDB used to have a bug
+# where in this case the subshell would start with the wrong terminal
+# settings.  See PR python/17372.
+
+gdb_exit
+gdb_start
+
+# The subshell's prompt.
+set shell_prompt "gdb-subshell$ "
+set shell_prompt_re [string_to_regexp $shell_prompt]
+
+# Point HOME nowhere to avoid the shell sourcing the user's init
+# scripts.
+set shell_cmd "HOME=/dev/null PS1=\"$shell_prompt\" /bin/sh"
+
+set test "spawn subshell from multi-line"
+gdb_test_multiple "if 1\nshell ${shell_cmd}\nend" $test {
+    -re "$shell_prompt_re$" {
+       pass $test
+
+       # Now check that shell input works and that echo is enabled.
+       set test "shell input works"
+       send_gdb "echo foo\n"
+       gdb_expect {
+           -re "^echo foo\r\nfoo\r\n$shell_prompt_re$" {
+               pass $test
+           }
+           timeout {
+               fail "$test (timeout)"
+           }
+       }
+
+       # Exit the subshell, back to GDB
+       gdb_test "exit" ".*" "exit shell"
+    }
+}
+
+# Check that we restore input in GDB correctly.
+gdb_test "print 1" "^print 1\r\n.. = 1" "gdb input still works"
index 68731bec178437a726bacbc4eff4a398d3ebfd2f..7486b0715dd1f2df02f43d4111581a9cc3f719f2 100644 (file)
@@ -82,16 +82,7 @@ foreach prelink_lib1 {0x40000000 0x50000000} { with_test_prefix "$prelink_lib1"
        return -1
     }
 
-    # Start the program running and then wait for a bit, to be sure
-    # that it can be attached to.
-
-    set testpid [eval exec $binfile &]
-    sleep 2
-    if { [istarget "*-*-cygwin*"] } {
-       # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
-       # different due to the way fork/exec works.
-       set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-    }
+    set testpid [spawn_wait_for_attach $binfile]
 
     remote_exec build "mv -f ${binfile_lib1} ${binfile_lib1}-running"
     remote_exec build "mv -f ${binfile_lib2} ${binfile_lib2}-running"
index e933520e61baef3767f7c353b6a7e19d1ba6f1af..eaff2c9fc00f63f2cc3a9d06cf6eab59ad5fa0dc 100644 (file)
@@ -30,15 +30,10 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug additiona
 
 # Start the programs running and then wait for a bit, to be sure that
 # they can be attached to.
-set testpid1 [eval exec $binfile &]
-set testpid2 [eval exec $binfile &]
-exec sleep 2
-if { [istarget "*-*-cygwin*"] } {
-    # testpid{1,2} are the Cygwin PID, GDB uses the Windows PID, which might be
-    # different due to the way fork/exec works.
-    set testpid1 [ exec ps -e | gawk "{ if (\$1 == $testpid1) print \$4; }" ]
-    set testpid2 [ exec ps -e | gawk "{ if (\$1 == $testpid2) print \$4; }" ]
-}
+
+set pid_list [spawn_wait_for_attach [list $binfile $binfile]]
+set testpid1 [lindex $pid_list 0]
+set testpid2 [lindex $pid_list 1]
 
 gdb_test "attach $testpid1" \
     "Attaching to program: .*, process $testpid1.*(in|at).*" \
diff --git a/gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S b/gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S
new file mode 100644 (file)
index 0000000..3ac1b23
--- /dev/null
@@ -0,0 +1,261 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* This file is compiled from a single line
+   int main (int argc, char **argv) { return 0; }
+   using -g -dA -S -O2 and patched as #if-ed below.  */
+
+       .file   "py-framefilter-invalidarg.c"
+       .text
+.Ltext0:
+       .globl  main
+       .type   main, @function
+main:
+.LFB0:
+       .file 1 "py-framefilter-invalidarg.c"
+       # py-framefilter-invalidarg.c:1
+       .loc 1 1 0
+       .cfi_startproc
+# BLOCK 2 seq:0
+# PRED: ENTRY (FALLTHRU)
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       .cfi_offset 6, -16
+       movq    %rsp, %rbp
+       .cfi_def_cfa_register 6
+       movl    %edi, -4(%rbp)
+       movq    %rsi, -16(%rbp)
+       # py-framefilter-invalidarg.c:2
+       .loc 1 2 0
+       movl    $0, %eax
+       # py-framefilter-invalidarg.c:3
+       .loc 1 3 0
+       popq    %rbp
+       .cfi_def_cfa 7, 8
+# SUCC: EXIT [100.0%] 
+       ret
+       .cfi_endproc
+.LFE0:
+       .size   main, .-main
+.Letext0:
+       .section        .debug_info,"",@progbits
+.Ldebug_info0:
+       .long   .Le - .Ls       # Length of Compilation Unit Info
+.Ls:
+       .value  0x4     # DWARF version number
+       .long   .Ldebug_abbrev0 # Offset Into Abbrev. Section
+       .byte   0x8     # Pointer Size (in bytes)
+       .uleb128 0x1    # (DIE (0xb) DW_TAG_compile_unit)
+       .long   .LASF3  # DW_AT_producer: "GNU C 4.9.1 20140813 (Red Hat 4.9.1-7) -mtune=generic -march=x86-64 -g"
+       .byte   0x1     # DW_AT_language
+       .long   .LASF4  # DW_AT_name: "py-framefilter-invalidarg.c"
+       .long   .LASF5  # DW_AT_comp_dir: ""
+       .quad   .Ltext0 # DW_AT_low_pc
+       .quad   .Letext0-.Ltext0        # DW_AT_high_pc
+       .long   .Ldebug_line0   # DW_AT_stmt_list
+die2d:
+       .uleb128 0x2    # (DIE (0x2d) DW_TAG_subprogram)
+                       # DW_AT_external
+       .long   .LASF6  # DW_AT_name: "main"
+       .byte   0x1     # DW_AT_decl_file (py-framefilter-invalidarg.c)
+       .byte   0x1     # DW_AT_decl_line
+                       # DW_AT_prototyped
+       .long   die6b-.Ldebug_info0     # DW_AT_type
+       .quad   .LFB0   # DW_AT_low_pc
+       .quad   .LFE0-.LFB0     # DW_AT_high_pc
+       .uleb128 0x1    # DW_AT_frame_base
+       .byte   0x9c    # DW_OP_call_frame_cfa
+                       # DW_AT_GNU_all_call_sites
+die4e:
+       .uleb128 0x3    # (DIE (0x4e) DW_TAG_formal_parameter)
+       .long   .LASF0  # DW_AT_name: "argc"
+       .byte   0x1     # DW_AT_decl_file (py-framefilter-invalidarg.c)
+       .byte   0x1     # DW_AT_decl_line
+       .long   die6b-.Ldebug_info0     # DW_AT_type
+#if 0
+       .uleb128 0x2    # DW_AT_location
+       .byte   0x91    # DW_OP_fbreg
+       .sleb128 -20
+#endif
+#if 0
+       .uleb128 1f - 2f        # DW_AT_location
+2:
+       .byte   0x03    # DW_OP_addr
+       .quad 0
+1:
+#endif
+#if 1
+       .uleb128 1f - 2f        # DW_AT_location
+2:
+       .byte   0x13    # DW_OP_drop
+       .quad 0
+1:
+#endif
+die5c:
+       .uleb128 0x3    # (DIE (0x5c) DW_TAG_formal_parameter)
+       .long   .LASF1  # DW_AT_name: "argv"
+       .byte   0x1     # DW_AT_decl_file (py-framefilter-invalidarg.c)
+       .byte   0x1     # DW_AT_decl_line
+       .long   die72-.Ldebug_info0     # DW_AT_type
+       .uleb128 0x2    # DW_AT_location
+       .byte   0x91    # DW_OP_fbreg
+       .sleb128 -32
+       .byte   0       # end of children of DIE 0x2d
+die6b:
+       .uleb128 0x4    # (DIE (0x6b) DW_TAG_base_type)
+       .byte   0x4     # DW_AT_byte_size
+       .byte   0x5     # DW_AT_encoding
+       .ascii "int\0"  # DW_AT_name
+die72:
+       .uleb128 0x5    # (DIE (0x72) DW_TAG_pointer_type)
+       .byte   0x8     # DW_AT_byte_size
+       .long   die78-.Ldebug_info0     # DW_AT_type
+die78:
+       .uleb128 0x5    # (DIE (0x78) DW_TAG_pointer_type)
+       .byte   0x8     # DW_AT_byte_size
+       .long   die7e-.Ldebug_info0     # DW_AT_type
+die7e:
+       .uleb128 0x6    # (DIE (0x7e) DW_TAG_base_type)
+       .byte   0x1     # DW_AT_byte_size
+       .byte   0x6     # DW_AT_encoding
+       .long   .LASF2  # DW_AT_name: "char"
+       .byte   0       # end of children of DIE 0xb
+.Le:
+       .section        .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1    # (abbrev code)
+       .uleb128 0x11   # (TAG: DW_TAG_compile_unit)
+       .byte   0x1     # DW_children_yes
+       .uleb128 0x25   # (DW_AT_producer)
+       .uleb128 0xe    # (DW_FORM_strp)
+       .uleb128 0x13   # (DW_AT_language)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x3    # (DW_AT_name)
+       .uleb128 0xe    # (DW_FORM_strp)
+       .uleb128 0x1b   # (DW_AT_comp_dir)
+       .uleb128 0xe    # (DW_FORM_strp)
+       .uleb128 0x11   # (DW_AT_low_pc)
+       .uleb128 0x1    # (DW_FORM_addr)
+       .uleb128 0x12   # (DW_AT_high_pc)
+       .uleb128 0x7    # (DW_FORM_data8)
+       .uleb128 0x10   # (DW_AT_stmt_list)
+       .uleb128 0x17   # (DW_FORM_sec_offset)
+       .byte   0
+       .byte   0
+       .uleb128 0x2    # (abbrev code)
+       .uleb128 0x2e   # (TAG: DW_TAG_subprogram)
+       .byte   0x1     # DW_children_yes
+       .uleb128 0x3f   # (DW_AT_external)
+       .uleb128 0x19   # (DW_FORM_flag_present)
+       .uleb128 0x3    # (DW_AT_name)
+       .uleb128 0xe    # (DW_FORM_strp)
+       .uleb128 0x3a   # (DW_AT_decl_file)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x3b   # (DW_AT_decl_line)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x27   # (DW_AT_prototyped)
+       .uleb128 0x19   # (DW_FORM_flag_present)
+       .uleb128 0x49   # (DW_AT_type)
+       .uleb128 0x13   # (DW_FORM_ref4)
+       .uleb128 0x11   # (DW_AT_low_pc)
+       .uleb128 0x1    # (DW_FORM_addr)
+       .uleb128 0x12   # (DW_AT_high_pc)
+       .uleb128 0x7    # (DW_FORM_data8)
+       .uleb128 0x40   # (DW_AT_frame_base)
+       .uleb128 0x18   # (DW_FORM_exprloc)
+       .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
+       .uleb128 0x19   # (DW_FORM_flag_present)
+       .byte   0
+       .byte   0
+       .uleb128 0x3    # (abbrev code)
+       .uleb128 0x5    # (TAG: DW_TAG_formal_parameter)
+       .byte   0       # DW_children_no
+       .uleb128 0x3    # (DW_AT_name)
+       .uleb128 0xe    # (DW_FORM_strp)
+       .uleb128 0x3a   # (DW_AT_decl_file)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x3b   # (DW_AT_decl_line)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x49   # (DW_AT_type)
+       .uleb128 0x13   # (DW_FORM_ref4)
+       .uleb128 0x2    # (DW_AT_location)
+       .uleb128 0x18   # (DW_FORM_exprloc)
+       .byte   0
+       .byte   0
+       .uleb128 0x4    # (abbrev code)
+       .uleb128 0x24   # (TAG: DW_TAG_base_type)
+       .byte   0       # DW_children_no
+       .uleb128 0xb    # (DW_AT_byte_size)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x3e   # (DW_AT_encoding)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x3    # (DW_AT_name)
+       .uleb128 0x8    # (DW_FORM_string)
+       .byte   0
+       .byte   0
+       .uleb128 0x5    # (abbrev code)
+       .uleb128 0xf    # (TAG: DW_TAG_pointer_type)
+       .byte   0       # DW_children_no
+       .uleb128 0xb    # (DW_AT_byte_size)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x49   # (DW_AT_type)
+       .uleb128 0x13   # (DW_FORM_ref4)
+       .byte   0
+       .byte   0
+       .uleb128 0x6    # (abbrev code)
+       .uleb128 0x24   # (TAG: DW_TAG_base_type)
+       .byte   0       # DW_children_no
+       .uleb128 0xb    # (DW_AT_byte_size)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x3e   # (DW_AT_encoding)
+       .uleb128 0xb    # (DW_FORM_data1)
+       .uleb128 0x3    # (DW_AT_name)
+       .uleb128 0xe    # (DW_FORM_strp)
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_aranges,"",@progbits
+       .long   0x2c    # Length of Address Ranges Info
+       .value  0x2     # DWARF Version
+       .long   .Ldebug_info0   # Offset of Compilation Unit Info
+       .byte   0x8     # Size of Address
+       .byte   0       # Size of Segment Descriptor
+       .value  0       # Pad to 16 byte boundary
+       .value  0
+       .quad   .Ltext0 # Address
+       .quad   .Letext0-.Ltext0        # Length
+       .quad   0
+       .quad   0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_str,"MS",@progbits,1
+.LASF1:
+       .string "argv"
+.LASF4:
+       .string "py-framefilter-invalidarg.c"
+.LASF5:
+       .string ""
+.LASF0:
+       .string "argc"
+.LASF3:
+       .string "GNU C 4.9.1 20140813 (Red Hat 4.9.1-7) -mtune=generic -march=x86-64 -g"
+.LASF6:
+       .string "main"
+.LASF2:
+       .string "char"
+       .ident  "GCC: (GNU) 4.9.1 20140813 (Red Hat 4.9.1-7)"
+       .section        .note.GNU-stack,"",@progbits
diff --git a/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in b/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
new file mode 100644 (file)
index 0000000..1fa6ffc
--- /dev/null
@@ -0,0 +1,48 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the GDB testsuite.  It tests Python-based
+# frame-filters.
+import gdb
+import itertools
+from gdb.FrameDecorator import FrameDecorator
+
+
+class FrameObjFile ():
+
+    def __init__ (self):
+        self.name = "Filter1"
+        self.priority = 1
+        self.enabled = False
+        gdb.current_progspace().frame_filters ["Progspace" + self.name] = self
+        gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self
+
+    def filter (self, frame_iter):
+        return frame_iter
+
+class FrameObjFile2 ():
+
+    def __init__ (self):
+        self.name = "Filter2"
+        self.priority = 100
+        self.enabled = True
+        gdb.current_progspace().frame_filters ["Progspace" + self.name] = self
+        gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self
+
+    def filter (self, frame_iter):
+        return frame_iter
+
+FrameObjFile()
+FrameObjFile2()
diff --git a/gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp b/gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
new file mode 100644 (file)
index 0000000..f70d16e
--- /dev/null
@@ -0,0 +1,67 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+load_lib gdb-python.exp
+
+standard_testfile amd64-py-framefilter-invalidarg.S
+
+if { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
+    verbose "Skipping py-framefilter-invalidarg."
+    return
+}
+
+# We cannot use prepare_for_testing as we have to set the safe-patch
+# to check objfile and progspace printers.
+if {[build_executable $testfile.exp $testfile $srcfile {}] == -1} {
+    return -1
+}
+
+# Start with a fresh gdb.
+gdb_exit
+gdb_start
+
+# Skip all tests if Python scripting is not enabled.
+if { [skip_python_tests] } { continue }
+
+# Make the -gdb.py script available to gdb, it is automagically loaded by gdb.
+# Care is taken to put it in the same directory as the binary so that
+# gdb will find it.
+set remote_obj_python_file \
+    [remote_download \
+        host ${srcdir}/${subdir}/${testfile}-gdb.py.in \
+        [standard_output_file ${testfile}-gdb.py]]
+
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_test_no_output "set auto-load safe-path ${remote_obj_python_file}" \
+    "set auto-load safe-path"
+gdb_load ${binfile}
+# Verify gdb loaded the script.
+gdb_test "info auto-load python-scripts" "Yes.*/${testfile}-gdb.py.*" \
+    "Test auto-load had loaded python scripts"
+
+if ![runto_main] then {
+    perror "couldn't run to breakpoint"
+    return
+}
+gdb_test_no_output "set python print-stack full" \
+    "Set python print-stack to full"
+
+# Load global frame-filters
+set remote_python_file [gdb_remote_download host \
+                           ${srcdir}/${subdir}/${testfile}.py]
+gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
+    "Load python file"
+
+gdb_test "bt" " in niam \\(argc=<error reading variable: dwarf expression stack underflow>, argv=0x\[0-9a-f\]+\\) at py-framefilter-invalidarg.c:\[0-9\]+" "bt full with filters"
diff --git a/gdb/testsuite/gdb.python/py-framefilter-invalidarg.py b/gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
new file mode 100644 (file)
index 0000000..d5f92cb
--- /dev/null
@@ -0,0 +1,59 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the GDB testsuite.  It tests Python-based
+# frame-filters.
+import gdb
+import itertools
+from gdb.FrameDecorator import FrameDecorator
+import copy
+
+class Reverse_Function (FrameDecorator):
+
+    def __init__(self, fobj):
+        super(Reverse_Function, self).__init__(fobj)
+        self.fobj = fobj
+
+    def function (self):
+        fname = str (self.fobj.function())
+        if (fname == None or fname == ""):
+            return None
+        if fname == 'end_func':
+            extra = self.fobj.inferior_frame().read_var('str').string()
+        else:
+            extra = ''
+        fname = fname[::-1] + extra
+        return fname
+
+class FrameFilter ():
+
+    def __init__ (self):
+        self.name = "Reverse"
+        self.priority = 100
+        self.enabled = True
+        gdb.frame_filters [self.name] = self
+
+    def filter (self, frame_iter):
+        # Python 3.x moved the itertools.imap functionality to map(),
+        # so check if it is available.
+        if hasattr(itertools, "imap"):
+            frame_iter = itertools.imap (Reverse_Function,
+                                         frame_iter)
+        else:
+            frame_iter = map(Reverse_Function, frame_iter)
+
+        return frame_iter
+
+FrameFilter()
index ebe4cb69d81d5e8b3b8a231ac016a349b6bfb849..1c53c0355c19e8894e60b3314673b2d9a2991487 100644 (file)
@@ -80,15 +80,7 @@ gdb_test "python print (\"'\" + str(p\[0\]) + \"'\")" "'$gdb_prompt_fail '" \
         "prompt_hook argument is default prompt. 2"
 gdb_exit
 
-# Start the program running and then wait for a bit, to be sure
-# that it can be attached to.
-set testpid [eval exec $binfile &]
-exec sleep 2
-if { [istarget "*-*-cygwin*"] } {
-    # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
-    # different due to the way fork/exec works.
-    set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-}
+set testpid [spawn_wait_for_attach $binfile]
 
 set GDBFLAGS [concat $tmp_gdbflags " -ex \"set pagination off\""]
 set GDBFLAGS [concat $GDBFLAGS " -ex \"set editing on\""]
index b9b86bc9215e33b952b6cd7911b95f928447d816..d62f9661666cbafe742efb87e65a7dd6dce17c26 100644 (file)
@@ -41,15 +41,7 @@ if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
     return -1
 }
 
-# Start the program running and then wait for a bit, to be sure
-# that it can be attached to.
-set testpid [eval exec $binfile &]
-exec sleep 2
-if { [istarget "*-*-cygwin*"] } {
-    # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
-    # different due to the way fork/exec works.
-    set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-}
+set testpid [spawn_wait_for_attach $binfile]
 
 # Test command 'where' is executed when command 'attach' is done, otherwise
 # function 'sleep' may not show up in backtrace.
index 6fecf2b9e1395f5aed0577e9b83c3b4804fbcb1d..47fb00beec5b1cb108b23c3d01d3b844dcf63b8c 100644 (file)
@@ -25,22 +25,22 @@ from gdb.xmethod import SimpleXMethodMatcher
 
 
 def A_plus_A(obj, opr):
-  print ('From Python <A_plus_A>:')
+  print('From Python <A_plus_A>:')
   return obj['a'] + opr['a']
 
 
 def plus_plus_A(obj):
-  print ('From Python <plus_plus_A>:')
+  print('From Python <plus_plus_A>:')
   return obj['a'] + 1
 
 
 def A_geta(obj):
-  print ('From Python <A_geta>:')
+  print('From Python <A_geta>:')
   return obj['a']
 
 
 def A_getarrayind(obj, index):
-  print 'From Python <A_getarrayind>:'
+  print('From Python <A_getarrayind>:')
   return obj['array'][index]
 
 
@@ -61,7 +61,7 @@ class E_method_char_worker(XMethodWorker):
         return gdb.lookup_type('char')
 
     def __call__(self, obj, arg):
-        print 'From Python <E_method_char>'
+        print('From Python <E_method_char>')
         return None
 
 
@@ -73,7 +73,7 @@ class E_method_int_worker(XMethodWorker):
         return gdb.lookup_type('int')
 
     def __call__(self, obj, arg):
-        print 'From Python <E_method_int>'
+        print('From Python <E_method_int>')
         return None
 
 
@@ -86,7 +86,7 @@ class E_method_matcher(XMethodMatcher):
         class_tag = class_type.unqualified().tag
         if not re.match('^dop::E$', class_tag):
             return None
-       if not re.match('^method$', method_name):
+        if not re.match('^method$', method_name):
             return None
         workers = []
         if self.methods[0].enabled:
@@ -109,7 +109,7 @@ class G_size_diff_worker(XMethodWorker):
         pass
 
     def __call__(self, obj):
-        print ('From Python G<>::size_diff()')
+        print('From Python G<>::size_diff()')
         return (self._method_template_type.sizeof -
                 self._class_template_type.sizeof)
 
@@ -123,7 +123,7 @@ class G_size_mul_worker(XMethodWorker):
         pass
 
     def __call__(self, obj):
-        print ('From Python G<>::size_mul()')
+        print('From Python G<>::size_mul()')
         return self._class_template_type.sizeof * self._method_template_val
 
 
@@ -136,7 +136,7 @@ class G_mul_worker(XMethodWorker):
         return self._method_template_type
 
     def __call__(self, obj, arg):
-        print ('From Python G<>::mul()')
+        print('From Python G<>::mul()')
         return obj['t'] * arg
 
 
index c03c284abbd2765a90fcac33c96b74013c46e091..a7a913d43cac99751a9e892436bd69fb5d50b7a6 100644 (file)
@@ -58,6 +58,22 @@ gdb_py_test_multiple "multi-line python command" \
   "print (23)" "" \
   "end" "23"
 
+# Spawn interactive Python help from a multi-line command, thus, after
+# a secondary prompt.
+
+with_test_prefix "python interactive help" {
+    set test "python; help(); end"
+    gdb_test_multiple "python\nhelp()\nend" $test {
+       -re "online help utility.*help> $" {
+           pass $test
+
+           # The "quit" must be seen on the output.  A buggy GDB
+           # would not display it.
+           gdb_test "quit" "^quit.*leaving help.*" "quit help"
+       }
+    }
+}
+
 gdb_py_test_multiple "show python command" \
   "define zzq" "Type commands for definition of .* just \"end\"\\.*" \
   "python" "" \
index 5f7bac48dbb32c76535e21ed3920d4ac3ff07124..9baeeb732f941e9a6a9c69ca3c233e6b17aab93e 100644 (file)
@@ -44,15 +44,7 @@ gdbserver_start_extended
 
 gdb_test_no_output "set remote exec-file $target_exec" "set remote exec-file"
 
-# Start the program running and then wait for a bit, to be sure
-# that it can be attached to.
-set testpid [eval exec $binfile &]
-exec sleep 2
-if { [istarget "*-*-cygwin*"] } {
-    # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
-    # different due to the way fork/exec works.
-    set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-}
+set testpid [spawn_wait_for_attach $binfile]
 
 gdb_test "attach $testpid" \
     "Attaching to program: .*, process $testpid.*(in|at).*" \
diff --git a/gdb/testsuite/gdb.threads/gcore-stale-thread.c b/gdb/testsuite/gdb.threads/gcore-stale-thread.c
new file mode 100644 (file)
index 0000000..944acba
--- /dev/null
@@ -0,0 +1,48 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <pthread.h>
+#include <assert.h>
+
+static pthread_t main_thread;
+
+static void *
+start (void *arg)
+{
+  int i;
+
+  i = pthread_join (main_thread, NULL);
+  assert (i == 0);
+
+  return arg; /* break-here */
+}
+
+int
+main (void)
+{
+  pthread_t thread;
+  int i;
+
+  main_thread = pthread_self ();
+
+  i = pthread_create (&thread, NULL, start, NULL);
+  assert (i == 0);
+
+  pthread_exit (NULL);
+  assert (0);
+  return 0;
+}
diff --git a/gdb/testsuite/gdb.threads/gcore-stale-thread.exp b/gdb/testsuite/gdb.threads/gcore-stale-thread.exp
new file mode 100644 (file)
index 0000000..291c56f
--- /dev/null
@@ -0,0 +1,57 @@
+# Copyright 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+standard_testfile
+set corefile [standard_output_file ${testfile}.core]
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug] != ""} {
+    return -1
+}
+
+clean_restart ${testfile}
+
+gdb_test_no_output "set non-stop on"
+
+if { ! [ runto_main ] } then {
+    return -1
+}
+
+gdb_test_multiple "info threads" "threads are supported" {
+    -re ".* main .*\r\n$gdb_prompt $" {
+       # OK, threads are supported.
+    }
+    -re "\r\n$gdb_prompt $" {
+       unsupported "gdb does not support threads on this target"
+       return -1
+    }
+}
+
+gdb_breakpoint ${srcfile}:[gdb_get_line_number "break-here"]
+# gdb_continue_to_breakpoint does not work as it uses "$gdb_prompt $" regex
+# which does not work due to the output: (gdb) [Thread ... exited]
+set name "continue to breakpoint: break-here"
+gdb_test_multiple "continue" $name {
+    -re "Breakpoint .* (at|in) .* break-here .*\r\n$gdb_prompt " {
+       pass $name
+    }
+}
+
+gdb_gcore_cmd "$corefile" "save a corefile"
+
+# Do not run "info threads" before "gcore" as it could workaround the bug
+# by discarding non-current exited threads.
+gdb_test "info threads" \
+         {The current thread <Thread ID 1> has terminated\.  See `help thread'\.} \
+        "exited thread is current due to non-stop"
diff --git a/gdb/testsuite/gdb.threads/next-bp-other-thread.c b/gdb/testsuite/gdb.threads/next-bp-other-thread.c
new file mode 100644 (file)
index 0000000..e931305
--- /dev/null
@@ -0,0 +1,45 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2014 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <pthread.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+/* Always zero, used in breakpoint condition.  */
+volatile int global_zero;
+
+void *
+child_function (void *arg)
+{
+  while (1)
+    {
+      usleep (1); /* set breakpoint child here */
+    }
+
+  pthread_exit (NULL);
+}
+
+int
+main (void)
+{
+  pthread_t child_thread;
+  int res;
+
+  res = pthread_create (&child_thread, NULL, child_function, NULL);
+  sleep (2); /* set wait-thread breakpoint here */
+  exit (EXIT_SUCCESS);
+}
diff --git a/gdb/testsuite/gdb.threads/next-bp-other-thread.exp b/gdb/testsuite/gdb.threads/next-bp-other-thread.exp
new file mode 100644 (file)
index 0000000..c2361fa
--- /dev/null
@@ -0,0 +1,54 @@
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test that GDB behaves correctly when a "next" steps over a call, and
+# another thread hits a breakpoint that doesn't cause a user visible
+# stop (and so needs to be stepped over).  GDB used to trip on an
+# invalid assertion - PR17408.
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] == -1} {
+    return -1
+}
+
+# Test all "set scheduler-locking" variants.
+foreach schedlock {"off" "step" "on" } {
+    with_test_prefix "schedlock=$schedlock" {
+       clean_restart $binfile
+
+       if ![runto_main] {
+           continue
+       }
+
+       gdb_breakpoint [gdb_get_line_number "set wait-thread breakpoint here"]
+       gdb_continue_to_breakpoint "run to wait-thread breakpoint"
+       gdb_test "info threads" "2 .*\\\* 1.*" "info threads shows all threads"
+
+       delete_breakpoints
+
+       gdb_breakpoint [gdb_get_line_number "set breakpoint child here"]
+       # Give it a condition that always fails.
+       gdb_test "condition \$bpnum global_zero == 1" ".*"
+
+       gdb_test_no_output "set scheduler-locking $schedlock"
+
+       # While stepping over the sleep call, the other thread hits a
+       # breakpoint that doesn't cause a user visible stop (and so
+       # needs to be stepped over).  The next should complete as if
+       # that breakpoint never triggered.
+       gdb_test "next" "EXIT_SUCCESS.*" "next over function call"
+    }
+}
index 2d8c7ab6f447f256bd28998b7ac836943633c038..11e4bbc488f8467ff917dd74927ab9f21414584c 100644 (file)
@@ -48,6 +48,28 @@ int main() {
     exit(EXIT_SUCCESS);
 }
 
+void some_function (void) {
+  /* Sleep a bit to give the other threads a chance to run, if not
+     locked.  This also ensure that even if the compiler optimizes out
+     or inlines some_function, there's still be some function that
+     needs to be stepped over.  */
+  usleep (1);
+}
+
+/* When testing "next", this is set to have the loop call
+   some_function, which GDB should step over.  When testing "step",
+   that would step into the function, which is not what we want.  */
+volatile int call_function = 0;
+
+/* Call some_function if CALL_FUNCTION is set.  This is wrapped in a
+   macro so that it's a single source line in the main loop.  */
+#define MAYBE_CALL_SOME_FUNCTION()             \
+  do                                           \
+    {                                          \
+      if (call_function)                       \
+       some_function ();                       \
+    } while (0)
+
 void *thread_function(void *arg) {
     int my_number =  (long) arg;
     int *myp = (int *) &args[my_number];
@@ -56,7 +78,7 @@ void *thread_function(void *arg) {
     while (*myp > 0)
       {
        /* schedlock.exp: main loop.  */
-       (*myp) ++;
+       MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
       }
 
     pthread_exit(NULL);
index e10568922b995529985490efe95f72de1805146f..cd9984449a797c47c2831955abfb59a99ebc4c8e 100644 (file)
@@ -30,8 +30,10 @@ if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executab
 
 # Now we can proceed with the real testing.
 
-proc get_args { } {
-    global list_count
+# Get the current contents of the `args` array in the test program.
+# Description is appended to the test message.
+
+proc get_args { description } {
     global gdb_prompt
     global NUM
 
@@ -40,10 +42,10 @@ proc get_args { } {
        append pattern ", (\[0-9\]+)"
     }
 
-    gdb_test_multiple "print args" "listed args ($list_count)" {
+    set test "listed args ($description)"
+    gdb_test_multiple "print args" $test {
        -re "\\\$\[0-9\]+ = {$pattern}.*$gdb_prompt $" {
-           set list_count [expr $list_count + 1]
-           pass "listed args ($list_count)"
+           pass $test
 
            set result ""
            for {set i 1} {[expr $i <= $NUM]} {incr i} {
@@ -75,46 +77,62 @@ proc stop_process { description } {
 proc get_current_thread { description } {
     global gdb_prompt
 
-    gdb_test_multiple "bt" "$description" {
+    set test "find current thread ($description)"
+
+    gdb_test_multiple "bt" $test {
        -re "thread_function \\(arg=0x(\[0-9\])\\).*$gdb_prompt $" {
-           pass $description
+           pass $test
            return $expect_out(1,string)
        }
     }
     return ""
 }
 
+# Make sure we're stopped in the loop, in one of the non-main threads.
+
+proc goto_loop { msg } {
+    gdb_breakpoint [concat [gdb_get_line_number "schedlock.exp: main loop"] " if arg != 0"]
+
+    set test "return to loop"
+    if {$msg != ""} {
+       set test "$test ($msg)"
+    }
+    gdb_continue_to_breakpoint $test
+    delete_breakpoints
+}
+
 proc my_continue { msg } {
-    gdb_test_multiple "continue" "continuing ($msg)" {
+    set test "continue ($msg)"
+    gdb_test_multiple "continue" $test {
        -re "Continuing" {
-           pass "continue ($msg)"
+           pass $test
        }
     }
 
     stop_process "stop all threads ($msg)"
 
-    # Make sure we're in one of the non-main looping threads.
-    gdb_breakpoint [concat [gdb_get_line_number "schedlock.exp: main loop"] " if arg != 0"]
-    gdb_continue_to_breakpoint "return to loop ($msg)"
-    delete_breakpoints
+    goto_loop $msg
 }
 
-proc step_ten_loops { msg } {
+# Use CMD to step the loop 10 times.  CMD may be "step" or "next".
+
+proc step_ten_loops { cmd } {
     global gdb_prompt
 
     for {set i 0} {[expr $i < 10]} {set i [expr $i + 1]} {
        set other_step 0
-       gdb_test_multiple "step" "step to increment ($msg $i)" {
+       set test "$cmd to increment ($i)"
+       gdb_test_multiple $cmd $test {
            -re ".*myp\\) \\+\\+;\[\r\n\]+$gdb_prompt $" {
-               pass "step to increment ($msg $i)"
+               pass $test
            }
            -re "$gdb_prompt $" {
                if {$other_step == 0} {
                    set other_step 1
-                   send_gdb "step\n"
+                   send_gdb "$cmd\n"
                    exp_continue
                } else {
-                   fail "step to increment ($msg $i)"
+                   fail $test
                    # FIXME cascade?
                }
            }
@@ -162,15 +180,12 @@ gdb_test_multiple "set scheduler-locking off" "scheduler locking set to none" {
 gdb_breakpoint [gdb_get_line_number "schedlock.exp: last thread start"]
 gdb_continue_to_breakpoint "all threads started"
 
-global list_count
-set list_count 0
-
-set start_args [get_args]
+set start_args [get_args "before initial"]
 
 # First make sure that all threads are alive.
 my_continue "initial"
 
-set cont_args [get_args]
+set cont_args [get_args "after initial"]
 
 set bad 0
 for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
@@ -184,125 +199,122 @@ if { $bad == 0 } {
   fail "all threads alive ($bad/$NUM did not run)"
 }
 
-# We can't change threads, unfortunately, in current GDB.  Use
-# whichever we stopped in.
-set curthread [get_current_thread "find current thread (1)"]
-
-
-
+# Compare the previous thread and args with the current thread and
+# args.  Check that we didn't switch threads, and that the threads
+# incremented their args counter the amounts expected.  CMD is the
+# command being tested.  BEFORE_THREAD is the thread that was selected
+# before the command was run.  BEFORE_ARGS is the value of the
+# thread's args before the command was run.  LOCKED indicates whether
+# we expect threads other than the selected thread remained locked.
 
-# Test stepping without scheduler locking.
-gdb_test_no_output "set scheduler-locking off"
+proc check_result { cmd before_thread before_args locked } {
+    global NUM
 
-step_ten_loops "unlocked"
+    # Make sure we're still in the same thread.
+    set newthread [get_current_thread "after"]
 
-# Make sure we're still in the same thread.
-set newthread [get_current_thread "find current thread (2)"]
-if {$curthread == $newthread} {
-    pass "step without lock does not change thread"
-} else {
-    fail "step without lock does not change thread (switched to thread $newthread)"
-}
+    set test "$cmd does not change thread"
+    if {$before_thread == $newthread} {
+       pass "$test"
+    } else {
+       fail "$test (switched to thread $newthread)"
+    }
 
-set start_args $cont_args
-set cont_args [get_args]
+    set after_args [get_args "after"]
 
-set num_other_threads 0
-for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
-  if {[lindex $start_args $i] == [lindex $cont_args $i]} {
-    if {$i == $curthread} {
-      fail "current thread stepped (didn't run)"
+    set test "current thread advanced"
+    if { $locked } {
+       set test "$test - locked"
+    } else {
+       set test "$test - unlocked"
     }
-  } else {
-    if {$i == $curthread} {
-       if {[lindex $start_args $i] == [expr [lindex $cont_args $i] - 10]} {
-           pass "current thread stepped"
+
+    set num_other_threads 0
+    for {set i 0} {$i < $NUM} {incr i} {
+       if {[lindex $before_args $i] == [lindex $after_args $i]} {
+           if {$i == $before_thread} {
+               fail "$test (didn't run)"
+           }
        } else {
-           fail "current thread stepped (wrong amount)"
+           if {$i == $before_thread} {
+               if {$cmd == "continue"
+                   || [lindex $before_args $i] == [expr [lindex $after_args $i] - 10]} {
+                   pass "$test"
+               } else {
+                   fail "$test (wrong amount)"
+               }
+           } else {
+               incr num_other_threads
+           }
        }
+    }
+
+    if { $locked } {
+       gdb_assert {$num_other_threads == 0} "other threads didn't run - locked"
     } else {
-      set num_other_threads [expr $num_other_threads + 1]
+       gdb_assert {$num_other_threads > 0} "other threads ran - unlocked"
     }
-  }
-}
-if {$num_other_threads > 0} {
-  pass "other threads ran - unlocked"
-} else {
-  fail "other threads ran - unlocked"
 }
 
-# Test continue with scheduler locking
-gdb_test "set scheduler-locking on" ""
+with_test_prefix "schedlock=on: cmd=continue" {
+    # Use whichever we stopped in.
+    set curthread [get_current_thread "before"]
 
-my_continue "with lock"
+    # Test continue with scheduler locking.
+    gdb_test "set scheduler-locking on" ""
 
-# Make sure we're still in the same thread.
-set newthread [get_current_thread "find current thread (3)"]
-if {$curthread == $newthread} {
-    pass "continue with lock does not change thread"
-} else {
-    fail "continue with lock does not change thread (switched to thread $newthread)"
+    my_continue "with lock"
+
+    check_result "continue" $curthread $cont_args 1
 }
 
-set start_args $cont_args
-set cont_args [get_args]
+# Test stepping/nexting with different modes of scheduler locking.
+proc test_step { schedlock cmd call_function } {
+    global NUM
 
-set num_other_threads 0
-for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
-  if {[lindex $start_args $i] == [lindex $cont_args $i]} {
-    if {$i == $curthread} {
-      fail "current thread ran (didn't run)"
-    }
-  } else {
-    if {$i == $curthread} {
-      pass "current thread ran"
-    } else {
-      incr num_other_threads
+    gdb_test_no_output "set scheduler-locking off"
+    goto_loop ""
+
+    set curthread [get_current_thread "before"]
+
+    # No need to set to off again.  This avoids a duplicate message.
+    if {$schedlock != "off"} {
+       gdb_test_no_output "set scheduler-locking $schedlock"
     }
-  }
-}
-if {$num_other_threads > 0} {
-  fail "other threads didn't run - locked"
-} else {
-  pass "other threads didn't run - locked"
-}
 
-# Test stepping with scheduler locking
-step_ten_loops "locked"
+    gdb_test "print call_function = $call_function" \
+       " = $call_function"
 
-# Make sure we're still in the same thread.
-set newthread [get_current_thread "find current thread (2)"]
-if {$curthread == $newthread} {
-    pass "step with lock does not change thread"
-} else {
-    fail "step with lock does not change thread (switched to thread $newthread)"
-}
+    set before_args [get_args "before"]
 
-set start_args $cont_args
-set cont_args [get_args]
+    step_ten_loops $cmd
 
-set num_other_threads 0
-for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
-  if {[lindex $start_args $i] == [lindex $cont_args $i]} {
-    if {$i == $curthread} {
-      fail "current thread stepped locked (didn't run)"
-    }
-  } else {
-    if {$i == $curthread} {
-       if {[lindex $start_args $i] == [expr [lindex $cont_args $i] - 10]} {
-           pass "current thread stepped locked"
-       } else {
-           fail "current thread stepped locked (wrong amount)"
-       }
+    # "next" lets other threads run while stepping over functions.
+    if { $schedlock == "on" || ($schedlock == "step" && !$call_function) } {
+       set locked 1
     } else {
-      incr num_other_threads
+       set locked 0
     }
-  }
-}
-if {$num_other_threads > 0} {
-  fail "other threads didn't run - step locked"
-} else {
-  pass "other threads didn't run - step locked"
+
+    check_result $cmd $curthread $before_args $locked
 }
 
-return 0
+# Test stepping/nexting with different modes of scheduler locking.
+foreach schedlock {"off" "step" "on"} {
+    with_test_prefix "schedlock=$schedlock" {
+       with_test_prefix "cmd=step" {
+           test_step $schedlock "step" 0
+       }
+       with_test_prefix "cmd=next" {
+           # With "next", and schedlock "step", threads run unlocked
+           # when stepping over a function call.  This exercises both
+           # with and without a function call.  Without a function
+           # call "next" should behave just like "step".
+           foreach call_function {0 1} {
+               with_test_prefix "call_function=$call_function" {
+                   test_step $schedlock "next" $call_function
+               }
+           }
+       }
+    }
+}
index 7650d2a9753afb12cdcd00fce912a8151e463b0f..fe317183e052469d7345c8eeed36d7bcbe3fb31d 100644 (file)
@@ -3310,6 +3310,22 @@ proc gdb_spawn { } {
     default_gdb_spawn
 }
 
+# Spawn GDB with CMDLINE_FLAGS appended to the GDBFLAGS global.
+
+proc gdb_spawn_with_cmdline_opts { cmdline_flags } {
+    global GDBFLAGS
+
+    set saved_gdbflags $GDBFLAGS
+
+    append GDBFLAGS $cmdline_flags
+
+    set res [gdb_spawn]
+
+    set GDBFLAGS $saved_gdbflags
+
+    return $res
+}
+
 # Start gdb running, wait for prompt, and disable the pagers.
 
 # Overridable function -- you can override this function in your
@@ -3323,6 +3339,31 @@ proc gdb_exit { } {
     catch default_gdb_exit
 }
 
+# Start a set of programs running and then wait for a bit, to be sure
+# that they can be attached to.  Return a list of the processes' PIDs.
+
+proc spawn_wait_for_attach { executable_list } {
+    set pid_list {}
+
+    foreach {executable} $executable_list {
+       lappend pid_list [eval exec $executable &]
+    }
+
+    sleep 2
+
+    if { [istarget "*-*-cygwin*"] } {
+       for {set i 0} {$i < [llength $pid_list]} {incr i} {
+           # testpid is the Cygwin PID, GDB uses the Windows PID,
+           # which might be different due to the way fork/exec works.
+           set testpid [lindex $pid_list $i]
+           set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
+           set pid_list [lreplace $pid_list $i $i $testpid]
+       }
+    }
+
+    return $pid_list
+}
+
 #
 # gdb_load_cmd -- load a file into the debugger.
 #                ARGS - additional args to load command.
index e455624a6db392e2794b71923d33f458722c8aae..31cf58e1edecfbc7a4b972920efb53800cbd92bc 100644 (file)
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -375,6 +375,23 @@ check_frame_language_change (void)
     }
 }
 
+/* See top.h.  */
+
+void
+maybe_wait_sync_command_done (int was_sync)
+{
+  /* If the interpreter is in sync mode (we're running a user
+     command's list, running command hooks or similars), and we
+     just ran a synchronous command that started the target, wait
+     for that command to end.  */
+  if (!interpreter_async && !was_sync && sync_execution)
+    {
+      while (gdb_do_one_event () >= 0)
+       if (!sync_execution)
+         break;
+    }
+}
+
 /* Execute the line P as a command, in the current user context.
    Pass FROM_TTY as second argument to the defining function.  */
 
@@ -461,16 +478,7 @@ execute_command (char *p, int from_tty)
       else
        cmd_func (c, arg, from_tty);
 
-      /* If the interpreter is in sync mode (we're running a user
-        command's list, running command hooks or similars), and we
-        just ran a synchronous command that started the target, wait
-        for that command to end.  */
-      if (!interpreter_async && !was_sync && sync_execution)
-       {
-         while (gdb_do_one_event () >= 0)
-           if (!sync_execution)
-             break;
-       }
+      maybe_wait_sync_command_done (was_sync);
 
       /* If this command has been post-hooked, run the hook last.  */
       execute_cmd_post_hook (c);
@@ -758,9 +766,14 @@ gdb_readline_wrapper_line (char *line)
 
   /* Prevent parts of the prompt from being redisplayed if annotations
      are enabled, and readline's state getting out of sync.  We'll
-     restore it in gdb_readline_wrapper_cleanup.  */
+     reinstall the callback handler, which puts the terminal in raw
+     mode (or in readline lingo, in prepped state), when we're next
+     ready to process user input, either in display_gdb_prompt, or if
+     we're handling an asynchronous target event and running in the
+     background, just before returning to the event loop to process
+     further input (or more target events).  */
   if (async_command_editing_p)
-    rl_callback_handler_remove ();
+    gdb_rl_callback_handler_remove ();
 }
 
 struct gdb_readline_wrapper_cleanup
@@ -782,10 +795,12 @@ gdb_readline_wrapper_cleanup (void *arg)
   gdb_assert (input_handler == gdb_readline_wrapper_line);
   input_handler = cleanup->handler_orig;
 
-  /* Reinstall INPUT_HANDLER in readline, without displaying a
-     prompt.  */
-  if (async_command_editing_p)
-    rl_callback_handler_install (NULL, input_handler);
+  /* Don't restore our input handler in readline yet.  That would make
+     readline prep the terminal (putting it in raw mode), while the
+     line we just read may trigger execution of a command that expects
+     the terminal in the default cooked/canonical mode, such as e.g.,
+     running Python's interactive online help utility.  See
+     gdb_readline_wrapper_line for when we'll reinstall it.  */
 
   gdb_readline_wrapper_result = NULL;
   gdb_readline_wrapper_done = 0;
index c322c3332380c803cb25131000e6b298604d69e8..94f6c488030ec81bdd55d40473b562fe2f660778 100644 (file)
--- a/gdb/top.h
+++ b/gdb/top.h
@@ -42,6 +42,14 @@ extern void quit_command (char *, int);
 extern void quit_cover (void);
 extern void execute_command (char *, int);
 
+/* If the interpreter is in sync mode (we're running a user command's
+   list, running command hooks or similars), and we just ran a
+   synchronous command that started the target, wait for that command
+   to end.  WAS_SYNC indicates whether sync_execution was set before
+   the command was run.  */
+
+extern void maybe_wait_sync_command_done (int was_sync);
+
 extern void check_frame_language_change (void);
 
 /* Prepare for execution of a command.
index a95c99637af24de9e81d8a0a0696d16664610c13..a8d1f4fb47f45e9d82ccbbad14559db81af644f7 100644 (file)
@@ -1 +1 @@
-7.8
+7.8.1
index e912fa465bbbd6c68463c51fb0ad9d2b36537e2c..e6ec62b03e5aef6b680155ec30fd1b177fa5e298 100644 (file)
@@ -1744,7 +1744,7 @@ do_initial_windows_stuff (struct target_ops *ops, DWORD pid, int attaching)
      current thread until we report an event out of windows_wait.  */
   inferior_ptid = pid_to_ptid (pid);
 
-  child_terminal_init_with_pgrp (pid);
+  target_terminal_init ();
   target_terminal_inferior ();
 
   windows_initialization_done = 0;
diff --git a/md5.sum b/md5.sum
index c24db92f12f88f9eed2e176c6b9a804f0ed18d31..ed219a14f7b75524b05b8e388ab1cee01da39614 100644 (file)
--- a/md5.sum
+++ b/md5.sum
@@ -62,7 +62,7 @@ a11231531c5c3cd6e7babf06426a657e  bfd/doc/ChangeLog-9103
 a3d687bc21313648dbae3013c5c51583  bfd/doc/bfdint.texi
 236e856bb13ee47adc5d7d253037640d  bfd/doc/bfdwin.texi
 37ba364fb34b96a1dbb55b0f6f612432  bfd/doc/init.texi
-077e32febe5cfb7125746cb120b9d668  bfd/doc/bfdver.texi
+21851c80ccaf48c68959739e47e29115  bfd/doc/bfdver.texi
 c21a4ec3dfb39f4c344a51b2dedffb7e  bfd/doc/bfd.texinfo
 51139f6af786e74446d01ec49807fc28  bfd/doc/elf.texi
 5b895f9b96e315703b490f99fdcf04fa  bfd/doc/Makefile.am
@@ -271,7 +271,7 @@ bfa18f25e96f50e0c4413b181721a430  bfd/elfcore.h
 2fdee0a4cafeb78e5001de80d27f267e  bfd/elf32-tilepro.h
 1ded054093de910d9786c62bc4fe8cc6  bfd/stamp-h.in
 3ff448c8aa25a9c5e3c0c1dfc27caa5d  bfd/aout-cris.c
-608cb5cd94e6b81345c71434308e61ca  bfd/version.h
+6f815551fdc9657190ba94f5c0078f5b  bfd/version.h
 0a4511be36b5bfec01d80f3b13e52839  bfd/aout-ns32k.c
 c7f04d335e5450ee49717b66834a23e1  bfd/cpu-sh.c
 c191ee10b2a77b07098dfb973de16440  bfd/elfxx-tilegx.h
@@ -350,7 +350,7 @@ c568566973d74bf48051b632f6ebe467  bfd/bfd.m4
 53e0ec4a5ea828101c9d1cb650bae56c  bfd/elf-hppa.h
 42d38002711deeaf2d9ba8ab6f72d99d  bfd/cpu-tic30.c
 6b0426f61872d06b138e0aa6dcd3149d  bfd/elf32-xtensa.c
-fb7db5f2dde1338217c138e0ccc8c60f  bfd/elfcode.h
+0b3482bc51441158de373feb92dc409d  bfd/elfcode.h
 2f37446a625434bf92958013fc0b5c3f  bfd/libbfd.h
 e41bf4306979bec62eb8430fb41df6a5  bfd/ChangeLog-2013
 26c5fba0e8dc748e3662f1015a81711d  bfd/i386freebsd.c
@@ -394,7 +394,7 @@ c36591182c4a1112e5cf54dc900c1185  bfd/coff-rs6000.c
 6474afde93f8e964e3d6dddffde3c41e  bfd/ChangeLog-0001
 54bf68b3aca32f721a0e216361ab8848  bfd/coff-arm.c
 1c4d23bb61bcb88b88fe5d91c2d5a6a1  bfd/elf32-mips.c
-28e9c4c11e9f8e7bccbeec36e1ff2e7c  bfd/ChangeLog
+544824b90a7d49af410f81df7759894f  bfd/ChangeLog
 131483790aad1c9bcdac960a2df6c2cd  bfd/hpux-core.c
 956eb4cbdb3f4c79b88da27ba32b518b  bfd/i386os9k.c
 f0081a1eb7e7392ae4ec3531bf8bb7a2  bfd/ChangeLog-9193
@@ -738,7 +738,7 @@ f9c392c6071caf29fbab956c0b074904  gdb/mn10300-tdep.c
 fc270b3eb1edf41b9084e18cf7b6c8b5  gdb/ada-exp.y
 bcaca0d8e31702069f47a21410f9f923  gdb/agent.c
 3c99e4fcb682dfa2d4f67578c7f068c2  gdb/xtensa-linux-nat.c
-1cf2c171621acbd5cb162779c9b8438f  gdb/event-top.c
+70b6d12b072d286c199457ad5cc1b211  gdb/event-top.c
 442e920d795f6527f7b06added328ae4  gdb/buildsym.h
 fe9516b5c544416eb653f4dbc876a44c  gdb/c-varobj.c
 9a72335b805d8cf43f2b459f3d4b3f8a  gdb/parser-defs.h
@@ -763,7 +763,7 @@ a5ee02326368fffb5e7f2a35fee551a8  gdb/target-dcache.h
 86a2f02a1a41c213921ee0c3fdc542d5  gdb/c-exp.y
 c7487ed1209127959578827f7b659610  gdb/moxie-tdep.h
 3b7f8f2c2a9f3f8e891438117e968178  gdb/amd64nbsd-tdep.c
-1197d9e1e7751fbee5c99c0e84868516  gdb/infcmd.c
+03baf8387f031d7610de2bb5ba961831  gdb/infcmd.c
 991b7b1ab5361373c05298beda368849  gdb/m88kbsd-nat.c
 065d8bfef50666d8203412d6f771b982  gdb/maint.c
 4022a31dd4992a2c771e889262714bba  gdb/alphanbsd-tdep.c
@@ -789,11 +789,11 @@ f77a4bc4d1ad8bcb0a167be2d784ec8f  gdb/aix-thread.c
 34ad1d6039840e2ed14d34841620b0ff  gdb/objfiles.h
 559cd5a59cbdb824272146e3c3cf2ce2  gdb/obsd-tdep.h
 2bbc04be2960b3cd116cb8ad77f7359a  gdb/frame.c
-b0fa49c09da35ea9c078ad6628cf6b82  gdb/top.c
+a8e5b86347f27209a1025c84b6ddcf59  gdb/top.c
 7a5f09aaab77ccbf811d3d1006797092  gdb/nios2-tdep.c
 e130801087bce8e5142d86d31a99a663  gdb/xml-support.h
 7e2616730c03776cf51b3a289782cc4b  gdb/i386-dicos-tdep.c
-a56a37f47f83faec8416c020c168a02b  gdb/gdbarch.sh
+c9c74aca356654764613cd67a5cae240  gdb/gdbarch.sh
 c86c6cc30a5e88698f9448b0f26ffd60  gdb/tic6x-tdep.c
 2e6b4456329c85431c3ed671e92634db  gdb/extension.h
 4541a133e8378684e70f591b83293534  gdb/mips64obsd-tdep.c
@@ -955,7 +955,7 @@ e9a30d0fb342def8193233d7bcb6b13c  gdb/guile/lib/gdb/printing.scm
 b56edf5f12b7b92547fba91ab5512369  gdb/guile/lib/gdb/types.scm
 94c022b91683f6b925b4ce9f7c7eacdf  gdb/guile/lib/gdb.scm
 8cd617e583a2824fc5036eebb1d0fcd9  gdb/guile/scm-symtab.c
-a0490a3de0c012da98b19166d0742a55  gdb/guile/guile.c
+41888e11a65319cf6584699ac3b558ed  gdb/guile/guile.c
 fc77254c80da9521716b702a5ea0c0e2  gdb/guile/scm-ports.c
 a474c24f02a6881e46eff4bc2cd38d30  gdb/guile/scm-disasm.c
 5efe973da5a50ab3c4869ceedefc07db  gdb/guile/scm-cmd.c
@@ -986,40 +986,40 @@ daee107df573b879504cdc378c3ad9a2  gdb/alpha-mdebug-tdep.c
 8e90f3b590dbd1cba29fd749ac9c8611  gdb/darwin-nat.h
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
 cd5e3faa9bd1b684a73c7d527cdb4988  gdb/doc/filter-params.pl
-31a74f278cc8c31dba1154ab42e78c32  gdb/doc/gdb.info-6
+7f65562a63a62f801ba2d0245bee86ce  gdb/doc/gdb.info-6
 7bfdb0765c5d050d204fbb30aeeba0d8  gdb/doc/stack_frame.eps
 10f160cac8a8bb7c5d7c4eadafaee68f  gdb/doc/Doxyfile-base.in
 53c4421fce28f695c1e8100a1736154d  gdb/doc/stabs.texinfo
 d18f5345c0efad2e1ea93d32fe5aa220  gdb/doc/agentexpr.texi
 4177806e15c6d3dfd8a2467b949be4c3  gdb/doc/observer.texi
-622efa4250d8612a247594139facb433  gdb/doc/gdb.info-1
-0a1bf9f2d1ad89faecb4511c55d5e588  gdb/doc/gdb.info-4
-601203788f7860b0ffd9263548119822  gdb/doc/gdb.info-2
-92fb840d6c396dbab04bdb2b57c6374c  gdb/doc/gdb.info-7
+472a6b721164a65936b6620a5f7d752c  gdb/doc/gdb.info-1
+b27913b81b51535bb803ebe14bcc3fb3  gdb/doc/gdb.info-4
+21e5935774cce1c1b539b2897d366045  gdb/doc/gdb.info-2
+6c27d6c145d472222920c6ea93082d44  gdb/doc/gdb.info-7
 73ec71cd3b2e7f61bc530f19d4b35056  gdb/doc/lpsrc.sed
-7b7ddd58e7b5450d49db966d574f5fc5  gdb/doc/gdbserver.1
-4b136c4c8387b0d7dafd422bfed20395  gdb/doc/gdbinit.5
+f967e757b2a166de08dcd405aa8c1e4b  gdb/doc/gdbserver.1
+3510afef87d46d6629e5e704cfad5b74  gdb/doc/gdbinit.5
 553b7fe1bf4b5d8b96fdb8cd83503de1  gdb/doc/stack_frame.svg
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 0d0ec0c36a30512d61f402b8990ebe14  gdb/doc/Doxyfile-gdbserver.in
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-02e9f6847677e0ed98157cdeea4d3878  gdb/doc/gdb.info-3
+db597144f927845c6df82111a77c1acf  gdb/doc/gdb.info-3
 67d6ecf1abfb2ec6ff1c32f8715c6c22  gdb/doc/gdb.texinfo
 c9e2dc8be9bf526bceffd17e52f5fc42  gdb/doc/Doxyfile-gdb-api.in
 8d169ff7e7d99dff9d951fa869f90fe2  gdb/doc/annotate.texinfo
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 ea8823843bcd028f03c86436ff4fe7fd  gdb/doc/stabs.info
-827a87b24235e35717749e728a78969d  gdb/doc/gdb.info-5
+76a96988eb6850a53310de4d1b30fe07  gdb/doc/gdb.info-5
 bf96494e6e4d346175babd5ef9781882  gdb/doc/gpl.texi
 ef64c20658907115794618aa8bd6539d  gdb/doc/guile.texi
 2c65d15ffe9be0a73b7b06c7526a3f6f  gdb/doc/Makefile.in
-9f78991eb3aa3e75a185c3ae1e4cf567  gdb/doc/gdb.info
+3d74dd0dd1a57f7210dbf8b312e1917a  gdb/doc/gdb.info
 f44023a05ad33ffb8254965d32eef766  gdb/doc/refcard.tex
 86a4ae834847eda74e2b062539368052  gdb/doc/python.texi
 3f3e1ce3f63d9833af6e4a2bfdb81c11  gdb/doc/ChangeLog
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-44564021c4a456f9b139c13fd951e102  gdb/doc/gdb.1
-0cb50ed7b830e889a88c796864c3c63a  gdb/doc/gcore.1
+78a2f5ae209423bf7bf1c1f43409cdf0  gdb/doc/gdb.1
+c2d27636c1030643718922927c5c5300  gdb/doc/gcore.1
 f5d7d479f48f5bcc74d6e75c624d553a  gdb/doc/annotate.info
 73b97f7f195c39a874818e550df55a4f  gdb/doc/Doxyfile-gdb-xref.in
 03454533593a5ff355235ae150ced2e9  gdb/doc/doxy-index.in
@@ -1029,7 +1029,7 @@ d39233c86ed6a6dc9e853ae6a11fe03e  gdb/doc/stack_frame.pdf
 4b8fa9ef6bfb499f484f1e5c41f4d802  gdb/m2-valprint.c
 182aed1992c09559cc2448cdeee4354e  gdb/tilegx-linux-tdep.c
 7c975d8777399a3795511bffd65e1909  gdb/nbsd-nat.c
-87b409f11f18efb8594104d8f9b38623  gdb/data-directory/Makefile.in
+2c994ff6db1ba6959b5ee12fc37809d0  gdb/data-directory/Makefile.in
 f6f483a051a584c96c61483e221eef86  gdb/thread.c
 d99372a03fd71feb649f40734ef4fe5e  gdb/srec.h
 c8cd35cb646f2e1504cd0d0fe21f57d8  gdb/gdb_mbuild.sh
@@ -1056,7 +1056,7 @@ b9bcc6ab6fbb06d3592ca692b0123963  gdb/procfs.c
 9d553ea3d9b91ff8c44986b11314d7b8  gdb/disasm.h
 1a998ee1a01dff7041f6fb77c5cd6a69  gdb/gdb_proc_service.h
 bdedc5d290cb08f622b787c388181d3b  gdb/hppabsd-nat.c
-e65676fe84e04549ba0d750eeb7542f8  gdb/infrun.c
+3d77e42a1805653bcafde7184ddf16f3  gdb/infrun.c
 f4ef0912947a93062477a8f4dbe7a90c  gdb/aarch64-tdep.h
 3ea4f0b924e0fee10d9eb8f07d1c953f  gdb/sim-regno.h
 1bbe8a3e1cdd9840472d5546f85e6b84  gdb/copying.awk
@@ -1099,7 +1099,7 @@ a7fa88b8e43d805da3c17ec386b78a2f  gdb/xml-tdesc.h
 6d46600c9cbd9fe4ad15775629226923  gdb/amd64-dicos-tdep.c
 daf0d1cae306df7fa877cc09a87ed8d3  gdb/linux-record.c
 3591ff34ffa292804c545d2d6fea6728  gdb/progspace.c
-830ca9d23211d7c340deed2acdc3bd3c  gdb/version.in
+3b97d0dde0259a1aa9b4d9cd36c09461  gdb/version.in
 188e177300e0018f2c1065bb259fd8da  gdb/arm-tdep.h
 f1eadf38ba537ea23b3076317f7bc488  gdb/ppc64-tdep.c
 cbf9b37187f738b1c73cca0341b75a60  gdb/sparcnbsd-nat.c
@@ -1121,7 +1121,7 @@ c8d225744816c1af8c010846b70f5f53  gdb/inf-loop.c
 60d6b820ad2c3e64f8198ca9c5c38d1e  gdb/mipsnbsd-tdep.h
 0ead43d3d1bc40473287e094707b8052  gdb/p-lang.c
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
-e068778a8515e26dcdbf55c1451a6ebf  gdb/po/gdb.pot
+c4488056d0f863ae5cc33a0a7f551805  gdb/po/gdb.pot
 d825a408a0c74e03f68342abc095dbac  gdb/score-tdep.c
 d96e90bf4c9b1258f69cabbe11edd704  gdb/gnu-nat.c
 6ee0139dea99882f303fdfd9f2458e66  gdb/jit-reader.in
@@ -1278,7 +1278,7 @@ adbac1028e2109047fbec1c517d73df1  gdb/testsuite/gdb.guile/scm-symbol.exp
 68de77a6756261923196c304c86b5950  gdb/testsuite/gdb.guile/scm-type.c
 8e2862633532cd563f4d810bfef58c83  gdb/testsuite/gdb.guile/scm-objfile.c
 e50a6105b3f992e58170b7da8c8ef2e7  gdb/testsuite/gdb.threads/pending-step.c
-04e325c08c995433dffd01a4b77f8d1c  gdb/testsuite/gdb.threads/schedlock.exp
+13100c4fcab15f0dfa1961d23b32ca53  gdb/testsuite/gdb.threads/schedlock.exp
 41a77711d86b92183d5d8872d0794a9f  gdb/testsuite/gdb.threads/kill.exp
 dd7e048ba4d52b17979242914fa1312d  gdb/testsuite/gdb.threads/corethreads.c
 0ec6658d79151dbf4b4d5fba0315eee5  gdb/testsuite/gdb.threads/local-watch-wrong-thread.c
@@ -1312,8 +1312,10 @@ fb1e20c6fd1f56228ddde33ab676e915  gdb/testsuite/gdb.threads/non-ldr-exc-4.c
 674118adc30800e8f884a865f98add05  gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
 daba9799c8549458c9783ed546a03051  gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
 df82452f754ef15a81d71f46a0892757  gdb/testsuite/gdb.threads/print-threads.c
+e177db267f6e405c01914d83f2890fb0  gdb/testsuite/gdb.threads/gcore-stale-thread.c
 833ca3fdb91c615714def46e4427c5d8  gdb/testsuite/gdb.threads/tls-shared.exp
 b1873122dc466272ab1416f015925330  gdb/testsuite/gdb.threads/killed.c
+b8569191ccbc295badca0ad8a6db1b89  gdb/testsuite/gdb.threads/next-bp-other-thread.c
 b163080f176346d52ac20391655aa690  gdb/testsuite/gdb.threads/tls.exp
 887ac67db3e53d926301bc46fe548d3e  gdb/testsuite/gdb.threads/linux-dp.c
 92bdb0e16674f2d9cb039d7ffe17a856  gdb/testsuite/gdb.threads/multiple-step-overs.c
@@ -1323,6 +1325,7 @@ fd437f7029571be675906bab0f89d137  gdb/testsuite/gdb.threads/tls-var.exp
 29c6ee2992d19c9ba483e207aecab664  gdb/testsuite/gdb.threads/hand-call-in-threads.c
 8472795a8050aaa93957ee5356bad17d  gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c
 7f67686871a103cc24f9b51eea5a3ebf  gdb/testsuite/gdb.threads/dlopen-libpthread.c
+5fbfc4411b91ed56e82f3bb05d88acb3  gdb/testsuite/gdb.threads/next-bp-other-thread.exp
 c5bd39c5b29f906164d3040f8e10a730  gdb/testsuite/gdb.threads/watchthreads2.exp
 a68ecd5a059579c148624212ea6d514a  gdb/testsuite/gdb.threads/wp-replication.c
 90dfd6105bcef197d91ff453820d8534  gdb/testsuite/gdb.threads/watchthreads.c
@@ -1350,13 +1353,14 @@ e6f82a62a3b778f71fa00d51ef86657d  gdb/testsuite/gdb.threads/interrupted-hand-cal
 60029a7159b1b08315a5d2ce7607eeb5  gdb/testsuite/gdb.threads/siginfo-threads.exp
 90fde5844f11246b72554b209e5c6cb8  gdb/testsuite/gdb.threads/multi-create.c
 654d0b49216b8553ceeeb22e500a58e1  gdb/testsuite/gdb.threads/watchpoint-fork-child.c
-bd534819118708fd1e7ba4e7a2cd9974  gdb/testsuite/gdb.threads/schedlock.c
+830013ebbd22533085a13d6e7388b710  gdb/testsuite/gdb.threads/schedlock.c
 1c2e5a86e6d4b557921640b09056a9da  gdb/testsuite/gdb.threads/thread-specific-bp.exp
 a2bb3216b24530633d9967c0f8ad8b1b  gdb/testsuite/gdb.threads/thread-specific-bp.c
 9368ad32ffc463a295399b6ca1795b75  gdb/testsuite/gdb.threads/sigstep-threads.c
 256db74d9e698b842b7a768647055f7e  gdb/testsuite/gdb.threads/create-fail.exp
 930e3bb22ca8b8efaec8385816e05b8f  gdb/testsuite/gdb.threads/Makefile.in
 c45f77a17131a68015511c21fece7453  gdb/testsuite/gdb.threads/reconnect-signal.exp
+6428eb914f064052a6241c284e9fe1aa  gdb/testsuite/gdb.threads/gcore-stale-thread.exp
 77a280edf5a6a3df88ce81ef6168a9c8  gdb/testsuite/gdb.threads/attach-stopped.c
 fea84a00b8c92e31f71a822ca447f15c  gdb/testsuite/gdb.threads/threxit-hop-specific.exp
 a527b577c6d71ad1f57500cb6ec9152f  gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
@@ -1959,7 +1963,7 @@ fd63ff41dcf861e21bf88b1eb531f740  gdb/testsuite/gdb.reverse/i386-reverse.c
 4a5e81754ef25b9297cce687c39788c7  gdb/testsuite/gdb.reverse/step-reverse.exp
 7287898ff83b2ad3153f6f7dcdea751e  gdb/testsuite/gdb.reverse/i387-stack-reverse.c
 d0b233927c5e4e2ed37d730ebb74d0c1  gdb/testsuite/gdb.reverse/shr1.c
-d7e780a12db484edd9e9dbf2d758fb55  gdb/testsuite/gdb.multi/multi-attach.exp
+a97adda3ec290af080871e37119ee09c  gdb/testsuite/gdb.multi/multi-attach.exp
 b6acdf6f3a300a9926cc2fe69459a488  gdb/testsuite/gdb.multi/hello.c
 682edc57f496ffa5ba81f60a534337b2  gdb/testsuite/gdb.multi/multi-arch.exp
 3d1bb648dad1200e050d78b77bc74ba8  gdb/testsuite/gdb.multi/multi-arch-exec.c
@@ -2004,7 +2008,7 @@ eabb30a0ef58c6efd50bd58726a0114a  gdb/testsuite/gdb.java/jmisc.exp
 e30fcfa31411c9c834602ac00089531f  gdb/testsuite/gdb.python/py-pp-maint.c
 4394a603c304d6a44f97f6fe6a6c5198  gdb/testsuite/gdb.python/py-pp-re-notag.exp
 c370e81b5b7000400143ecd39d32ef1d  gdb/testsuite/gdb.python/source1
-257a2c24952699acc232299e2b4b8c70  gdb/testsuite/gdb.python/py-xmethods.py
+36550d0c9c4f314025044c626eb1df1c  gdb/testsuite/gdb.python/py-xmethods.py
 243db30bd42444a05379d225c4cc45ca  gdb/testsuite/gdb.python/py-breakpoint.exp
 dc8fbf5cdbd88f8bcd06e1ab1805af0a  gdb/testsuite/gdb.python/py-objfile-script.c
 5f2a14106984ed919fa12f9d8cd9d4b8  gdb/testsuite/gdb.python/py-inferior.c
@@ -2021,6 +2025,7 @@ d33da31e9602c754cd11dcc3f1da1896  gdb/testsuite/gdb.python/py-infthread.c
 7c157ffcfb2d0d9e8f27b2ed035f6707  gdb/testsuite/gdb.python/py-shared.c
 38f5f5200aecaf1816baff434c5f1880  gdb/testsuite/gdb.python/py-linetable.c
 f0684babfc7a18e9df64fa364db55eaf  gdb/testsuite/gdb.python/py-finish-breakpoint.c
+93a9b8e199127facec02729eba30286e  gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
 af37b4651b873cf145e60d9e308524b0  gdb/testsuite/gdb.python/py-symtab.exp
 01288ea9e162ec80702c619fe1a39aed  gdb/testsuite/gdb.python/py-explore.cc
 19640bb48cbab2b3a1edbc3b40d0a65d  gdb/testsuite/gdb.python/py-mi.exp
@@ -2036,7 +2041,8 @@ d14bfca7e7e1e8abfd31c26f0358c208  gdb/testsuite/gdb.python/py-events.exp
 0ca4a082be57d676107572ef2dd2c7b4  gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
 1bc02a96f981257f866540d12c3ab979  gdb/testsuite/gdb.python/py-events.c
 095d8f8d5e856a51a21c173f09afbe7c  gdb/testsuite/gdb.python/py-objfile-script.exp
-e1e3603f0df6edfdbbd0f32087d12a7d  gdb/testsuite/gdb.python/py-prompt.exp
+7c7bed3fe28f13265506c50543eef6ee  gdb/testsuite/gdb.python/py-prompt.exp
+0cb2ddfb1a76f49c48ee3a0b63278f95  gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S
 492d58b0696e5592c92493ae80cb31de  gdb/testsuite/gdb.python/py-progspace.exp
 3944dda0cb69696331566f6cdca03af3  gdb/testsuite/gdb.python/py-breakpoint.c
 22f4a6feaa794a233a4470da73777887  gdb/testsuite/gdb.python/py-infthread.exp
@@ -2051,7 +2057,7 @@ da2f62bec7fcb4d5df847cd298ca7050  gdb/testsuite/gdb.python/py-explore.exp
 62b463d200790d10a5c7acf7a2a1cc20  gdb/testsuite/gdb.python/py-value-cc.exp
 96b47b6ea61db52b0a49ba23b00e6fd3  gdb/testsuite/gdb.python/py-cmd.exp
 4860ded780279c165f8993fa4848efcc  gdb/testsuite/gdb.python/py-typeprint.py
-d855e968f11334c893bca3c0ff4ada4b  gdb/testsuite/gdb.python/py-sync-interp.exp
+564456890016bc7f778d3f2b584adba5  gdb/testsuite/gdb.python/py-sync-interp.exp
 90d656ad13044ea3535ee7d237e0a1a2  gdb/testsuite/gdb.python/py-frame-args.py
 67f18866771f18f63a069fb5e1d1cfc0  gdb/testsuite/gdb.python/py-framefilter.py
 a04c422ab487fa190a6abad9034567fc  gdb/testsuite/gdb.python/py-type.exp
@@ -2076,9 +2082,11 @@ d41a719097014a5ced2d9be08a523ce7  gdb/testsuite/gdb.python/py-typeprint.cc
 c276f7018fff03337873146035cf9344  gdb/testsuite/gdb.python/py-cmd.c
 111a4dcd323d71e7701eacee1661a7fa  gdb/testsuite/gdb.python/py-finish-breakpoint2.py
 44cfa43f03be967471d5edd96d71cafb  gdb/testsuite/gdb.python/py-pp-re-notag.c
+8ccfb8641439ad2ee3b2710a4e7324ee  gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
 00619b294de15aef19d6b648767b804e  gdb/testsuite/gdb.python/py-sync-interp.c
 17e570390bda6b30df54a35316184aa7  gdb/testsuite/gdb.python/py-strfns.c
 d94b3c187b3d60b709ba7f78f4cf15f3  gdb/testsuite/gdb.python/py-evsignal.exp
+f55b389a31e7ec69206c3bd50933fd1c  gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
 a720d8520b295d698cfeefd35f245e76  gdb/testsuite/gdb.python/py-pp-re-notag.py
 cf9b429848cec5a6a896edb849f42ee6  gdb/testsuite/gdb.python/py-arch.exp
 78c3f02dfbc35b2af10214ec125ea8a5  gdb/testsuite/gdb.python/py-framefilter.c
@@ -2102,7 +2110,7 @@ abe779c5f57692fde232c0f46c3995b1  gdb/testsuite/gdb.python/py-finish-breakpoint.
 1425b161cdfa8c9fbedf79ae941a12d4  gdb/testsuite/gdb.python/py-value.c
 d9db3ee70858ea31047f61732d4be2a1  gdb/testsuite/gdb.python/py-block.c
 43148a4f0da0d0e8b8cdb6e6431c643e  gdb/testsuite/gdb.python/py-framefilter-mi.c
-5585ee1754971991b73ea87d20ef05c1  gdb/testsuite/gdb.python/python.exp
+7602f5fcf63a7679e7fb1fe7c60508da  gdb/testsuite/gdb.python/python.exp
 fb116a830868db21f93705fe3ab00e01  gdb/testsuite/gdb.python/py-arch.c
 70828afef214ac80c3b5aec228cc94b5  gdb/testsuite/gdb.python/py-events-shlib.c
 8394f39336e845e3dd7f92d480fc5399  gdb/testsuite/gdb.python/py-template.cc
@@ -2199,7 +2207,7 @@ a2df9545498bcdd12bb2b153520861fb  gdb/testsuite/lib/java.exp
 95f80085cf4f3e6c5ee5575a3c2bdc58  gdb/testsuite/lib/trace-support.exp
 cdb6a731d505831e8ed0a5873fd28cd4  gdb/testsuite/lib/dwarf.exp
 33b4818b4df1523ce1f7305563b6c996  gdb/testsuite/lib/gdb-guile.exp
-1821caf0f45ede876efc5849c9548e37  gdb/testsuite/lib/gdb.exp
+86686cfd0feafc8cfcb7f1a0b4ce24ad  gdb/testsuite/lib/gdb.exp
 9260071c37938c2c594eadc9e2396ea6  gdb/testsuite/lib/opencl_hostapp.c
 7eb5014d3e78bf93bed69da1dcb08bd2  gdb/testsuite/lib/cl_util.c
 da88fd9c15218507b72229fc7ae84cfc  gdb/testsuite/lib/compiler.c
@@ -2692,7 +2700,7 @@ be86cf0a734833db8bcdb7dbb4c329f1  gdb/testsuite/gdb.ada/mi_catch_ex.exp
 bffdc5f840da7341b24d115f04f2ad5b  gdb/testsuite/gdb.ada/print_chars/pck.adb
 91eed381654c8811d6cdfc4d12d636fe  gdb/testsuite/gdb.ada/print_chars/foo.adb
 aba48808b12dec37b428b9065b3219ad  gdb/testsuite/gdb.ada/ptype_arith_binop.exp
-e85ef9839559eb18dccbbdba7013dc6d  gdb/testsuite/ChangeLog
+e406dc978350ef3a511170a771701fb9  gdb/testsuite/ChangeLog
 00f1943eda306eea1225aa67d0716842  gdb/testsuite/gdb.hp/gdb.compat/average.c
 21d8ad7baeeaac1551ef79c4f7828ea0  gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp
 fbf537e72ce89db0e107c27b0339b49b  gdb/testsuite/gdb.hp/gdb.compat/xdb.c
@@ -2877,6 +2885,7 @@ e6b9d5a1a4914be3f653111139dc42cd  gdb/testsuite/gdb.base/inferior-died.c
 16c1e58c8b1c5d45359fb7cb85190a1c  gdb/testsuite/gdb.base/code_elim2.c
 850a5b2b54ffab34f2ee1730c94b38c0  gdb/testsuite/gdb.base/print-symbol-loading-main.c
 c2615e9d8e4ad57addf226411d6641c2  gdb/testsuite/gdb.base/call-signals.c
+ef589380c7ef658fba795ed84363baad  gdb/testsuite/gdb.base/continue-all-already-running.c
 7964ed64a590bfc657dc599a2accfc56  gdb/testsuite/gdb.base/source-nofile.gdb
 7917f3d1ef819aadd582ec98629d7563  gdb/testsuite/gdb.base/debug-expr.c
 b633b1a8a5a91896955c19f7258759b9  gdb/testsuite/gdb.base/code-expr.exp
@@ -2893,6 +2902,7 @@ fadb717d72b9f5ce2c8efd09ea299b3e  gdb/testsuite/gdb.base/skip-solib-main.c
 525375937f21516b333e448c49aae147  gdb/testsuite/gdb.base/bang.exp
 32b0d9fb084af9251c10e4349951d337  gdb/testsuite/gdb.base/condbreak.exp
 246912b4a24edf28c2896b2b0581372b  gdb/testsuite/gdb.base/args.c
+bf1cfd094cbd132aa408cce057585d73  gdb/testsuite/gdb.base/bg-execution-repeat.c
 45d6ef5c470266bf58cb40b01a0f5677  gdb/testsuite/gdb.base/infnan.c
 78c45a2c94c24872dc6d4aea26859a01  gdb/testsuite/gdb.base/store.exp
 9db035ed7b598af31af328e39988b3ce  gdb/testsuite/gdb.base/remotetimeout.exp
@@ -2920,7 +2930,7 @@ b6785f5cabb77ba66e3c5f35c87fbfe6  gdb/testsuite/gdb.base/bitops.exp
 ec14f7ea8d484886d8f8417d7ac75007  gdb/testsuite/gdb.base/siginfo-thread.exp
 e009088beed434df3313c1516bc76732  gdb/testsuite/gdb.base/step-break.exp
 09b3514ecddad4ca9dd40f06f77ca5cc  gdb/testsuite/gdb.base/solib1.c
-7ab209c534fe4017c8f70a444a0632e5  gdb/testsuite/gdb.base/attach.exp
+fcae82ce70fae182531b761fc12bd284  gdb/testsuite/gdb.base/attach.exp
 a7eec13082c0bf5a6bcf3bea3e8f143c  gdb/testsuite/gdb.base/pointers.c
 5fbd9109e5a2b932ebfca2209dc3655c  gdb/testsuite/gdb.base/recpar.c
 5fefadea13c06424265ee8e5dbf68dd6  gdb/testsuite/gdb.base/jump.c
@@ -2974,6 +2984,7 @@ d17ead8342c5badafcd4f2eadc77aa5e  gdb/testsuite/gdb.base/checkpoint.exp
 875a150f7fd4db096ea08b9acd105dae  gdb/testsuite/gdb.base/baz.c
 e894aa2115855c7f477dd2af335d97a1  gdb/testsuite/gdb.base/prologue.exp
 06af9ba47a85b7d5d7f69a78dc00054f  gdb/testsuite/gdb.base/sepdebug2.c
+2b5807a1cbc635ddc0a020033e3649c5  gdb/testsuite/gdb.base/bg-execution-repeat.exp
 96414feab41b4954360074ac656e2b8e  gdb/testsuite/gdb.base/varargs.c
 a465fb9cef999334ae1682da2a72d4df  gdb/testsuite/gdb.base/volatile.exp
 6a12cce54a177a6b40cddded00f1850d  gdb/testsuite/gdb.base/fixsectshr.c
@@ -3012,7 +3023,7 @@ b26402e9ac9c482d0be6b6c33e4b9ff2  gdb/testsuite/gdb.base/hashline3.exp
 9a83bced47156c845361301857d0426a  gdb/testsuite/gdb.base/pendshr.c
 1b55267ad36e5a40155e6b64760c0996  gdb/testsuite/gdb.base/print-file-var-main.c
 7b21e77cbde5cd739afd2a4bf76df7eb  gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c
-e708353e71bb87d402d10475d0671d95  gdb/testsuite/gdb.base/solib-overlap.exp
+aeebe7d674b49d89fb794b1628e72865  gdb/testsuite/gdb.base/solib-overlap.exp
 ec1751cd679a4b52946d065af73c1de0  gdb/testsuite/gdb.base/interact.exp
 9b5b2f0fcf279f9ee30283799303bb25  gdb/testsuite/gdb.base/mips_pro.c
 ba24922006aa549443c65f9482d9b650  gdb/testsuite/gdb.base/solib-disc.c
@@ -3091,6 +3102,7 @@ e779fd24740088379ceee58d539acd46  gdb/testsuite/gdb.base/echo.exp
 d5a026eb45acae831b4541c85b4ccab9  gdb/testsuite/gdb.base/info-shared.exp
 94c1f1818c9234b5e8e7669b457865c1  gdb/testsuite/gdb.base/bar.c
 0cb031a7e7dc09f9db15197f07176655  gdb/testsuite/gdb.base/info-fun.exp
+724ddcc16972db62b1a05142ed68cf38  gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
 a577194c15e0d3318fc4e2e28634fa1c  gdb/testsuite/gdb.base/expand-psymtabs.c
 94725a575ade5e3fc1c8d41581c2d507  gdb/testsuite/gdb.base/charset.c
 3764973c71d5aa701031b4e66fd276d3  gdb/testsuite/gdb.base/shreloc.c
@@ -3241,6 +3253,7 @@ bcf837e46cbbe8270f3d0e1c26bea5e7  gdb/testsuite/gdb.base/enumval.exp
 a8b28046d7a613dc6a0320715195a307  gdb/testsuite/gdb.base/vla-ptr.c
 7fcf56c612ac3258cecf8546b3322038  gdb/testsuite/gdb.base/dmsym.exp
 b96c3d19e96aeed6a87dd12b5f81c21c  gdb/testsuite/gdb.base/sigchld.c
+f9824b8db5cc422ec134f5e1017608e9  gdb/testsuite/gdb.base/annota-input-while-running.c
 416ecd50cac44b3a2fa2ed5a2b2f0b86  gdb/testsuite/gdb.base/inferior-died.exp
 1a35c6065c10f7f5e7d5fdc9d0136d67  gdb/testsuite/gdb.base/huge.c
 f9b691748adf6fd32bb5addc102a8dc8  gdb/testsuite/gdb.base/find.exp
@@ -3268,6 +3281,7 @@ f8caf5df8171fb8d749841abc609e904  gdb/testsuite/gdb.base/prologue-include.c
 a5f0713ea868e92ed92640aef8316461  gdb/testsuite/gdb.base/pending.exp
 9aa2f88bc5ed966dbead9b7b650e0708  gdb/testsuite/gdb.base/lineinc.exp
 fa9edb1dbd58e187e9f7898df8858f35  gdb/testsuite/gdb.base/solib-overlap-main.c
+803f78c7721914103384d530f59274d9  gdb/testsuite/gdb.base/continue-all-already-running.exp
 9ad0dde0929a46dd3fa4b5794d786768  gdb/testsuite/gdb.base/auto-connect-native-target.c
 d80d182dc61475887ba30eb12cd5b20e  gdb/testsuite/gdb.base/watch-read.c
 3429644b6f97aeeabf6edf167745d3b4  gdb/testsuite/gdb.base/ifelse.exp
@@ -3347,6 +3361,7 @@ eba226f5ff163b0f4c5aafc55cf844a7  gdb/testsuite/gdb.base/recurse.c
 6faf4b1c7fffaba1a1045e3781d76a6f  gdb/testsuite/gdb.base/nextoverexit.c
 bed596b24d9277d2100db0fc1b17477e  gdb/testsuite/gdb.base/siginfo-addr.exp
 36a82aba22a764791ca0b54e737deea1  gdb/testsuite/gdb.base/whatis-exp.exp
+d7d64996aeefb0ed6a5eb6b4ee7669b8  gdb/testsuite/gdb.base/annota-input-while-running.exp
 a085ede01a745f23048c6650b72566a2  gdb/testsuite/gdb.base/catch-load.exp
 ad2807392b27734b5e53bf945783abd2  gdb/testsuite/gdb.base/cond-eval-mode.c
 1a30dc9f7a4c70f531b39bc52afec449  gdb/testsuite/gdb.base/catch-signal-fork.c
@@ -3502,7 +3517,7 @@ a7e9a89307f215bdcda9fe499aa9d7da  gdb/testsuite/gdb.base/setshow.exp
 83875fee817f16ef54d34c29ea243bd9  gdb/testsuite/gdb.server/server-mon.exp
 b36711b735d4630ab900b5d8b696b924  gdb/testsuite/gdb.server/server.c
 c4cb7e2b6367fd0c31343d582d2df980  gdb/testsuite/gdb.server/ext-run.exp
-c2621f1c0e08d0baa431c5286c85c3d6  gdb/testsuite/gdb.server/ext-attach.exp
+f10348db85cec60bc1eb5563090e8fd9  gdb/testsuite/gdb.server/ext-attach.exp
 74fb1987704dffa9dc1f07d459b4c6b3  gdb/testsuite/gdb.server/file-transfer.exp
 62b3f1ad3467aec800ad8d0cd591b7cb  gdb/testsuite/gdb.server/no-thread-db.c
 7fac70ba3780dc214df0339d09b45dac  gdb/testsuite/gdb.server/server-kill.exp
@@ -3963,7 +3978,7 @@ be1f6818c9db6cab2015462ad5b72840  gdb/nat/linux-nat.h
 1f6b545be0b6822eca215d0b5f1edfc2  gdb/exc_request.defs
 a913bea638e4167eedc456b4d9f2bdee  gdb/gdb-dlfcn.c
 12e75696b0c454d9a143c9aeacd65aed  gdb/remote-sim.c
-382e9a9b64a2eccd75c06020b2bd462f  gdb/event-top.h
+3718424f87353bc7baccac76d4c1cab5  gdb/event-top.h
 4ac56e83f9218989f267a57c3f1db63d  gdb/m68k-tdep.h
 b6f83c198a1c5e4fe35a072c1fcb1d06  gdb/hppanbsd-nat.c
 647df70b15a4dc2ed19b7cf70314ef93  gdb/p-exp.c
@@ -3995,18 +4010,19 @@ a5b09e7abe1743bff047f80ac66a2e2b  gdb/python/lib/gdb/function/__init__.py
 bd299770877877bd1870630aaf307c0b  gdb/python/lib/gdb/prompt.py
 9e607e37c56ea883c7cad27423ed4921  gdb/python/lib/gdb/FrameDecorator.py
 a8d5a3aa0f47a31802a9c13ee74332f8  gdb/python/lib/gdb/frames.py
-05bcc0c61846a4c66a5e188d2274bcb6  gdb/python/lib/gdb/printing.py
+8c82d5c91112c09bb51f6ead3744ee83  gdb/python/lib/gdb/printing.py
 ba173e9549a2ce347ed385bbc67455d0  gdb/python/lib/gdb/xmethod.py
 a2d765a4bc30142b0f28d896c86e968f  gdb/python/lib/gdb/types.py
-83a8a83297fedcabdcd033de43b521ee  gdb/python/lib/gdb/__init__.py
-acd34dd05c505d88189451ac8f05c055  gdb/python/lib/gdb/command/bound_registers.py
+4ab79f3d3cfabe265afd64c0fc579b8c  gdb/python/lib/gdb/printer/bound_registers.py
+6a562507d99b6de8b487de3b6c87740c  gdb/python/lib/gdb/printer/__init__.py
+1b9e909b4e331b4c8e28cf0adb01c1a5  gdb/python/lib/gdb/__init__.py
 1ba79b5528a4c9f1ba5aed1cf4355e48  gdb/python/lib/gdb/command/prompt.py
 49324b50da3d22e820c0b68fc2c46ea7  gdb/python/lib/gdb/command/explore.py
 f4069242c2b42d5d57c74d525d34ca20  gdb/python/lib/gdb/command/pretty_printers.py
 f96aaf68fea792b3f47a78d3c429d67e  gdb/python/lib/gdb/command/frame_filters.py
 5a04851e2253842d269def1d66d49bbf  gdb/python/lib/gdb/command/type_printers.py
 d185ce6905dd968e07c9271f420f62dc  gdb/python/lib/gdb/command/__init__.py
-0c2a8997f72cf16f447b64125deabacc  gdb/python/lib/gdb/command/xmethods.py
+4d5d9e6ac66e6432c76ba040dacfe4a1  gdb/python/lib/gdb/command/xmethods.py
 f6630b6c7f8022030948c09f8d52629a  gdb/python/lib/gdb/FrameIterator.py
 86eda4157d3220f4dad14b0d3af55649  gdb/python/py-event.c
 81d757d566b7d38b11fa7399667ab52c  gdb/python/py-gdb-readline.c
@@ -4021,7 +4037,7 @@ c8985c76ca8b6164639e05ecb0634856  gdb/python/py-stopevent.h
 99577bb6511c4fd9dece4bec79521789  gdb/python/py-utils.c
 a5db5d019fadc01e73754ed0f046e299  gdb/python/py-exitedevent.c
 b4515db38110fb5d8d74a8ad32e7d714  gdb/python/py-stopevent.c
-73464c5a84d536010fddc9ac8101c259  gdb/python/py-framefilter.c
+03db4d43bbe4b8e8605dfdeef267308a  gdb/python/py-framefilter.c
 96a70fa36e8d872384482ac518e18720  gdb/python/py-evtregistry.c
 3e9ee0bd644a7a5ac70d21b749eb9a7a  gdb/python/py-symbol.c
 64523ac865e09fa70f1a97b5608af72a  gdb/python/python.c
@@ -4033,13 +4049,13 @@ c731bf9a627a903c2d19e29c1c67728b  gdb/python/py-lazy-string.c
 ddf1ed323fe1aa9d23d7a04a9ce24ae8  gdb/progspace.h
 7659834858e08f7cbfd9be267f1825ec  gdb/bsd-kvm.c
 7512311bbfdf6ac079ef6441e826ce94  gdb/gdb_usleep.c
-d3a9698c5b83e34907e5b7253f14ae37  gdb/configure
+c0c5c0a4e9145e14c84dde871297c614  gdb/configure
 62917ac422d8dbc4a9a53eafc95db9e6  gdb/machoread.c
 bbf613cf4c07ef33996aecc60a1ccbec  gdb/ppcnbsd-tdep.c
 836ac74787cd55955801935e7f6fb1c6  gdb/cris-linux-tdep.c
 02d03769e292a3797195cc1657e4ea05  gdb/bfin-tdep.h
 7fc9eeb3966e4ef503259353acdd7232  gdb/target-descriptions.h
-6f3205a60744ac873c9b967a824e04c5  gdb/acinclude.m4
+f6bed958901141f12a834ec2bda39c99  gdb/acinclude.m4
 f9a31fb29520e5901a4d688e73d9d50b  gdb/cp-namespace.c
 95314841b335494c9d7663d7fa82340e  gdb/auxv.h
 278a38a841bdb7d807e0f069e90a9c4d  gdb/dummy-frame.h
@@ -4064,7 +4080,7 @@ b1f8e7389d0784b4f1c3e98008f0d3f4  gdb/syscalls/s390-linux.xml
 22b42df9eff92e5390d0e546a3ceedde  gdb/syscalls/amd64-linux.xml
 a9ac5e415baa9cb6254f8e74d7e45fdf  gdb/syscalls/mips-n64-linux.xml
 d7719c910b17ff58ef8bc5c8dcc69b78  gdb/syscalls/ppc-linux.xml
-c571d8459a244ef440bb63d938f8e25d  gdb/target.h
+0b3a20b6d092e2ad5e6bb6dc1b122019  gdb/target.h
 21da014c7233e55d608fd91d15a1d17c  gdb/eval.c
 317972300365b3042885fa3aa98a6e64  gdb/environ.c
 199f0df31f516222f0a63d350ac76403  gdb/p-valprint.c
@@ -4275,10 +4291,10 @@ e12b41c9d40160d08d555788f1fed39b  gdb/m68klinux-tdep.c
 0130a3cbd233b0191e3b25ebcf333904  gdb/remote-fileio.h
 5db2dbedeed407edce20576b48e26488  gdb/linux-nat.h
 e1e4c8e1e81ad62199a081fac568d32d  gdb/darwin-nat-info.c
-4b2f97d7068a394bf7577bc307bc4392  gdb/linux-tdep.c
+98c80398760caae07a468993a0fa2983  gdb/linux-tdep.c
 ce9bb42fb64ba80238b385c0810eba31  gdb/bfd-target.c
 5cdfd9b2d6910e9e95d30a8a3de69d8d  gdb/symfile.h
-a1473c53fe4e600da841f29fdddacc6d  gdb/main.c
+7c25a9ad03d7395fd48cd7dd858933b2  gdb/main.c
 a6ebe1725ec66dd61a02bbe5eb013291  gdb/m68hc11-tdep.c
 c00553c89cc50cdcd2df196f98a07cec  gdb/spu-linux-nat.c
 5d39ccb21c9e46518c3a6afafc3e53bf  gdb/ravenscar-thread.c
@@ -4351,7 +4367,7 @@ ca054ccca84c3ed4f8e37e0aa550a23f  gdb/gdbserver/nto-x86-low.c
 db6d0cf6e201962e53d12580aca24f54  gdb/gdbserver/server.c
 318b8d28d4f44483f0b6d89300233711  gdb/gdbserver/win32-low.h
 4d0706717672491c95a4f3842c799f6a  gdb/gdbserver/dll.c
-07a41af710f4226f7b81f9ebb42d85a1  gdb/gdbserver/win32-i386-low.c
+5cef6883b569adf6bb5996eeb3525abe  gdb/gdbserver/win32-i386-low.c
 dc372aa6711da296c9f7808249115539  gdb/gdbserver/configure
 73cb29ba1b0b5e9c45c56de162e31c49  gdb/gdbserver/linux-arm-low.c
 2e7940b5359daf39145a72138e035140  gdb/gdbserver/acinclude.m4
@@ -4387,7 +4403,7 @@ fe0d8178666a6fe552944d1718bdccba  gdb/gdbserver/remote-utils.c
 a97c70e6df58989849dc316abd3ecb7c  gdb/gdbserver/thread-db.c
 865ed7eede837e6f066786c1f24b50fb  gdb/gdbserver/xtensa-xtregs.c
 c61ca5fd9fea3ca50ddbca0a431bcd7a  gdb/gdbserver/mem-break.h
-a47ef6828b9e82139e9689b741c7372c  gdb/gdbserver/ChangeLog
+bdcd09187bf01b89fe7a453757db534d  gdb/gdbserver/ChangeLog
 8c470ed95089593a86c854f04ce683ec  gdb/gdbserver/inferiors.h
 26fcc13527ca353ccdd331cbb81856c2  gdb/gdbserver/proc-service.list
 6f867eac14f8004f51d32841ec442c04  gdb/gdbserver/linux-sh-low.c
@@ -4428,11 +4444,11 @@ e02f6dd77e5775afccf160656dddba41  gdb/features/arm-with-m-fpa-layout.xml
 6bb35778971ee3def383ef0b604c13f7  gdb/features/aarch64.xml
 30e6b5d2b5054f618bf75227a86cb9ed  gdb/features/s390-linux64v1.c
 4a76f2ccac2311e86865601c8c817fe0  gdb/features/s390x-te-linux64.c
-ee3b58ee6c44ed4c8f9b8571ecc4d2db  gdb/features/aarch64-core.xml
+d32f1eb65e845bd8e7b78b62d3564193  gdb/features/aarch64-core.xml
 779b74c6dc6250a855a115e6172360af  gdb/features/s390-linux32v2.c
 f72ac861a7851a1d2d1b61073f7e67f3  gdb/features/library-list-svr4.dtd
 3641efbb2e14dedc54e98cc00be7aaae  gdb/features/nios2-linux.xml
-1b1022ab756bfb899af4592ee25f7932  gdb/features/aarch64.c
+b490c2b335ff7d3f812b1dbfe7b6933b  gdb/features/aarch64.c
 0dff619d2f70e8717e65c1c1620ed9c0  gdb/features/i386/32bit-sse.xml
 51852c22ffbd66ec043a388d7a40ae4c  gdb/features/i386/amd64-mpx.xml
 b95a64b6f654d37b6b8f93b449d05f09  gdb/features/i386/32bit-mpx.xml
@@ -4688,10 +4704,10 @@ b651746fdfc39f9356f5a8aab538dfea  gdb/block.h
 43f0cdbfe2c8ba0a1abd5c5f132053ad  gdb/f-lang.c
 78f0372421a7603e3d694b9d38b5cb5c  gdb/obsd-tdep.c
 b89249df7f1a73b126ce8a6b7395716b  gdb/fbsd-nat.h
-a4bb43103037d98aba786cbd95c3cef3  gdb/config.in
+cacac0f4df490f3d0ffbde61495ced65  gdb/config.in
 05d89bbdfd8c3834f5a27f421bc7445a  gdb/sparc-linux-nat.c
 a05e4d1ad58dacd5fe9e826013fc8779  gdb/solist.h
-a2360cdd4d7f0fe6945503e6f1e11487  gdb/gdbarch.h
+119071e1bf56fc527aab9e560aaee363  gdb/gdbarch.h
 e8445e4ad9fe4253595d865e2c771735  gdb/ax-gdb.c
 3adae45d9002fedd4935b9c5116da21f  gdb/i386gnu-tdep.c
 aa8d7d35ee08238b35a97b7947408255  gdb/mips-linux-tdep.h
@@ -4731,7 +4747,7 @@ eb731588f9bf99e44fb889576eb6028e  gdb/registry.c
 12cbbb7ce798b9dee6b443c0d89b232e  gdb/sparcobsd-tdep.c
 ecaf3e9686fdbecec3ed9839ad3924f1  gdb/sparc64-tdep.h
 e89051f69c9abf9baf2f9276fff8b109  gdb/macroexp.c
-cdcd38b11bce5e39ce9f9ec67678a67a  gdb/ChangeLog
+a8bc8e76f4c78da5fd0a438850857b76  gdb/ChangeLog
 4dd23bbb332ff3d6458dac9cec1f0897  gdb/amd64-windows-tdep.c
 250394f07727c8aedf91a0df78c6ebbe  gdb/lm32-tdep.c
 e904668b5ecc32e240f4d7c4c834ab71  gdb/xtensa-tdep.h
@@ -4741,7 +4757,7 @@ a0fca5eeef161c205579c85f298e114b  gdb/ada-exp.c
 603c81655b69051be8f942cb316e0fcb  gdb/gdbtypes.h
 2efbf8832759acd0be37dc401679c445  gdb/sh-tdep.h
 8d24adbb0c5ddc7eb413f11546b4d8c6  gdb/proc-service.list
-8b710860fd9bf18f3e6a83c6576423bc  gdb/ctf.c
+181f294ea74e6afe005dcdbf4bb6817f  gdb/ctf.c
 6fc08d8f674a26d164c67ada1517ca73  gdb/go-lang.c
 60ae4bd890b5f723be5188cffd40a40a  gdb/p-exp.y
 665fc785a8ebd863618507a50da879bc  gdb/hppaobsd-tdep.c
@@ -4800,7 +4816,7 @@ baef3c64463f0556c6692b93d1194ed0  gdb/mips-tdep.c
 5fffd8c47764eda70194c34de6e02f2e  gdb/ChangeLog-2003
 e4e19c19f20d441737a53e7bde1b13ed  gdb/gdbcmd.h
 6df7169de25eb5f3718ae01eb55a3718  gdb/inflow.h
-0d8bbb432cb01b0b5237685194c9283b  gdb/annotate.c
+bd4b5f00f61edd4e4482fbb170050295  gdb/annotate.c
 fa8fe80f8b9e9e585edcd3e7e61f2b7e  gdb/m2-exp.y
 4fef0ed95e91265d7e68fcbde7025c44  gdb/ser-mingw.c
 389442da29269e91316148273a78b180  gdb/p-lang.h
@@ -4811,7 +4827,7 @@ f95b3ab0bc6d5468f31c13e20db9b0ba  gdb/sol-thread.c
 aead3e4d893def855148445926ba98b9  gdb/filesystem.h
 840d88e59cb14e367794512bd79ddba4  gdb/inf-ptrace.h
 872be449ea0ede048ac193747d131870  gdb/ChangeLog-2002
-06ba470c834a5d65d5c4e21146f50893  gdb/dcache.h
+c7a23adbcd07e4e773741f5625657b3c  gdb/dcache.h
 a92a9b3dcd8e89a2fdd554ddfeadf335  gdb/cp-valprint.c
 076f775ad2d40deda81f7be7da62ae76  gdb/posix-hdep.c
 6c8fc08f21b3a4c00db130a32a4707d9  gdb/solib-aix.c
@@ -5003,19 +5019,19 @@ d572c15fac701ca4bc55a9937a37985a  gdb/common/gdb_assert.h
 4d217f21b393726b7bd7dc753fd11c24  gdb/common/format.c
 390a37bb5c4d1ad8308d67b8e5dd9682  gdb/common/linux-btrace.c
 7bef8438920cb5c33987b114af94fba9  gdb/common/i386-cpuid.h
-3847ee7cc1fe2b6e7efd34b9db80fc1a  gdb/top.h
+94847a9de0059cd22fcee6453a7b664b  gdb/top.h
 3a107fccd4ad682a20212c7c47817ab6  gdb/macrotab.h
 002c16c6db49f2959085dfcdffc6208b  gdb/irix5-nat.c
 1d9a3efc3e23c98c914cf1786c619a3a  gdb/gdb_buildall.sh
 eb324e5cac4b495b316bad72de02ff4f  gdb/aarch64-newlib-tdep.c
 88d9b000dc78dd272dd3cc6f81e10244  gdb/record.h
 0a759c024e819c0f83da92ca6811f251  gdb/osabi.c
-8b3a27f8ed274a633af63e1f262bbc2d  gdb/configure.ac
+213327bb1b13beaf9bdfd482e3b8b8f8  gdb/configure.ac
 b2907ba4fd2c65dbc51985ce4a5e24d6  gdb/dsrec.c
 561ac3fda07a5af8dfd1f7bd67c9d28d  gdb/sol2-tdep.h
 f6d6d2815b1f1db61db137f98ad964db  gdb/extension.c
 07f775324cfc6a9bff9ea0a29670eb21  gdb/exceptions.c
-e914b1db0ed467ac531771959d5373df  gdb/target.c
+3dd395c9bc8015d43b671ce6208a6024  gdb/target.c
 48b4608c3ff4a33460421c35ae101671  gdb/c-lang.c
 82242227dc619eb0198929f40fca3806  gdb/core-regset.c
 81e39d5e7648bd038bf903ca7d068ced  gdb/sparc64-tdep.c
@@ -5048,7 +5064,7 @@ ebdd1e84b5c270e8c1448b76ed0a5b39  gdb/arch-utils.c
 ca71f195163df1b74c1abb5a52c61f76  gdb/ppcnbsd-tdep.h
 4ddb2ea4db7bf54117d15bb1a5b238a1  gdb/f-valprint.c
 7c1e1746448fcf7a03497c8e9b8e6a65  gdb/ui-out.h
-9e31f7cc3ccb17a3cc9246f2d7aa70fa  gdb/NEWS
+97a6c6e9590b06e581af46dc648b9cf2  gdb/NEWS
 93226b4618a4a4b22fa82f34ab0b25b1  gdb/frame-base.h
 29036ddaeff3da8405f91cf89e8ce14c  gdb/rs6000-nat.c
 f7b44fa8c7509d95ee0351e20165b25a  gdb/m32c-tdep.c
@@ -5134,7 +5150,7 @@ f1ffb57a09b59fb2d732ae14e29580ee  gdb/ser-pipe.c
 ff9835f628206893b03acc7d68bac310  gdb/windows-nat.h
 d736b69e538410d7f046342a77e67024  gdb/go-valprint.c
 af86a4ed563c80b9d3103b44a68bca62  gdb/v850-tdep.c
-a15a8eac0e2c9c5c4902e4a84b2c84ce  gdb/windows-nat.c
+06dab90d36bdb946fe75f63214596ac4  gdb/windows-nat.c
 85d9ff43fb8b6173ac4350a42195b5a8  gdb/ui-out.c
 b1485a5b0af05d05f52866dde179d8cf  gdb/gdb_obstack.c
 87c6f60cab43e339f11f78d6d07accfc  gdb/gdbthread.h