diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/bfd/version.h ./bfd/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/bfd/version.h	2018-06-27 01:49:39.000000000 +0000
+++ ./bfd/version.h	2018-06-28 01:50:01.000000000 +0000
@@ -16,7 +16,7 @@
 
    In releases, the date is not included in either version strings or
    sonames.  */
-#define BFD_VERSION_DATE 20180627
+#define BFD_VERSION_DATE 20180628
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/djunpack.bat ./djunpack.bat
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/djunpack.bat	2018-06-27 01:54:36.000000000 +0000
+++ ./djunpack.bat	2018-06-28 01:54:36.000000000 +0000
@@ -17,8 +17,8 @@ Rem
 Rem The following 2 lines need to be changed with each new GDB release, to
 Rem be identical to the name of the top-level directory where the GDB
 Rem distribution unpacks itself.
-set GDBVER=$package-8.1.50.20180627
-if "%GDBVER%"=="$package-8.1.50.20180627" GoTo EnvOk
+set GDBVER=$package-8.1.50.20180628
+if "%GDBVER%"=="$package-8.1.50.20180628" GoTo EnvOk
 Rem If their environment space is too small, re-exec with a larger one
 command.com /e:4096 /c %0 %1
 GoTo End
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/ChangeLog ./gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/ChangeLog	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/ChangeLog	2018-06-28 01:50:04.000000000 +0000
@@ -1,3 +1,70 @@
+2018-06-27  Tom Tromey  <tom@tromey.com>
+
+	* stack.c (_initialize_stack): Update "func" help text.
+
+2018-06-27  Tom Tromey  <tom@tromey.com>
+
+	* python/py-unwind.c (unwind_info_object) <saved_regs>: Now a
+	std::vector.
+	(unwind_infopy_str, pyuw_create_unwind_info)
+	(unwind_infopy_add_saved_register, pyuw_sniffer)
+	(unwind_infopy_dealloc, unwind_infopy_add_saved_register):
+	Update.
+	(struct saved_reg): Add constructor.
+	<value>: Now a gdbpy_ref<>.
+
+2018-06-27  Tom Tromey  <tom@tromey.com>
+
+	* machoread.c (macho_symfile_read): Define "symbol_table" earlier.
+
+2018-06-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb-gdb.py.in: Format using autopep8.
+
+2018-06-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb-gdb.py.in (CoreAddrPrettyPrinter): New class.
+	(type_lookup_function): Recognize CORE_ADDR values.
+
+2018-06-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb-gdb.py.in (StructMainTypePrettyPrinter) <to_string>: Don't
+	print tag_name.
+
+2018-06-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb-gdb.py.in (TypeFlag) <__cmp__>: Remove.
+	<__lt__>: Add.
+
+2018-06-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb-gdb.py: Move to...
+	* gdb-gdb.py.in: ... here.
+	* configure.ac (AC_CONFIG_FILES): Add gdb-gdb.py.
+	* Makefile.in (all): Add gdb-gdb.gdb and gdb-gdb.py as
+	dependencies.
+	(distclean): Remove gdb-gdb.py when cleaning.
+	(gdb-gdb.py, gdb-gdb.gdb): New rules.
+	* configure: Re-generate.
+
+2018-06-27  Pedro Alves  <palves@redhat.com>
+
+	* proc-service.c (get_ps_regcache): New.
+	(ps_lgetregs, ps_lsetregs, ps_lgetfpregs)
+	(ps_lsetfpregs): Use it.
+
+2018-06-27  Omair Javaid  <omair.javaid@linaro.org>
+
+	PR gdb/21695
+	* dwarf2read.c (lnp_state_machine::check_line_address): Update declaration.
+	(dwarf_decode_lines_1): Adjust.
+
+2018-06-27  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* fbsd-nat.h (class fbsd_nat_target) <find_memory_regions>: Add
+	override.
+	<info_proc>: Likewise.
+
 2018-06-26  Joel Brobecker  <brobecker@adacore.com>
 
 	* windows-nat.c (do_windows_fetch_inferior_registers): Rename
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/configure ./gdb/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/configure	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/configure	2018-06-28 01:50:04.000000000 +0000
@@ -17789,7 +17789,7 @@ fi
 
 ac_config_files="$ac_config_files gcore"
 
-ac_config_files="$ac_config_files Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile"
+ac_config_files="$ac_config_files Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile"
 
 
 cat >confcache <<\_ACEOF
@@ -18516,6 +18516,7 @@ do
     "gcore") CONFIG_FILES="$CONFIG_FILES gcore" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
     "gdb-gdb.gdb") CONFIG_FILES="$CONFIG_FILES gdb-gdb.gdb" ;;
+    "gdb-gdb.py") CONFIG_FILES="$CONFIG_FILES gdb-gdb.py" ;;
     "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
     "data-directory/Makefile") CONFIG_FILES="$CONFIG_FILES data-directory/Makefile" ;;
 
@@ -19158,6 +19159,12 @@ xconfig.h:config.in)
 echo > stamp-h ;;
 esac
  ;;
+    "gdb-gdb.py":F)
+case x$CONFIG_HEADERS in
+xconfig.h:config.in)
+echo > stamp-h ;;
+esac
+ ;;
     "doc/Makefile":F)
 case x$CONFIG_HEADERS in
 xconfig.h:config.in)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/configure.ac ./gdb/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/configure.ac	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/configure.ac	2018-06-28 01:50:04.000000000 +0000
@@ -2305,7 +2305,7 @@ fi
 GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
 GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME])
 AC_CONFIG_FILES([gcore], [chmod +x gcore])
-AC_CONFIG_FILES([Makefile gdb-gdb.gdb doc/Makefile data-directory/Makefile],
+AC_CONFIG_FILES([Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile],
 [
 case x$CONFIG_HEADERS in
 xconfig.h:config.in)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gcore.1 ./gdb/doc/gcore.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gcore.1	2018-06-27 01:54:28.000000000 +0000
+++ ./gdb/doc/gcore.1	2018-06-28 01:54:30.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2018-06-27" "gdb-8.1.50.20180627-git" "GNU Development Tools"
+.TH GCORE 1 "2018-06-28" "gdb-8.1.50.20180628-git" "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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.1 ./gdb/doc/gdb.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.1	2018-06-27 01:54:27.000000000 +0000
+++ ./gdb/doc/gdb.1	2018-06-28 01:54:29.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2018-06-27" "gdb-8.1.50.20180627-git" "GNU Development Tools"
+.TH GDB 1 "2018-06-28" "gdb-8.1.50.20180628-git" "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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb-add-index.1 ./gdb/doc/gdb-add-index.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb-add-index.1	2018-06-27 01:54:28.000000000 +0000
+++ ./gdb/doc/gdb-add-index.1	2018-06-28 01:54:30.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB-ADD-INDEX 1"
-.TH GDB-ADD-INDEX 1 "2018-06-27" "gdb-8.1.50.20180627-git" "GNU Development Tools"
+.TH GDB-ADD-INDEX 1 "2018-06-28" "gdb-8.1.50.20180628-git" "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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info ./gdb/doc/gdb.info
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info	2018-06-27 01:54:25.000000000 +0000
+++ ./gdb/doc/gdb.info	2018-06-28 01:54:27.000000000 +0000
@@ -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 8.1.50.20180627-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180628-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-1 ./gdb/doc/gdb.info-1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-1	2018-06-27 01:54:12.000000000 +0000
+++ ./gdb/doc/gdb.info-1	2018-06-28 01:54:14.000000000 +0000
@@ -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 8.1.50.20180627-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180628-git.
 
    Copyright (C) 1988-2018 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 8.1.50.20180627-git.
+   This is the Tenth Edition, for GDB (GDB) Version 8.1.50.20180628-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
@@ -501,7 +501,7 @@ Let us use GDB to try to see what is goi
      There is absolutely no warranty for GDB; type "show warranty"
       for details.
 
-     GDB 8.1.50.20180627-git, Copyright 1999 Free Software Foundation, Inc...
+     GDB 8.1.50.20180628-git, Copyright 1999 Free Software Foundation, Inc...
      (gdb)
 
 GDB reads only enough symbol data to know where to find the rest when
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-2 ./gdb/doc/gdb.info-2
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-2	2018-06-27 01:54:14.000000000 +0000
+++ ./gdb/doc/gdb.info-2	2018-06-28 01:54:16.000000000 +0000
@@ -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 8.1.50.20180627-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180628-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-3 ./gdb/doc/gdb.info-3
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-3	2018-06-27 01:54:16.000000000 +0000
+++ ./gdb/doc/gdb.info-3	2018-06-28 01:54:18.000000000 +0000
@@ -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 8.1.50.20180627-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180628-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-4 ./gdb/doc/gdb.info-4
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-4	2018-06-27 01:54:19.000000000 +0000
+++ ./gdb/doc/gdb.info-4	2018-06-28 01:54:21.000000000 +0000
@@ -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 8.1.50.20180627-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180628-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-5 ./gdb/doc/gdb.info-5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-5	2018-06-27 01:54:21.000000000 +0000
+++ ./gdb/doc/gdb.info-5	2018-06-28 01:54:23.000000000 +0000
@@ -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 8.1.50.20180627-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180628-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-6 ./gdb/doc/gdb.info-6
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-6	2018-06-27 01:54:23.000000000 +0000
+++ ./gdb/doc/gdb.info-6	2018-06-28 01:54:24.000000000 +0000
@@ -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 8.1.50.20180627-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180628-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
@@ -1555,7 +1555,7 @@ and TeX (or 'texi2roff') to typeset the 
 
    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-8.1.50.20180627-git/gdb/gdb.info', and it refers to subordinate
+'gdb-8.1.50.20180628-git/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'
@@ -1565,8 +1565,8 @@ program, available as part of the GNU Te
 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-8.1.50.20180627-git', in the case of version
-8.1.50.20180627-git), you can make the Info file by typing:
+directory ('gdb-8.1.50.20180628-git', in the case of version
+8.1.50.20180628-git), you can make the Info file by typing:
 
      cd gdb
      make gdb.info
@@ -1591,7 +1591,7 @@ On its own, TeX cannot either read or ty
 
    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-8.1.50.20180627-git/gdb')
+main source directory (for example, to 'gdb-8.1.50.20180628-git/gdb')
 and type:
 
      make gdb.dvi
@@ -1600,8 +1600,8 @@ and type:
 
    ---------- Footnotes ----------
 
-   (1) In 'gdb-8.1.50.20180627-git/gdb/refcard.ps' of the version
-8.1.50.20180627-git release.
+   (1) In 'gdb-8.1.50.20180628-git/gdb/refcard.ps' of the version
+8.1.50.20180628-git release.
 
 
 File: gdb.info,  Node: Installing GDB,  Next: Maintenance Commands,  Prev: Formatting Documentation,  Up: Top
@@ -1719,39 +1719,39 @@ preparing GDB for installation; you can 
 a single directory, whose name is usually composed by appending the
 version number to 'gdb'.
 
-   For example, the GDB version 8.1.50.20180627-git distribution is in
-the 'gdb-8.1.50.20180627-git' directory.  That directory contains:
+   For example, the GDB version 8.1.50.20180628-git distribution is in
+the 'gdb-8.1.50.20180628-git' directory.  That directory contains:
 
-'gdb-8.1.50.20180627-git/configure (and supporting files)'
+'gdb-8.1.50.20180628-git/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-'gdb-8.1.50.20180627-git/gdb'
+'gdb-8.1.50.20180628-git/gdb'
      the source specific to GDB itself
 
-'gdb-8.1.50.20180627-git/bfd'
+'gdb-8.1.50.20180628-git/bfd'
      source for the Binary File Descriptor library
 
-'gdb-8.1.50.20180627-git/include'
+'gdb-8.1.50.20180628-git/include'
      GNU include files
 
-'gdb-8.1.50.20180627-git/libiberty'
+'gdb-8.1.50.20180628-git/libiberty'
      source for the '-liberty' free software library
 
-'gdb-8.1.50.20180627-git/opcodes'
+'gdb-8.1.50.20180628-git/opcodes'
      source for the library of opcode tables and disassemblers
 
-'gdb-8.1.50.20180627-git/readline'
+'gdb-8.1.50.20180628-git/readline'
      source for the GNU command-line interface
 
-'gdb-8.1.50.20180627-git/glob'
+'gdb-8.1.50.20180628-git/glob'
      source for the GNU filename pattern-matching subroutine
 
-'gdb-8.1.50.20180627-git/mmalloc'
+'gdb-8.1.50.20180628-git/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-8.1.50.20180627-git' directory.
+the 'gdb-8.1.50.20180628-git' 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
@@ -1759,7 +1759,7 @@ platform on which GDB will run as an arg
 
    For example:
 
-     cd gdb-8.1.50.20180627-git
+     cd gdb-8.1.50.20180628-git
      ./configure HOST
      make
 
@@ -1781,8 +1781,8 @@ need to run 'sh' on it explicitly:
 
    If you run 'configure' from a directory that contains source
 directories for multiple libraries or programs, such as the
-'gdb-8.1.50.20180627-git' source directory for version
-8.1.50.20180627-git, 'configure' creates configuration files for every
+'gdb-8.1.50.20180628-git' source directory for version
+8.1.50.20180628-git, 'configure' creates configuration files for every
 directory level underneath (unless you tell it not to, with the
 '--norecursion' option).
 
@@ -1822,13 +1822,13 @@ to specify a path to find 'configure' it
 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 8.1.50.20180627-git, you can build GDB in a
+   For example, with version 8.1.50.20180628-git, you can build GDB in a
 separate directory for a Sun 4 like this:
 
-     cd gdb-8.1.50.20180627-git
+     cd gdb-8.1.50.20180628-git
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-8.1.50.20180627-git/configure sun4
+     ../gdb-8.1.50.20180628-git/configure sun4
      make
 
    When 'configure' builds a configuration using a remote source
@@ -1839,7 +1839,7 @@ the example, you'd find the Sun 4 librar
 
    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-8.1.50.20180627-git/gdb/configure', you are configuring only one
+'../gdb-8.1.50.20180628-git/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'.
 
@@ -1855,8 +1855,8 @@ a configured directory--whatever directo
 
    The 'Makefile' that 'configure' generates in each source directory
 also runs recursively.  If you type 'make' in a source directory such as
-'gdb-8.1.50.20180627-git' (or in a separate configured directory
-configured with '--srcdir=DIRNAME/gdb-8.1.50.20180627-git'), you will
+'gdb-8.1.50.20180628-git' (or in a separate configured directory
+configured with '--srcdir=DIRNAME/gdb-8.1.50.20180628-git'), you will
 build all the required libraries, and then build GDB.
 
    When you have multiple hosts or targets configured in separate
@@ -1901,7 +1901,7 @@ you can use it to test your guesses on a
      Invalid configuration `i986v': machine `i986v' not recognized
 
 'config.sub' is also distributed in the GDB source directory
-('gdb-8.1.50.20180627-git', for version 8.1.50.20180627-git).
+('gdb-8.1.50.20180628-git', for version 8.1.50.20180628-git).
 
 
 File: gdb.info,  Node: Configure Options,  Next: System-wide configuration,  Prev: Config Names,  Up: Installing GDB
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-7 ./gdb/doc/gdb.info-7
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdb.info-7	2018-06-27 01:54:25.000000000 +0000
+++ ./gdb/doc/gdb.info-7	2018-06-28 01:54:27.000000000 +0000
@@ -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 8.1.50.20180627-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180628-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdbinit.5 ./gdb/doc/gdbinit.5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdbinit.5	2018-06-27 01:54:28.000000000 +0000
+++ ./gdb/doc/gdbinit.5	2018-06-28 01:54:30.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2018-06-27" "gdb-8.1.50.20180627-git" "GNU Development Tools"
+.TH GDBINIT 5 "2018-06-28" "gdb-8.1.50.20180628-git" "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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdbserver.1 ./gdb/doc/gdbserver.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/doc/gdbserver.1	2018-06-27 01:54:28.000000000 +0000
+++ ./gdb/doc/gdbserver.1	2018-06-28 01:54:30.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2018-06-27" "gdb-8.1.50.20180627-git" "GNU Development Tools"
+.TH GDBSERVER 1 "2018-06-28" "gdb-8.1.50.20180628-git" "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
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/dwarf2read.c ./gdb/dwarf2read.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/dwarf2read.c	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/dwarf2read.c	2018-06-28 01:50:04.000000000 +0000
@@ -20305,11 +20305,11 @@ public:
      we're processing the end of a sequence.  */
   void record_line (bool end_sequence);
 
-  /* Check address and if invalid nop-out the rest of the lines in this
-     sequence.  */
+  /* Check ADDRESS is zero and less than UNRELOCATED_LOWPC and if true
+     nop-out rest of the lines in this sequence.  */
   void check_line_address (struct dwarf2_cu *cu,
 			   const gdb_byte *line_ptr,
-			   CORE_ADDR lowpc, CORE_ADDR address);
+			   CORE_ADDR unrelocated_lowpc, CORE_ADDR address);
 
   void handle_set_discriminator (unsigned int discriminator)
   {
@@ -20653,14 +20653,14 @@ lnp_state_machine::lnp_state_machine (gd
 void
 lnp_state_machine::check_line_address (struct dwarf2_cu *cu,
 				       const gdb_byte *line_ptr,
-				       CORE_ADDR lowpc, CORE_ADDR address)
+				       CORE_ADDR unrelocated_lowpc, CORE_ADDR address)
 {
-  /* If address < lowpc then it's not a usable value, it's outside the
-     pc range of the CU.  However, we restrict the test to only address
-     values of zero to preserve GDB's previous behaviour which is to
-     handle the specific case of a function being GC'd by the linker.  */
+  /* If ADDRESS < UNRELOCATED_LOWPC then it's not a usable value, it's outside
+     the pc range of the CU.  However, we restrict the test to only ADDRESS
+     values of zero to preserve GDB's previous behaviour which is to handle
+     the specific case of a function being GC'd by the linker.  */
 
-  if (address == 0 && address < lowpc)
+  if (address == 0 && address < unrelocated_lowpc)
     {
       /* This line table is for a function which has been
 	 GCd by the linker.  Ignore it.  PR gdb/12528 */
@@ -20754,7 +20754,7 @@ dwarf_decode_lines_1 (struct line_header
 		    line_ptr += bytes_read;
 
 		    state_machine.check_line_address (cu, line_ptr,
-						      lowpc, address);
+						      lowpc - baseaddr, address);
 		    state_machine.handle_set_address (baseaddr, address);
 		  }
 		  break;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/fbsd-nat.h ./gdb/fbsd-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/fbsd-nat.h	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/fbsd-nat.h	2018-06-28 01:50:04.000000000 +0000
@@ -37,9 +37,9 @@ class fbsd_nat_target : public inf_ptrac
 public:
   char *pid_to_exec_file (int pid) override;
 
-  int find_memory_regions (find_memory_region_ftype func, void *data);
+  int find_memory_regions (find_memory_region_ftype func, void *data) override;
 
-  bool info_proc (const char *, enum info_proc_what);
+  bool info_proc (const char *, enum info_proc_what) override;
 
 #ifdef KERN_PROC_AUXV
   enum target_xfer_status xfer_partial (enum target_object object,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/gdb-gdb.py ./gdb/gdb-gdb.py
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/gdb-gdb.py	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/gdb-gdb.py	1970-01-01 00:00:00.000000000 +0000
@@ -1,252 +0,0 @@
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
-#
-# This file is part of GDB.
-#
-# 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
-import os.path
-
-class TypeFlag:
-    """A class that allows us to store a flag name, its short name,
-    and its value.
-
-    In the GDB sources, struct type has a component called instance_flags
-    in which the value is the addition of various flags.  These flags are
-    defined by the enumerates type_instance_flag_value.  This class helps us
-    recreate a list with all these flags that is easy to manipulate and sort.
-    Because all flag names start with TYPE_INSTANCE_FLAG_, a short_name
-    attribute is provided that strips this prefix.
-
-    ATTRIBUTES
-      name:  The enumeration name (eg: "TYPE_INSTANCE_FLAG_CONST").
-      value: The associated value.
-      short_name: The enumeration name, with the suffix stripped.
-    """
-    def __init__(self, name, value):
-        self.name = name
-        self.value = value
-        self.short_name = name.replace("TYPE_INSTANCE_FLAG_", '')
-    def __cmp__(self, other):
-        """Sort by value order."""
-        return self.value.__cmp__(other.value)
-
-# A list of all existing TYPE_INSTANCE_FLAGS_* enumerations,
-# stored as TypeFlags objects.  Lazy-initialized.
-TYPE_FLAGS = None
-
-class TypeFlagsPrinter:
-    """A class that prints a decoded form of an instance_flags value.
-
-    This class uses a global named TYPE_FLAGS, which is a list of
-    all defined TypeFlag values.  Using a global allows us to compute
-    this list only once.
-
-    This class relies on a couple of enumeration types being defined.
-    If not, then printing of the instance_flag is going to be degraded,
-    but it's not a fatal error.
-    """
-    def __init__(self, val):
-        self.val = val
-    def __str__(self):
-        global TYPE_FLAGS
-        if TYPE_FLAGS is None:
-            self.init_TYPE_FLAGS()
-        if not self.val:
-            return "0"
-        if TYPE_FLAGS:
-            flag_list = [flag.short_name for flag in TYPE_FLAGS
-                         if self.val & flag.value]
-        else:
-            flag_list = ["???"]
-        return "0x%x [%s]" % (self.val, "|".join(flag_list))
-    def init_TYPE_FLAGS(self):
-        """Initialize the TYPE_FLAGS global as a list of TypeFlag objects.
-        This operation requires the search of a couple of enumeration types.
-        If not found, a warning is printed on stdout, and TYPE_FLAGS is
-        set to the empty list.
-
-        The resulting list is sorted by increasing value, to facilitate
-        printing of the list of flags used in an instance_flags value.
-        """
-        global TYPE_FLAGS
-        TYPE_FLAGS = []
-        try:
-            iflags = gdb.lookup_type("enum type_instance_flag_value")
-        except:
-            print("Warning: Cannot find enum type_instance_flag_value type.")
-            print("         `struct type' pretty-printer will be degraded")
-            return
-        TYPE_FLAGS = [TypeFlag(field.name, field.enumval)
-                      for field in iflags.fields()]
-        TYPE_FLAGS.sort()
-
-class StructTypePrettyPrinter:
-    """Pretty-print an object of type struct type"""
-    def __init__(self, val):
-        self.val = val
-    def to_string(self):
-        fields = []
-        fields.append("pointer_type = %s" % self.val['pointer_type'])
-        fields.append("reference_type = %s" % self.val['reference_type'])
-        fields.append("chain = %s" % self.val['reference_type'])
-        fields.append("instance_flags = %s"
-                      % TypeFlagsPrinter(self.val['instance_flags']))
-        fields.append("length = %d" % self.val['length'])
-        fields.append("main_type = %s" % self.val['main_type'])
-        return "\n{" + ",\n ".join(fields) + "}"
-
-class StructMainTypePrettyPrinter:
-    """Pretty-print an objet of type main_type"""
-    def __init__(self, val):
-        self.val = val
-    def flags_to_string(self):
-        """struct main_type contains a series of components that
-        are one-bit ints whose name start with "flag_".  For instance:
-        flag_unsigned, flag_stub, etc.  In essence, these components are
-        really boolean flags, and this method prints a short synthetic
-        version of the value of all these flags.  For instance, if
-        flag_unsigned and flag_static are the only components set to 1,
-        this function will return "unsigned|static".
-        """
-        fields = [field.name.replace("flag_", "")
-                  for field in self.val.type.fields()
-                  if field.name.startswith("flag_")
-                     and self.val[field.name]]
-        return "|".join(fields)
-    def owner_to_string(self):
-        """Return an image of component "owner".
-        """
-        if self.val['flag_objfile_owned'] != 0:
-            return "%s (objfile)" % self.val['owner']['objfile']
-        else:
-            return "%s (gdbarch)" % self.val['owner']['gdbarch']
-    def struct_field_location_img(self, field_val):
-        """Return an image of the loc component inside the given field
-        gdb.Value.
-        """
-        loc_val = field_val['loc']
-        loc_kind = str(field_val['loc_kind'])
-        if loc_kind == "FIELD_LOC_KIND_BITPOS":
-            return 'bitpos = %d' % loc_val['bitpos']
-        elif loc_kind == "FIELD_LOC_KIND_ENUMVAL":
-            return 'enumval = %d' % loc_val['enumval']
-        elif loc_kind == "FIELD_LOC_KIND_PHYSADDR":
-            return 'physaddr = 0x%x' % loc_val['physaddr']
-        elif loc_kind == "FIELD_LOC_KIND_PHYSNAME":
-            return 'physname = %s' % loc_val['physname']
-        elif loc_kind == "FIELD_LOC_KIND_DWARF_BLOCK":
-            return 'dwarf_block = %s' % loc_val['dwarf_block']
-        else:
-            return 'loc = ??? (unsupported loc_kind value)'
-    def struct_field_img(self, fieldno):
-        """Return an image of the main_type field number FIELDNO.
-        """
-        f = self.val['flds_bnds']['fields'][fieldno]
-        label = "flds_bnds.fields[%d]:" % fieldno
-        if f['artificial']:
-            label += " (artificial)"
-        fields = []
-        fields.append("name = %s" % f['name'])
-        fields.append("type = %s" % f['type'])
-        fields.append("loc_kind = %s" % f['loc_kind'])
-        fields.append("bitsize = %d" % f['bitsize'])
-        fields.append(self.struct_field_location_img(f))
-        return label + "\n" + "  {" + ",\n   ".join(fields) + "}"
-    def bounds_img(self):
-        """Return an image of the main_type bounds.
-        """
-        b = self.val['flds_bnds']['bounds'].dereference()
-        low = str(b['low'])
-        if b['low_undefined'] != 0:
-            low += " (undefined)"
-        high = str(b['high'])
-        if b['high_undefined'] != 0:
-            high += " (undefined)"
-        return "flds_bnds.bounds = {%s, %s}" % (low, high)
-    def type_specific_img(self):
-        """Return a string image of the main_type type_specific union.
-        Only the relevant component of that union is printed (based on
-        the value of the type_specific_kind field.
-        """
-        type_specific_kind = str(self.val['type_specific_field'])
-        type_specific = self.val['type_specific']
-        if type_specific_kind == "TYPE_SPECIFIC_NONE":
-            img = 'type_specific_field = %s' % type_specific_kind
-        elif type_specific_kind == "TYPE_SPECIFIC_CPLUS_STUFF":
-            img = "cplus_stuff = %s" % type_specific['cplus_stuff']
-        elif type_specific_kind == "TYPE_SPECIFIC_GNAT_STUFF":
-            img = ("gnat_stuff = {descriptive_type = %s}"
-                   % type_specific['gnat_stuff']['descriptive_type'])
-        elif type_specific_kind == "TYPE_SPECIFIC_FLOATFORMAT":
-            img = "floatformat[0..1] = %s" % type_specific['floatformat']
-        elif type_specific_kind == "TYPE_SPECIFIC_FUNC":
-            img = ("calling_convention = %d"
-                   % type_specific['func_stuff']['calling_convention'])
-            # tail_call_list is not printed.
-        elif type_specific_kind == "TYPE_SPECIFIC_SELF_TYPE":
-            img = "self_type = %s" % type_specific['self_type']
-        else:
-            img = ("type_specific = ??? (unknown type_secific_kind: %s)"
-                   % type_specific_kind)
-        return img
-
-    def to_string(self):
-        """Return a pretty-printed image of our main_type.
-        """
-        fields = []
-        fields.append("name = %s" % self.val['name'])
-        fields.append("tag_name = %s" % self.val['tag_name'])
-        fields.append("code = %s" % self.val['code'])
-        fields.append("flags = [%s]" % self.flags_to_string())
-        fields.append("owner = %s" % self.owner_to_string())
-        fields.append("target_type = %s" % self.val['target_type'])
-        if self.val['nfields'] > 0:
-            for fieldno in range(self.val['nfields']):
-                fields.append(self.struct_field_img(fieldno))
-        if self.val['code'] == gdb.TYPE_CODE_RANGE:
-            fields.append(self.bounds_img())
-        fields.append(self.type_specific_img())
-
-        return "\n{" + ",\n ".join(fields) + "}"
-
-def type_lookup_function(val):
-    """A routine that returns the correct pretty printer for VAL
-    if appropriate.  Returns None otherwise.
-    """
-    if val.type.tag == "type":
-        return StructTypePrettyPrinter(val)
-    elif val.type.tag == "main_type":
-        return StructMainTypePrettyPrinter(val)
-    return None
-
-def register_pretty_printer(objfile):
-    """A routine to register a pretty-printer against the given OBJFILE.
-    """
-    objfile.pretty_printers.append(type_lookup_function)
-
-if __name__ == "__main__":
-    if gdb.current_objfile() is not None:
-        # This is the case where this script is being "auto-loaded"
-        # for a given objfile.  Register the pretty-printer for that
-        # objfile.
-        register_pretty_printer(gdb.current_objfile())
-    else:
-        # We need to locate the objfile corresponding to the GDB
-        # executable, and register the pretty-printer for that objfile.
-        # FIXME: The condition used to match the objfile is too simplistic
-        # and will not work on Windows.
-        for objfile in gdb.objfiles():
-            if os.path.basename(objfile.filename) == "gdb":
-                objfile.pretty_printers.append(type_lookup_function)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/gdb-gdb.py.in ./gdb/gdb-gdb.py.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/gdb-gdb.py.in	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdb-gdb.py.in	2018-06-28 01:50:04.000000000 +0000
@@ -0,0 +1,284 @@
+# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+#
+# This file is part of GDB.
+#
+# 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
+import os.path
+
+
+class TypeFlag:
+    """A class that allows us to store a flag name, its short name,
+    and its value.
+
+    In the GDB sources, struct type has a component called instance_flags
+    in which the value is the addition of various flags.  These flags are
+    defined by the enumerates type_instance_flag_value.  This class helps us
+    recreate a list with all these flags that is easy to manipulate and sort.
+    Because all flag names start with TYPE_INSTANCE_FLAG_, a short_name
+    attribute is provided that strips this prefix.
+
+    ATTRIBUTES
+      name:  The enumeration name (eg: "TYPE_INSTANCE_FLAG_CONST").
+      value: The associated value.
+      short_name: The enumeration name, with the suffix stripped.
+    """
+
+    def __init__(self, name, value):
+        self.name = name
+        self.value = value
+        self.short_name = name.replace("TYPE_INSTANCE_FLAG_", '')
+
+    def __lt__(self, other):
+        """Sort by value order."""
+        return self.value < other.value
+
+
+# A list of all existing TYPE_INSTANCE_FLAGS_* enumerations,
+# stored as TypeFlags objects.  Lazy-initialized.
+TYPE_FLAGS = None
+
+
+class TypeFlagsPrinter:
+    """A class that prints a decoded form of an instance_flags value.
+
+    This class uses a global named TYPE_FLAGS, which is a list of
+    all defined TypeFlag values.  Using a global allows us to compute
+    this list only once.
+
+    This class relies on a couple of enumeration types being defined.
+    If not, then printing of the instance_flag is going to be degraded,
+    but it's not a fatal error.
+    """
+
+    def __init__(self, val):
+        self.val = val
+
+    def __str__(self):
+        global TYPE_FLAGS
+        if TYPE_FLAGS is None:
+            self.init_TYPE_FLAGS()
+        if not self.val:
+            return "0"
+        if TYPE_FLAGS:
+            flag_list = [flag.short_name for flag in TYPE_FLAGS
+                         if self.val & flag.value]
+        else:
+            flag_list = ["???"]
+        return "0x%x [%s]" % (self.val, "|".join(flag_list))
+
+    def init_TYPE_FLAGS(self):
+        """Initialize the TYPE_FLAGS global as a list of TypeFlag objects.
+        This operation requires the search of a couple of enumeration types.
+        If not found, a warning is printed on stdout, and TYPE_FLAGS is
+        set to the empty list.
+
+        The resulting list is sorted by increasing value, to facilitate
+        printing of the list of flags used in an instance_flags value.
+        """
+        global TYPE_FLAGS
+        TYPE_FLAGS = []
+        try:
+            iflags = gdb.lookup_type("enum type_instance_flag_value")
+        except:
+            print("Warning: Cannot find enum type_instance_flag_value type.")
+            print("         `struct type' pretty-printer will be degraded")
+            return
+        TYPE_FLAGS = [TypeFlag(field.name, field.enumval)
+                      for field in iflags.fields()]
+        TYPE_FLAGS.sort()
+
+
+class StructTypePrettyPrinter:
+    """Pretty-print an object of type struct type"""
+
+    def __init__(self, val):
+        self.val = val
+
+    def to_string(self):
+        fields = []
+        fields.append("pointer_type = %s" % self.val['pointer_type'])
+        fields.append("reference_type = %s" % self.val['reference_type'])
+        fields.append("chain = %s" % self.val['reference_type'])
+        fields.append("instance_flags = %s"
+                      % TypeFlagsPrinter(self.val['instance_flags']))
+        fields.append("length = %d" % self.val['length'])
+        fields.append("main_type = %s" % self.val['main_type'])
+        return "\n{" + ",\n ".join(fields) + "}"
+
+
+class StructMainTypePrettyPrinter:
+    """Pretty-print an objet of type main_type"""
+
+    def __init__(self, val):
+        self.val = val
+
+    def flags_to_string(self):
+        """struct main_type contains a series of components that
+        are one-bit ints whose name start with "flag_".  For instance:
+        flag_unsigned, flag_stub, etc.  In essence, these components are
+        really boolean flags, and this method prints a short synthetic
+        version of the value of all these flags.  For instance, if
+        flag_unsigned and flag_static are the only components set to 1,
+        this function will return "unsigned|static".
+        """
+        fields = [field.name.replace("flag_", "")
+                  for field in self.val.type.fields()
+                  if field.name.startswith("flag_") and self.val[field.name]]
+        return "|".join(fields)
+
+    def owner_to_string(self):
+        """Return an image of component "owner".
+        """
+        if self.val['flag_objfile_owned'] != 0:
+            return "%s (objfile)" % self.val['owner']['objfile']
+        else:
+            return "%s (gdbarch)" % self.val['owner']['gdbarch']
+
+    def struct_field_location_img(self, field_val):
+        """Return an image of the loc component inside the given field
+        gdb.Value.
+        """
+        loc_val = field_val['loc']
+        loc_kind = str(field_val['loc_kind'])
+        if loc_kind == "FIELD_LOC_KIND_BITPOS":
+            return 'bitpos = %d' % loc_val['bitpos']
+        elif loc_kind == "FIELD_LOC_KIND_ENUMVAL":
+            return 'enumval = %d' % loc_val['enumval']
+        elif loc_kind == "FIELD_LOC_KIND_PHYSADDR":
+            return 'physaddr = 0x%x' % loc_val['physaddr']
+        elif loc_kind == "FIELD_LOC_KIND_PHYSNAME":
+            return 'physname = %s' % loc_val['physname']
+        elif loc_kind == "FIELD_LOC_KIND_DWARF_BLOCK":
+            return 'dwarf_block = %s' % loc_val['dwarf_block']
+        else:
+            return 'loc = ??? (unsupported loc_kind value)'
+
+    def struct_field_img(self, fieldno):
+        """Return an image of the main_type field number FIELDNO.
+        """
+        f = self.val['flds_bnds']['fields'][fieldno]
+        label = "flds_bnds.fields[%d]:" % fieldno
+        if f['artificial']:
+            label += " (artificial)"
+        fields = []
+        fields.append("name = %s" % f['name'])
+        fields.append("type = %s" % f['type'])
+        fields.append("loc_kind = %s" % f['loc_kind'])
+        fields.append("bitsize = %d" % f['bitsize'])
+        fields.append(self.struct_field_location_img(f))
+        return label + "\n" + "  {" + ",\n   ".join(fields) + "}"
+
+    def bounds_img(self):
+        """Return an image of the main_type bounds.
+        """
+        b = self.val['flds_bnds']['bounds'].dereference()
+        low = str(b['low'])
+        if b['low_undefined'] != 0:
+            low += " (undefined)"
+        high = str(b['high'])
+        if b['high_undefined'] != 0:
+            high += " (undefined)"
+        return "flds_bnds.bounds = {%s, %s}" % (low, high)
+
+    def type_specific_img(self):
+        """Return a string image of the main_type type_specific union.
+        Only the relevant component of that union is printed (based on
+        the value of the type_specific_kind field.
+        """
+        type_specific_kind = str(self.val['type_specific_field'])
+        type_specific = self.val['type_specific']
+        if type_specific_kind == "TYPE_SPECIFIC_NONE":
+            img = 'type_specific_field = %s' % type_specific_kind
+        elif type_specific_kind == "TYPE_SPECIFIC_CPLUS_STUFF":
+            img = "cplus_stuff = %s" % type_specific['cplus_stuff']
+        elif type_specific_kind == "TYPE_SPECIFIC_GNAT_STUFF":
+            img = ("gnat_stuff = {descriptive_type = %s}"
+                   % type_specific['gnat_stuff']['descriptive_type'])
+        elif type_specific_kind == "TYPE_SPECIFIC_FLOATFORMAT":
+            img = "floatformat[0..1] = %s" % type_specific['floatformat']
+        elif type_specific_kind == "TYPE_SPECIFIC_FUNC":
+            img = ("calling_convention = %d"
+                   % type_specific['func_stuff']['calling_convention'])
+            # tail_call_list is not printed.
+        elif type_specific_kind == "TYPE_SPECIFIC_SELF_TYPE":
+            img = "self_type = %s" % type_specific['self_type']
+        else:
+            img = ("type_specific = ??? (unknown type_secific_kind: %s)"
+                   % type_specific_kind)
+        return img
+
+    def to_string(self):
+        """Return a pretty-printed image of our main_type.
+        """
+        fields = []
+        fields.append("name = %s" % self.val['name'])
+        fields.append("code = %s" % self.val['code'])
+        fields.append("flags = [%s]" % self.flags_to_string())
+        fields.append("owner = %s" % self.owner_to_string())
+        fields.append("target_type = %s" % self.val['target_type'])
+        if self.val['nfields'] > 0:
+            for fieldno in range(self.val['nfields']):
+                fields.append(self.struct_field_img(fieldno))
+        if self.val['code'] == gdb.TYPE_CODE_RANGE:
+            fields.append(self.bounds_img())
+        fields.append(self.type_specific_img())
+
+        return "\n{" + ",\n ".join(fields) + "}"
+
+
+class CoreAddrPrettyPrinter:
+    """Print CORE_ADDR values as hex."""
+
+    def __init__(self, val):
+        self._val = val
+
+    def to_string(self):
+        return hex(int(self._val))
+
+
+def type_lookup_function(val):
+    """A routine that returns the correct pretty printer for VAL
+    if appropriate.  Returns None otherwise.
+    """
+    if val.type.tag == "type":
+        return StructTypePrettyPrinter(val)
+    elif val.type.tag == "main_type":
+        return StructMainTypePrettyPrinter(val)
+    elif val.type.name == 'CORE_ADDR':
+        return CoreAddrPrettyPrinter(val)
+    return None
+
+
+def register_pretty_printer(objfile):
+    """A routine to register a pretty-printer against the given OBJFILE.
+    """
+    objfile.pretty_printers.append(type_lookup_function)
+
+
+if __name__ == "__main__":
+    if gdb.current_objfile() is not None:
+        # This is the case where this script is being "auto-loaded"
+        # for a given objfile.  Register the pretty-printer for that
+        # objfile.
+        register_pretty_printer(gdb.current_objfile())
+    else:
+        # We need to locate the objfile corresponding to the GDB
+        # executable, and register the pretty-printer for that objfile.
+        # FIXME: The condition used to match the objfile is too simplistic
+        # and will not work on Windows.
+        for objfile in gdb.objfiles():
+            if os.path.basename(objfile.filename) == "gdb":
+                objfile.pretty_printers.append(type_lookup_function)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/machoread.c ./gdb/machoread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/machoread.c	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/machoread.c	2018-06-28 01:50:04.000000000 +0000
@@ -793,6 +793,9 @@ macho_symfile_read (struct objfile *objf
   bfd *abfd = objfile->obfd;
   long storage_needed;
   std::vector<oso_el> oso_vector;
+  /* We have to hold on to the symbol table until the call to
+     macho_symfile_read_all_oso at the end of this function.  */
+  gdb::def_vector<asymbol *> symbol_table;
 
   /* Get symbols from the symbol table only if the file is an executable.
      The symbol table of object files is not relocated and is expected to
@@ -812,8 +815,7 @@ macho_symfile_read (struct objfile *objf
 	{
 	  long symcount;
 
-	  gdb::def_vector<asymbol *> symbol_table (storage_needed
-						   / sizeof (asymbol *));
+	  symbol_table.resize (storage_needed / sizeof (asymbol *));
 
           minimal_symbol_reader reader (objfile);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/Makefile.in ./gdb/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/Makefile.in	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/Makefile.in	2018-06-28 01:50:04.000000000 +0000
@@ -1607,7 +1607,7 @@ generated_files = \
 # Flags needed to compile Python code
 PYTHON_CFLAGS = @PYTHON_CFLAGS@
 
-all: gdb$(EXEEXT) $(CONFIG_ALL)
+all: gdb$(EXEEXT) $(CONFIG_ALL) gdb-gdb.py gdb-gdb.gdb
 	@$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=`echo $(SUBDIRS) | sed 's/testsuite//'`" subdir_do
 
 # Rule for compiling .c files in the top-level gdb directory.
@@ -1983,7 +1983,8 @@ distclean: clean
 	rm -f gdbserver/config.status gdbserver/config.log
 	rm -f gdbserver/tm.h gdbserver/xm.h gdbserver/nm.h
 	rm -f gdbserver/Makefile gdbserver/config.cache
-	rm -f nm.h config.status config.h stamp-h gdb-gdb.gdb jit-reader.h
+	rm -f nm.h config.status config.h stamp-h b jit-reader.h
+	rm -f gdb-gdb.py gdb-gdb.gdb
 	rm -f y.output yacc.acts yacc.tmp y.tab.h
 	rm -f config.log config.cache
 	rm -f Makefile
@@ -2060,6 +2061,12 @@ jit-reader.h: $(srcdir)/jit-reader.in
 gcore: $(srcdir)/gcore.in
 	$(SHELL) config.status $@
 
+gdb-gdb.py: $(srcdir)/gdb-gdb.py.in
+	$(SHELL) config.status $@
+
+gdb-gdb.gdb: $(srcdir)/gdb-gdb.gdb.in
+	$(SHELL) config.status $@
+
 config.h: stamp-h ; @true
 stamp-h: $(srcdir)/config.in config.status
 	CONFIG_HEADERS=config.h:config.in \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/po/gdb.pot ./gdb/po/gdb.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/po/gdb.pot	2018-06-27 01:54:02.000000000 +0000
+++ ./gdb/po/gdb.pot	2018-06-28 01:54:03.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-06-27 01:54+0000\n"
+"POT-Creation-Date: 2018-06-28 01:54+0000\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"
@@ -11234,8 +11234,8 @@ msgstr ""
 msgid "handle_inferior_event: Invalid gnu-indirect-function breakpoint type %d"
 msgstr ""
 
-#: elfread.c:1076 elfread.c:1089 elfread.c:1115 machoread.c:807
-#: machoread.c:824
+#: elfread.c:1076 elfread.c:1089 elfread.c:1115 machoread.c:810
+#: machoread.c:826
 #, possible-c-format
 msgid "Can't read symbols from %s: %s"
 msgstr ""
@@ -17628,20 +17628,20 @@ msgstr ""
 msgid "dsym file UUID doesn't match the one in %s"
 msgstr ""
 
-#: machoread.c:847
+#: machoread.c:849
 msgid "dsym file found\n"
 msgstr ""
 
-#: machoread.c:892
+#: machoread.c:894
 #, possible-c-format
 msgid "Relocate section '%s' of %s\n"
 msgstr ""
 
-#: machoread.c:977
+#: machoread.c:979
 msgid "Set if printing Mach-O symbols processing."
 msgstr ""
 
-#: machoread.c:978
+#: machoread.c:980
 msgid "Show if printing Mach-O symbols processing."
 msgstr ""
 
@@ -21788,28 +21788,28 @@ msgstr ""
 msgid "Could not convert Python object: %s."
 msgstr ""
 
-#: python/py-unwind.c:179
+#: python/py-unwind.c:184
 #, possible-c-format
 msgid "The value of the '%s' attribute is not a pointer."
 msgstr ""
 
-#: python/py-unwind.c:433
+#: python/py-unwind.c:429
 msgid "frame_id should have 'sp' attribute."
 msgstr ""
 
-#: python/py-unwind.c:558
+#: python/py-unwind.c:554
 msgid "A Unwinder should return gdb.UnwindInfo instance."
 msgstr ""
 
-#: python/py-unwind.c:657
+#: python/py-unwind.c:653
 msgid "Set Python unwinder debugging."
 msgstr ""
 
-#: python/py-unwind.c:658
+#: python/py-unwind.c:654
 msgid "Show Python unwinder debugging."
 msgstr ""
 
-#: python/py-unwind.c:659
+#: python/py-unwind.c:655
 msgid "When non-zero, Python unwinder debugging is enabled."
 msgstr ""
 
@@ -27137,8 +27137,8 @@ msgstr ""
 
 #: stack.c:2558
 msgid ""
-"Select the stack frame that contains <func>.\n"
-"Usage: func <name>"
+"Select the stack frame that contains NAME.\n"
+"Usage: func NAME"
 msgstr ""
 
 #: stack.c:2564
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/proc-service.c ./gdb/proc-service.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/proc-service.c	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/proc-service.c	2018-06-28 01:50:04.000000000 +0000
@@ -126,13 +126,28 @@ ps_pdwrite (struct ps_prochandle *ph, ps
   return ps_xfer_memory (ph, addr, (gdb_byte *) buf, size, 1);
 }
 
+/* Get a regcache for LWPID using its inferior's "main" architecture,
+   which is the register set libthread_db expects to be using.  In
+   multi-arch debugging scenarios, the thread's architecture may
+   differ from the inferior's "main" architecture.  E.g., in the Cell
+   combined debugger, if GDB happens to interrupt SPU code, the
+   thread's architecture is SPU, and the main architecture is
+   PowerPC.  */
+
+static struct regcache *
+get_ps_regcache (struct ps_prochandle *ph, lwpid_t lwpid)
+{
+  inferior *inf = ph->thread->inf;
+  return get_thread_arch_regcache (ptid_t (inf->pid, lwpid), inf->gdbarch);
+}
+
 /* Get the general registers of LWP LWPID within the target process PH
    and store them in GREGSET.  */
 
 ps_err_e
 ps_lgetregs (struct ps_prochandle *ph, lwpid_t lwpid, prgregset_t gregset)
 {
-  struct regcache *regcache = get_thread_regcache (ph->thread);
+  struct regcache *regcache = get_ps_regcache (ph, lwpid);
 
   target_fetch_registers (regcache, -1);
   fill_gregset (regcache, (gdb_gregset_t *) gregset, -1);
@@ -146,7 +161,7 @@ ps_lgetregs (struct ps_prochandle *ph, l
 ps_err_e
 ps_lsetregs (struct ps_prochandle *ph, lwpid_t lwpid, const prgregset_t gregset)
 {
-  struct regcache *regcache = get_thread_regcache (ph->thread);
+  struct regcache *regcache = get_ps_regcache (ph, lwpid);
 
   supply_gregset (regcache, (const gdb_gregset_t *) gregset);
   target_store_registers (regcache, -1);
@@ -160,7 +175,7 @@ ps_lsetregs (struct ps_prochandle *ph, l
 ps_err_e
 ps_lgetfpregs (struct ps_prochandle *ph, lwpid_t lwpid, gdb_prfpregset_t *fpregset)
 {
-  struct regcache *regcache = get_thread_regcache (ph->thread);
+  struct regcache *regcache = get_ps_regcache (ph, lwpid);
 
   target_fetch_registers (regcache, -1);
   fill_fpregset (regcache, (gdb_fpregset_t *) fpregset, -1);
@@ -175,7 +190,7 @@ ps_err_e
 ps_lsetfpregs (struct ps_prochandle *ph, lwpid_t lwpid,
 	       const gdb_prfpregset_t *fpregset)
 {
-  struct regcache *regcache = get_thread_regcache (ph->thread);
+  struct regcache *regcache = get_ps_regcache (ph, lwpid);
 
   supply_fpregset (regcache, (const gdb_fpregset_t *) fpregset);
   target_store_registers (regcache, -1);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/python/py-unwind.c ./gdb/python/py-unwind.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/python/py-unwind.c	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/python/py-unwind.c	2018-06-28 01:50:04.000000000 +0000
@@ -46,12 +46,17 @@ typedef struct
 
 /* Saved registers array item.  */
 
-typedef struct
+struct saved_reg
 {
+  saved_reg (int n, gdbpy_ref<> &&v)
+    : number (n),
+      value (std::move (v))
+  {
+  }
+
   int number;
-  PyObject *value;
-} saved_reg;
-DEF_VEC_O (saved_reg);
+  gdbpy_ref<> value;
+};
 
 /* The data we keep for the PyUnwindInfo: pending_frame, saved registers
    and frame ID.  */
@@ -67,7 +72,7 @@ typedef struct
   struct frame_id frame_id;
 
   /* Saved registers array.  */
-  VEC (saved_reg) *saved_regs;
+  std::vector<saved_reg> *saved_regs;
 } unwind_info_object;
 
 /* The data we keep for a frame we can unwind: frame ID and an array of
@@ -196,17 +201,15 @@ unwind_infopy_str (PyObject *self)
   fprint_frame_id (&stb, unwind_info->frame_id);
   {
     const char *sep = "";
-    int i;
     struct value_print_options opts;
-    saved_reg *reg;
 
     get_user_print_options (&opts);
     stb.printf ("\nSaved registers: (");
-    for (i = 0; VEC_iterate (saved_reg, unwind_info->saved_regs, i, reg); i++)
+    for (const saved_reg &reg : *unwind_info->saved_regs)
       {
-        struct value *value = value_object_to_value (reg->value);
+        struct value *value = value_object_to_value (reg.value.get ());
 
-        stb.printf ("%s(%d, ", sep, reg->number);
+        stb.printf ("%s(%d, ", sep, reg.number);
         if (value != NULL)
           {
             TRY
@@ -249,7 +252,7 @@ pyuw_create_unwind_info (PyObject *pyo_p
   unwind_info->frame_id = frame_id;
   Py_INCREF (pyo_pending_frame);
   unwind_info->pending_frame = pyo_pending_frame;
-  unwind_info->saved_regs = VEC_alloc (saved_reg, 4);
+  unwind_info->saved_regs = new std::vector<saved_reg>;
   return (PyObject *) unwind_info;
 }
 
@@ -303,24 +306,19 @@ unwind_infopy_add_saved_register (PyObje
       }
   }
   {
-    int i;
-    saved_reg *reg;
-
-    for (i = 0; VEC_iterate (saved_reg, unwind_info->saved_regs, i, reg); i++)
+    gdbpy_ref<> new_value = gdbpy_ref<>::new_reference (pyo_reg_value);
+    bool found = false;
+    for (saved_reg &reg : *unwind_info->saved_regs)
       {
-        if (regnum == reg->number)
+        if (regnum == reg.number)
           {
-            Py_DECREF (reg->value);
+	    found = true;
+	    reg.value = std::move (new_value);
             break;
           }
       }
-    if (reg == NULL)
-      {
-        reg = VEC_safe_push (saved_reg, unwind_info->saved_regs, NULL);
-        reg->number = regnum;
-      }
-    Py_INCREF (pyo_reg_value);
-    reg->value = pyo_reg_value;
+    if (!found)
+      unwind_info->saved_regs->emplace_back (regnum, std::move (new_value));
   }
   Py_RETURN_NONE;
 }
@@ -335,9 +333,7 @@ unwind_infopy_dealloc (PyObject *self)
   saved_reg *reg;
 
   Py_XDECREF (unwind_info->pending_frame);
-  for (i = 0; VEC_iterate (saved_reg, unwind_info->saved_regs, i, reg); i++)
-      Py_DECREF (reg->value);
-  VEC_free (saved_reg, unwind_info->saved_regs);
+  delete unwind_info->saved_regs;
   Py_TYPE (self)->tp_free (self);
 }
 
@@ -560,9 +556,7 @@ pyuw_sniffer (const struct frame_unwind 
   {
     unwind_info_object *unwind_info =
       (unwind_info_object *) pyo_unwind_info.get ();
-    int reg_count = VEC_length (saved_reg, unwind_info->saved_regs);
-    saved_reg *reg;
-    int i;
+    int reg_count = unwind_info->saved_regs->size ();
 
     cached_frame
       = ((cached_frame_info *)
@@ -573,9 +567,11 @@ pyuw_sniffer (const struct frame_unwind 
     cached_frame->reg_count = reg_count;
 
     /* Populate registers array.  */
-    for (i = 0; VEC_iterate (saved_reg, unwind_info->saved_regs, i, reg); i++)
+    for (int i = 0; i < unwind_info->saved_regs->size (); ++i)
       {
-        struct value *value = value_object_to_value (reg->value);
+	saved_reg *reg = &(*unwind_info->saved_regs)[i];
+
+        struct value *value = value_object_to_value (reg->value.get ());
         size_t data_size = register_size (gdbarch, reg->number);
 
 	cached_frame->reg[i].num = reg->number;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/stack.c ./gdb/stack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/stack.c	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/stack.c	2018-06-28 01:50:04.000000000 +0000
@@ -2556,8 +2556,8 @@ on this backtrace."));
 
   if (dbx_commands)
     add_com ("func", class_stack, func_command, _("\
-Select the stack frame that contains <func>.\n\
-Usage: func <name>"));
+Select the stack frame that contains NAME.\n\
+Usage: func NAME"));
 
   add_setshow_enum_cmd ("frame-arguments", class_stack,
 			print_frame_arguments_choices, &print_frame_arguments,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/testsuite/ChangeLog ./gdb/testsuite/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/testsuite/ChangeLog	2018-06-27 01:49:41.000000000 +0000
+++ ./gdb/testsuite/ChangeLog	2018-06-28 01:50:04.000000000 +0000
@@ -1,3 +1,9 @@
+2018-06-27  Omair Javaid  <omair.javaid@linaro.org>
+
+	PR gdb/21695
+	* gdb.base/infoline-reloc-main-from-zero.exp: New test.
+	* gdb.base/infoline-reloc-main-from-zero.c: New file.
+
 2018-06-26  Tom Tromey  <tom@tromey.com>
 
 	PR rust/22574:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c ./gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c	2018-06-28 01:50:04.000000000 +0000
@@ -0,0 +1,24 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2018 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 case for PR gdb/21695
+
+int
+main ()
+{
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp ./gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp	2018-06-28 01:50:04.000000000 +0000
@@ -0,0 +1,51 @@
+# Copyright 2018 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
+
+#
+# PR gdb/21695
+# This tests if gdb can display line information of relocated symbols in the
+# case where executable text section was at address zero before relocation.
+#
+
+standard_testfile .c
+
+if [get_compiler_info] {
+    return -1
+}
+
+# Build executable with stripped startup code and text section starting at zero
+
+set opts {debug "additional_flags=-nostdlib -emain -Wl,-Ttext=0x00"}
+
+if {[build_executable $testfile.exp $testfile $srcfile $opts] == -1} {
+    untested "failed to compile"
+    return -1
+}
+
+clean_restart
+
+# Load symbols at an offset 0xffff0000 using add-symbol-file
+
+gdb_test "add-symbol-file $binfile 0xffff0000" \
+    "Reading symbols from .*" \
+    "add-symbol-file" \
+    "add symbol table from file \".*\" at.*\\(y or n\\) " "y"
+
+# Check if we are able to read offset adjusted line information of main
+    
+gdb_test "info line main" \
+	"Line.*starts at address 0xffff0000.*and ends at.*"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/md5.sum ./md5.sum
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180627/md5.sum	2018-06-27 01:54:36.000000000 +0000
+++ ./md5.sum	2018-06-28 01:54:36.000000000 +0000
@@ -36,7 +36,7 @@ f1d3d3b2e2ce3d9c8c6f9ceab9502966  bfd/el
 aca9b8a230aca9041fb5c04b5d2a65a4  bfd/wasm-module.c
 306baaf0ea55df8e2288fc88ab166b7b  bfd/elf64-mips.c
 32c1c2c183f56bd2b5af2fb9c3ca94af  bfd/cpu-m9s12x.c
-5b2182d826c1b87cde299626e7144519  bfd/version.h
+5f18490823bc7645950977ee6059669c  bfd/version.h
 25cd4c1378787d5bb9fa74b13a55098a  bfd/cpu-tilegx.c
 cfcd2011881a504922bee6bf40ce6898  bfd/coff-mcore.c
 836b9de6d0ea1914f82c0ec0fa0341ef  bfd/cpu-avr.c
@@ -854,7 +854,7 @@ bcfc19b70ff79264316f9c04af824c99  gdb/am
 dfaf3faacb3c08d5b9f075a8c3872332  gdb/tramp-frame.h
 833fae9ee313d70383e54396e0ac13fb  gdb/gdb-demangle.h
 168375ae7082bf0d3229688c92fee908  gdb/ravenscar-thread.c
-c13d35763054f849c36c437e55b8d66f  gdb/Makefile.in
+773249bc1877b1774925e4c7cd3da372  gdb/Makefile.in
 2603991e47a9a9895354fecfa4df3458  gdb/btrace.h
 73399ae746f34504589ef4b924028ec8  gdb/x86-bsd-nat.c
 22eabee590bcd5b27bad582b23e713e6  gdb/windows-nat.h
@@ -872,6 +872,7 @@ dd1aed8bedb03e361b8fd9884644cd2e  gdb/ru
 501ae955fa3ef4a08cc25398e20bcfdb  gdb/linux-fork.c
 0209e0d89626754a049ddde77509774d  gdb/m2-exp.y
 4ffeac77c22ae4af4651309024938783  gdb/f-lang.h
+85ba31586dc4b07fc3f0c627be47a5ea  gdb/gdb-gdb.py.in
 30727866716057a9df4b60f4c9d7f7a9  gdb/hppa-obsd-nat.c
 5411073e8c80e7a4c2d2cd7a710f0818  gdb/dwarf-index-common.h
 174457b56fc072a2b1819b99219ac9a2  gdb/amd64-nbsd-tdep.c
@@ -906,7 +907,7 @@ d7e75de86d964c5d969ce24daf16db4c  gdb/py
 cd97570e0bc03201d1c30994222f9495  gdb/python/py-record-full.c
 06f1b0cb4daacbbd09a57abfdc5fdd4e  gdb/python/python-config.py
 8d636e7ae733dcc3e58cd19ac503d6a6  gdb/python/py-value.c
-910ffbfdfde97519864f1cb1f7cd8a0f  gdb/python/py-unwind.c
+6cc306c3c1cd22e7a0384283419017e2  gdb/python/py-unwind.c
 77191a9d2d4ab1bdc49a04951ac0254b  gdb/python/py-instruction.h
 f79f94ce42c1aace9744c02f8ed3cb2e  gdb/python/py-type.c
 5a72c01c683ad8535a321ba8089e7c52  gdb/python/py-evtregistry.c
@@ -1120,14 +1121,14 @@ c924da8407c465c0db47754b07e866a3  gdb/ui
 da8fe61630bfcd15538771e7933f12be  gdb/user-regs.h
 f98668e6b62ba2b17a25ebb7e9961fc1  gdb/PROBLEMS
 a4ea395a78e14a25f8102cc1de4c1d31  gdb/config.in
-49e21582dc081e7311ee416dad296352  gdb/configure.ac
+330a318433c42fa9344f8deaf8dc7ac5  gdb/configure.ac
 752cc726423f319218ee7048b5dc7d38  gdb/ChangeLog-2015
 061e4671402dd0e7ded6e2e32902110e  gdb/amd64-sol2-tdep.c
 0f9a44a28e5b202ab991ef8cf4b40749  gdb/vax-tdep.c
 0f555dbb917d5445cdf2085555ff43df  gdb/sparc-sol2-nat.c
 1f8f1d89c8bbf38868ed99f73c858dd2  gdb/linespec.h
 424b4fdaa027f9abf9702c54f517dbf4  gdb/README
-5d797ae2c5820e78219e514348f5f4f5  gdb/fbsd-nat.h
+08193c552ff2cba48e95810ac883afef  gdb/fbsd-nat.h
 783e4920ae8f7eae2da5af0849785671  gdb/inferior.c
 bc61cf5cb75086c360f993326940d08f  gdb/mips-tdep.c
 209ebf519095c34cafb76a963d12acb2  gdb/solib-dsbt.c
@@ -1225,7 +1226,7 @@ b2c8fef3850846b8f0a4671cea240e1c  gdb/fr
 f044417404f6ae0c8dac89b4a1c420bb  gdb/spu-tdep.h
 1df6cf457824701923e615018594ddb0  gdb/darwin-nat.c
 b6d79e9ae518964e4301adb41542e468  gdb/symfile-debug.c
-24fad222e8f29adc4d28a9f97187bdf5  gdb/stack.c
+3b81f35dcef3d45d98a91d7e313deaea  gdb/stack.c
 d86fe1dda238ab5c5048f68c3e77baea  gdb/ser-tcp.c
 4e82906dae65f215ebfb7f9d19dd22a8  gdb/vax-tdep.h
 a1de1ed6c56a3ddf88a67d37e68bed5d  gdb/ptrace.m4
@@ -1309,7 +1310,7 @@ e610fd306c657b8e7f9000fa3bf5882a  gdb/ia
 f8f1ab52621779541bd7140de2659561  gdb/cli-out.c
 07a95963a989d0531c80613893ccbba5  gdb/main.c
 f8b3948081308df3a0bfe84dfb932fe1  gdb/acx_configure_dir.m4
-3bd7a904afd7fde2803e7f6cd7d6377d  gdb/proc-service.c
+6f3d3f0808ea273a2c9e3d430f495686  gdb/proc-service.c
 0c87460dac05a16c143a6c123f19913f  gdb/inflow.h
 16676b9547f9a7ac95c648ec5962cbc5  gdb/ChangeLog-2010
 2b066f1c1354bd328062b692ec7fc86b  gdb/glibc-tdep.c
@@ -1320,7 +1321,6 @@ f682e9806e34c33f2a9a8b19f77ad95c  gdb/al
 68b8a36fde7893e96b239cb9d71405a4  gdb/addrmap.c
 c3831d0702b49d3d3b6ae16280491593  gdb/sentinel-frame.c
 fa1440bcc011b9fc8a6a501318aeb16d  gdb/score-tdep.h
-e306e8a33e05fb16fe99185ca4a1972d  gdb/gdb-gdb.py
 2b245522e18db1726572435090dd03a1  gdb/coff-pe-read.c
 90f0c90b6728b0bad96366815ecf5fc6  gdb/bcache.c
 e82e1a53dbb63d792fc8645192a4b2cb  gdb/gdb-gdb.gdb.in
@@ -1386,7 +1386,7 @@ c311d3a15e412d63bc5b150bca5c7a49  gdb/al
 9a6c5342ed843d818b450e5f857aa50a  gdb/arch-utils.c
 44f9af90f4739ed09ee15f55360be335  gdb/cp-valprint.c
 66f799c8dd14357e25888b2221b0ea52  gdb/disable-implicit-rules.mk
-fac666a80d963a4ea6c8b679eef2b926  gdb/dwarf2read.c
+9799ef15287fe626befb712dec7aab68  gdb/dwarf2read.c
 c64c7593e7d71625ee20f04d28ab988e  gdb/or1k-tdep.c
 c2e1d902b17fdaf4a480a18af3971788  gdb/amd64-windows-tdep.c
 e4708e4b23e4e6ddd07c7245736d37b3  gdb/testsuite/config/cygmon.exp
@@ -2730,6 +2730,7 @@ eacccee49be69122bda74aaf5426d789  gdb/te
 fe5009ce8b19b723e7e6deb3c0ca9a0e  gdb/testsuite/gdb.base/gdb_history
 54e3563579a6906275887504832e0847  gdb/testsuite/gdb.base/gcore.exp
 75b198cef5b778a84ef1bfbf14e4809b  gdb/testsuite/gdb.base/readnever.c
+8cfc19616a1425178419d6802e685472  gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c
 6bcddbdd0fa843802ee9afcbd88bb4f6  gdb/testsuite/gdb.base/list-ambiguous1.c
 622e5be1f47e64787af852e883b07061  gdb/testsuite/gdb.base/symbol-without-target_section.c
 441c26f04ce36b0885bf3402e8bf88cd  gdb/testsuite/gdb.base/bitops.exp
@@ -2838,6 +2839,7 @@ a67ca84d48f2497d9c1b6d52625248ff  gdb/te
 d7312fdea05faf8785b47bc21248a460  gdb/testsuite/gdb.base/break-unload-file.c
 a27e9c3adf85835fd5ec921e62b1df71  gdb/testsuite/gdb.base/attach.c
 2b9b602de7cbf1f3c3a2feb173282563  gdb/testsuite/gdb.base/nostdlib.c
+3420b3e01d7daebb273017eeffc08ec8  gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp
 2985fd40487382a4f1aafbb8802f4eed  gdb/testsuite/gdb.base/hashline2.exp
 28fab1fdd514da6fd333b10756238038  gdb/testsuite/gdb.base/solib-symbol-lib.c
 7745a1ccc2180837e397c4e196c9171a  gdb/testsuite/gdb.base/new-ui-echo.exp
@@ -4304,7 +4306,7 @@ d44d1fe2176806ee76348b558b3a67ab  gdb/te
 de055987af9fd672f5e6aa5280e504cf  gdb/testsuite/gdb.go/integers.exp
 68d17058fa82304a192749f0eadc138d  gdb/testsuite/gdb.go/strings.go
 81b7ed6cb92c627d245bd2efc4b953b9  gdb/testsuite/gdb.go/methods.go
-50a91e152fe66ef82b40cf2ef8306e52  gdb/testsuite/ChangeLog
+bce8daad9891659aadd3d507f19606aa  gdb/testsuite/ChangeLog
 b3f11b21e5921c419a43f93720dedf85  gdb/testsuite/gdb.asm/empty.inc
 14f9e33160bd01242a862c5c90513000  gdb/testsuite/gdb.asm/asm-source.exp
 f1621bbbb2acbec5adef86d7d9549975  gdb/testsuite/gdb.asm/bfin.inc
@@ -5053,43 +5055,43 @@ f1b65f9353229306b9081c1135d85247  gdb/sy
 29209f0a84f981d84f100e8fc4c3a84b  gdb/f-valprint.c
 b6bbbfc248f90052ce30fda420c5916f  gdb/gdb_curses.h
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-2496a3c86ca3e2ea4b5de849dacb232a  gdb/doc/gdb.info-3
-10740cdec0f756a9ba72e51373f9b35e  gdb/doc/gdb.info-4
+1fbbe107015979d5cc4afc3db2a6b613  gdb/doc/gdb.info-3
+a1fa73fd47fb4b0bd1a48b8397dd567d  gdb/doc/gdb.info-4
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 7293ab6b8a4482a4fb58806f78e27fd9  gdb/doc/Makefile.in
-b705010945f957d2ea3279fde99c04af  gdb/doc/gdb.info-7
-1a3fccdcd66e37dd78d03ca51de68023  gdb/doc/gdbserver.1
+739350745bf3fa311ab8ad9ca07f57a6  gdb/doc/gdb.info-7
+e7a6986acc4a0916bd43607db53c2451  gdb/doc/gdbserver.1
 8a3211e1c1b6c1a9ae823c3c469675e8  gdb/doc/guile.texi
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 319d74c658533df2b0bedcca97af4d94  gdb/doc/stabs.info
-ba6dfa60e9b878a2187909aaa0d722ed  gdb/doc/gdb.info-5
+9d279b06878ead1c5878c55ebc283928  gdb/doc/gdb.info-5
 19abe6cc6d5cc545f19b7c7703223589  gdb/doc/agentexpr.texi
 66674dc351ba95941f422dc18cae24bb  gdb/doc/.gitignore
-c682f9da86d49fdd70f4e5375c80d0f3  gdb/doc/gdb.info-1
+2b5509f84d01976dc295218240da64bf  gdb/doc/gdb.info-1
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
-fd23abdc6e8bc2d53bd9b22317479e75  gdb/doc/gdb.info-6
+2c6a27d845df9d4a98e9bb4dd1736cbb  gdb/doc/gdb.info-6
 7bd7ce5009d6f2bc59d01b497f3c178f  gdb/doc/gdb.texinfo
-6c85c77344498f5c9a26d2156e9e7699  gdb/doc/gdb-add-index.1
+568e17c00e987fcfc2997562891adf37  gdb/doc/gdb-add-index.1
 553b7fe1bf4b5d8b96fdb8cd83503de1  gdb/doc/stack_frame.svg
 04c82b1da7e894a6555868e4f86225af  gdb/doc/filter-for-doxygen
 6eef6173ced7b929f5142c1577f2189a  gdb/doc/Doxyfile-gdb-api.in
 26a572acbe3a2b351c0d3c0a2790b07d  gdb/doc/annotate.info
-aab5346f99f1d201ee037e4ab282de3d  gdb/doc/gdb.info-2
+de5a74f53d4f1d85d089f7479067a1c6  gdb/doc/gdb.info-2
 0e44f6ffe6996c2827630e31909c3e1e  gdb/doc/refcard.tex
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-46c8df4aba27854a6b4a01f391fe6fe8  gdb/doc/gdb.info
+424e9a6f256289fb81e72ce3f201d1d4  gdb/doc/gdb.info
 65a7709429887bbf3a2d4cc49bfe2a38  gdb/doc/python.texi
 c3feb7ddebdf77fd82e65fc406bc2f23  gdb/doc/stabs.texinfo
 94b067218ba95d08bfcb164f08c87b45  gdb/doc/ChangeLog
-305e34646a7e41f2f9cb2cdfc99ecd82  gdb/doc/gdb.1
-7f489ac5824a4f31ddbf1b31db925859  gdb/doc/gcore.1
+1bcb61c903726b6c77a371e488b4c0c3  gdb/doc/gdb.1
+3ee514d4016dbb7d19d1cb3fec1a2ff3  gdb/doc/gcore.1
 d39233c86ed6a6dc9e853ae6a11fe03e  gdb/doc/stack_frame.pdf
 2ad37190a4e38a8186d90bc76fc4e551  gdb/doc/Doxyfile-base.in
 3e12b16a85438bdf1fd7355cd397282a  gdb/doc/all-cfg.texi
 bf96494e6e4d346175babd5ef9781882  gdb/doc/gpl.texi
 cd5e3faa9bd1b684a73c7d527cdb4988  gdb/doc/filter-params.pl
 7bfdb0765c5d050d204fbb30aeeba0d8  gdb/doc/stack_frame.eps
-4878a5cb672e758f6fb3545fc1b15347  gdb/doc/gdbinit.5
+08d5ba677562f9755d62273f2952b6e5  gdb/doc/gdbinit.5
 78d7bd07699d6e1b53e552cc3a1c16ef  gdb/doc/Doxyfile-gdb-xref.in
 d398b8cec3d96f0f3267dac6b8fe64bb  gdb/doc/annotate.texinfo
 5863a78c1571978dc97dccb25e481134  gdb/doc/doxy-index.in
@@ -5158,7 +5160,7 @@ d35b315df8256bb77bf26fa28642a969  gdb/ri
 704c95954ef5b34bc650e078aedde839  gdb/dicos-tdep.c
 8231b684b7d88405d04d2bef46a24822  gdb/ChangeLog-2004
 86da50955a802a40f72545fdfc19c63e  gdb/record-btrace.h
-f8bb4106256c8f616e0916620f5f135c  gdb/machoread.c
+06a4237a871dbe75c6fea5c25dfd8e17  gdb/machoread.c
 951efdff8ce9755b27e81645a8119faa  gdb/printcmd.c
 3553b307e4b25392068d8f70aa7e80ae  gdb/serial.c
 df42b606868ed1d0f337a51b6c18f6d9  gdb/gcore.in
@@ -5569,7 +5571,7 @@ f063061f88467f0dab6fe7b7d2bd5317  gdb/x8
 6e58fafea49b69765fbee4f97d614eb1  gdb/frame-unwind.c
 1a4cf2a482540ae09973aab3c000b178  gdb/acinclude.m4
 ab116d0d4c883f3863e1cd60796d6926  gdb/arm-tdep.h
-190c9da4110161e255d8dbe38c10198e  gdb/configure
+7128461f5c3b1ef9692cf24eac3f9a6b  gdb/configure
 1b5e1b259305f46dfc332fdcc9d4972f  gdb/main.h
 952ece21c04cf33578607c85c9072e14  gdb/alpha-tdep.c
 448f21780f4b07afc2dedf20f5cae9a0  gdb/xml-tdesc.h
@@ -5586,7 +5588,7 @@ a9395d09415322faea2304f9a1d7d9e2  gdb/co
 c8ad35fbed9ae9f7955517bb9dfddaf3  gdb/std-regs.c
 f18eaf82079c22fefde0df5f1a87e1e7  gdb/go-lang.h
 08acbfe7a6b5373b372b4cbe252da59c  gdb/i386-windows-nat.c
-48a48b9c010fab8bada0a7ac14aeb241  gdb/po/gdb.pot
+3db56c9687be33d08fea8a2f184b0484  gdb/po/gdb.pot
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
 0f52c2a584933e0bf3b982ada452c462  gdb/break-catch-syscall.c
 54c4454b0473cd46460ddd4a1d8697a6  gdb/ada-lang.c
@@ -5618,7 +5620,7 @@ f539f4273565a74911411b6f401d41e5  gdb/nb
 3c9961cb6c84271cfbbde613a1c7962d  gdb/i386-fbsd-nat.c
 22b7bd034786740f2c39f2e5011e6265  gdb/mipsread.c
 1b4194bf7b4056dfa96ced19566459ad  gdb/amd64-darwin-tdep.c
-c59099520028d5004e416a34c12908ac  gdb/ChangeLog
+75de858702f3f942e3c47f4e51689ea9  gdb/ChangeLog
 59570a0bc164919d36efd6a8d2ef0c89  gdb/go-typeprint.c
 fc2f696609dae162343590eeb57eda62  gdb/score-tdep.c
 c75bca55efb6a051ca94c96437efc365  gdb/xml-support.h
