diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/ChangeLog ./bfd/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/ChangeLog	2019-10-01 01:49:26.000000000 +0000
+++ ./bfd/ChangeLog	2019-10-08 01:49:28.000000000 +0000
@@ -1,3 +1,105 @@
+2019-10-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+	* elf32-msp430.c (elf32_msp430_merge_mspabi_attributes): Rename to..
+	(elf32_msp430_merge_msp430_attributes): Add support for merging
+	the GNU object attribute for data region.
+
+2019-10-07  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Do allocate
+	space for local got non-tls relocs when PIE.
+
+2019-10-07  Alan Modra  <amodra@gmail.com>
+
+	* elflink.c (elf_fixup_link_order): Don't attempt to find
+	an elf_section for linker created bfd sections.
+
+2019-10-07  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (ppc_elf_tls_optimize): Don't process R_PPC_TLSLD
+	with non-local symbol.  Don't double count __tls_get_addr calls
+	with marker relocs.
+	* elf64-ppc.c (ppc64_elf_tls_optimize): Likewise.
+
+2019-10-07  Alan Modra  <amodra@gmail.com>
+
+	* elf32-ppc.c (nomark_tls_get_addr): Rename from has_tls_get_addr_call
+	throughout.
+	* elf64-ppc.c (nomark_tls_get_addr): Likewise.
+
+2019-10-04  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c (ppc64_elf_check_relocs): Move initialisation of vars.
+	(ppc64_elf_tls_optimize): Correct is_local condition.
+	(allocate_got): Don't reserve dynamic relocations for any of the
+	tls got relocs in PIEs when the symbol is local.
+	(allocate_dynrelocs): Correct validity test for local sym using
+	tlsld_got slot.
+	(ppc64_elf_size_dynamic_sections): Don't reserve dynamic relocations
+	for any of the tls got relocs in PIEs.
+	(ppc64_elf_layout_multitoc): Likewise.
+	(ppc64_elf_relocate_section): Correct validity test for local sym
+	using tlsld_got slot.  Don't emit dynamic relocations for any of
+	the tls got relocs in PIEs when the symbol is local.
+	* elf32-ppc.c (ppc_elf_tls_optimize): Correct is_local condition.
+	(got_relocs_needed): Delete.
+	(allocate_dynrelocs): Correct validity test for local sym using
+	tlsld_got slot.  Don't reserve dynamic relocations for any of the
+	tls got relocs in PIEs when the symbol is local.
+	(ppc_elf_size_dynamic_sections): Don't reserve dynamic relocations
+	for any of the tls got relocs in PIEs.
+	(ppc_elf_relocate_section): Correct validity test for local sym
+	using tlsld_got slot.  Don't emit dynamic relocations for any of
+	the tls got relocs in PIEs when the symbol is local.
+
+2019-10-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	PR ld/22263
+	PR ld/25056
+	* elf32-arm.c (elf32_arm_tls_transition): Use bfd_link_dll instead of
+	bfd_link_pic for TLS checks.
+	(elf32_arm_final_link_relocate): Likewise.
+	(allocate_dynrelocs_for_symbol): Likewise.
+
+2019-10-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
+
+	PR ld/25062
+	* elf32-arm.c (elf32_arm_final_link_relocate): Sign extend data.
+
+2019-09-30  Nick Alcock  <nick.alcock@oracle.com>
+
+	* elf-bfd.h (bfd_section_is_ctf): New inline function.
+	* elf.c (special_sections_c): Add ".ctf".
+	(assign_file_positions_for_non_load_sections): Note that
+	compressed debugging sections etc are not assigned here.  Treat
+	CTF sections like SEC_ELF_COMPRESS sections when is_linker_output:
+	sh_offset -1.
+	(assign_file_positions_except_relocs): Likewise.
+	(find_section_in_list): Note that debugging and CTF sections, as
+	well as reloc sections, are assigned later.
+	(_bfd_elf_assign_file_positions_for_non_load): CTF sections get
+	their size and contents updated.
+	(_bfd_elf_set_section_contents): Skip CTF sections: unlike
+	compressed sections, they have no uncompressed content to copy at
+	this stage.
+	* elflink.c (elf_link_swap_symbols_out): Call the examine_strtab
+	callback right before the strtab is written out.
+	(bfd_elf_final_link): Don't cache the section contents of CTF
+	sections: they are not populated yet.  Call the emit_ctf callback
+	right at the end, after all the symbols and strings are flushed
+	out.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* elf-strtab.c (_bfd_elf_strtab_len): New.
+	(_bfd_elf_strtab_str): Likewise.
+	* bfd-elf.h: Declare them.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* elf-bfd.h (bfd_elf_get_str_section): Add.
+	* elf.c (bfd_elf_get_str_section): No longer static.
+
 2019-09-26  Alan Modra  <amodra@gmail.com>
 
 	PR 24262
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf32-arm.c ./bfd/elf32-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf32-arm.c	2019-10-01 01:49:27.000000000 +0000
+++ ./bfd/elf32-arm.c	2019-10-08 01:49:28.000000000 +0000
@@ -4914,7 +4914,7 @@ elf32_arm_tls_transition (struct bfd_lin
 {
   int is_local = (h == NULL);
 
-  if (bfd_link_pic (info)
+  if (bfd_link_dll (info)
       || (h && h->root.type == bfd_link_hash_undefweak))
     return r_type;
 
@@ -11700,7 +11700,7 @@ elf32_arm_final_link_relocate (reloc_how
 	  {
 	    /* If we don't know the module number, create a relocation
 	       for it.  */
-	    if (bfd_link_pic (info))
+	    if (bfd_link_dll (info))
 	      {
 		Elf_Internal_Rela outrel;
 
@@ -11804,7 +11804,7 @@ elf32_arm_final_link_relocate (reloc_how
 	       now, and emit any relocations.  If both an IE GOT and a
 	       GD GOT are necessary, we emit the GD first.  */
 
-	    if ((bfd_link_pic (info) || indx != 0)
+	    if ((bfd_link_dll (info) || indx != 0)
 		&& (h == NULL
 		    || (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
 			&& !resolved_to_zero)
@@ -11821,7 +11821,7 @@ elf32_arm_final_link_relocate (reloc_how
 		/* We should have relaxed, unless this is an undefined
 		   weak symbol.  */
 		BFD_ASSERT ((h && (h->root.type == bfd_link_hash_undefweak))
-			    || bfd_link_pic (info));
+			    || bfd_link_dll (info));
 		BFD_ASSERT (globals->sgotplt_jump_table_size + offplt + 8
 			    <= globals->root.sgotplt->size);
 
@@ -12027,9 +12027,9 @@ elf32_arm_final_link_relocate (reloc_how
 	    unsigned long data, insn;
 	    unsigned thumb;
 
-	    data = bfd_get_32 (input_bfd, hit_data);
+	    data = bfd_get_signed_32 (input_bfd, hit_data);
 	    thumb = data & 1;
-	    data &= ~1u;
+	    data &= ~1ul;
 
 	    if (thumb)
 	      {
@@ -16494,7 +16494,7 @@ allocate_dynrelocs_for_symbol (struct el
 	    indx = h->dynindx;
 
 	  if (tls_type != GOT_NORMAL
-	      && (bfd_link_pic (info) || indx != 0)
+	      && (bfd_link_dll (info) || indx != 0)
 	      && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
 		  || h->root.type != bfd_link_hash_undefweak))
 	    {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf32-msp430.c ./bfd/elf32-msp430.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf32-msp430.c	2019-10-01 01:49:27.000000000 +0000
+++ ./bfd/elf32-msp430.c	2019-10-08 01:49:28.000000000 +0000
@@ -2408,15 +2408,15 @@ data_model (int model)
     }
 }
 
-/* Merge MSPABI object attributes from IBFD into OBFD.
+/* Merge MSPABI and GNU object attributes from IBFD into OBFD.
    Raise an error if there are conflicting attributes.  */
 
 static bfd_boolean
-elf32_msp430_merge_mspabi_attributes (bfd *ibfd, struct bfd_link_info *info)
+elf32_msp430_merge_msp430_attributes (bfd *ibfd, struct bfd_link_info *info)
 {
   bfd *obfd = info->output_bfd;
-  obj_attribute *in_attr;
-  obj_attribute *out_attr;
+  obj_attribute *in_msp_attr, *in_gnu_attr;
+  obj_attribute *out_msp_attr, *out_gnu_attr;
   bfd_boolean result = TRUE;
   static bfd * first_input_bfd = NULL;
 
@@ -2435,45 +2435,48 @@ elf32_msp430_merge_mspabi_attributes (bf
     {
       _bfd_elf_copy_obj_attributes (ibfd, obfd);
 
-      out_attr = elf_known_obj_attributes_proc (obfd);
+      out_msp_attr = elf_known_obj_attributes_proc (obfd);
 
       /* Use the Tag_null value to indicate that
 	 the attributes have been initialized.  */
-      out_attr[0].i = 1;
+      out_msp_attr[0].i = 1;
 
       first_input_bfd = ibfd;
       return TRUE;
     }
 
-  in_attr = elf_known_obj_attributes_proc (ibfd);
-  out_attr = elf_known_obj_attributes_proc (obfd);
+  in_msp_attr = elf_known_obj_attributes_proc (ibfd);
+  out_msp_attr = elf_known_obj_attributes_proc (obfd);
+  in_gnu_attr = elf_known_obj_attributes (ibfd) [OBJ_ATTR_GNU];
+  out_gnu_attr = elf_known_obj_attributes (obfd) [OBJ_ATTR_GNU];
 
   /* The ISAs must be the same.  */
-  if (in_attr[OFBA_MSPABI_Tag_ISA].i != out_attr[OFBA_MSPABI_Tag_ISA].i)
+  if (in_msp_attr[OFBA_MSPABI_Tag_ISA].i != out_msp_attr[OFBA_MSPABI_Tag_ISA].i)
     {
       _bfd_error_handler
 	/* xgettext:c-format */
 	(_("error: %pB uses %s instructions but %pB uses %s"),
-	 ibfd, isa_type (in_attr[OFBA_MSPABI_Tag_ISA].i),
-	 first_input_bfd, isa_type (out_attr[OFBA_MSPABI_Tag_ISA].i));
+	 ibfd, isa_type (in_msp_attr[OFBA_MSPABI_Tag_ISA].i),
+	 first_input_bfd, isa_type (out_msp_attr[OFBA_MSPABI_Tag_ISA].i));
       result = FALSE;
     }
 
   /* The code models must be the same.  */
-  if (in_attr[OFBA_MSPABI_Tag_Code_Model].i !=
-      out_attr[OFBA_MSPABI_Tag_Code_Model].i)
+  if (in_msp_attr[OFBA_MSPABI_Tag_Code_Model].i
+      != out_msp_attr[OFBA_MSPABI_Tag_Code_Model].i)
     {
       _bfd_error_handler
 	/* xgettext:c-format */
 	(_("error: %pB uses the %s code model whereas %pB uses the %s code model"),
-	 ibfd, code_model (in_attr[OFBA_MSPABI_Tag_Code_Model].i),
-	 first_input_bfd, code_model (out_attr[OFBA_MSPABI_Tag_Code_Model].i));
+	 ibfd, code_model (in_msp_attr[OFBA_MSPABI_Tag_Code_Model].i),
+	 first_input_bfd,
+	 code_model (out_msp_attr[OFBA_MSPABI_Tag_Code_Model].i));
       result = FALSE;
     }
 
   /* The large code model is only supported by the MSP430X.  */
-  if (in_attr[OFBA_MSPABI_Tag_Code_Model].i == 2
-      && out_attr[OFBA_MSPABI_Tag_ISA].i != 2)
+  if (in_msp_attr[OFBA_MSPABI_Tag_Code_Model].i == 2
+      && out_msp_attr[OFBA_MSPABI_Tag_ISA].i != 2)
     {
       _bfd_error_handler
 	/* xgettext:c-format */
@@ -2483,41 +2486,69 @@ elf32_msp430_merge_mspabi_attributes (bf
     }
 
   /* The data models must be the same.  */
-  if (in_attr[OFBA_MSPABI_Tag_Data_Model].i !=
-      out_attr[OFBA_MSPABI_Tag_Data_Model].i)
+  if (in_msp_attr[OFBA_MSPABI_Tag_Data_Model].i
+      != out_msp_attr[OFBA_MSPABI_Tag_Data_Model].i)
     {
       _bfd_error_handler
 	/* xgettext:c-format */
 	(_("error: %pB uses the %s data model whereas %pB uses the %s data model"),
-	 ibfd, data_model (in_attr[OFBA_MSPABI_Tag_Data_Model].i),
-	 first_input_bfd, data_model (out_attr[OFBA_MSPABI_Tag_Data_Model].i));
+	 ibfd, data_model (in_msp_attr[OFBA_MSPABI_Tag_Data_Model].i),
+	 first_input_bfd,
+	 data_model (out_msp_attr[OFBA_MSPABI_Tag_Data_Model].i));
       result = FALSE;
     }
 
   /* The small code model requires the use of the small data model.  */
-  if (in_attr[OFBA_MSPABI_Tag_Code_Model].i == 1
-      && out_attr[OFBA_MSPABI_Tag_Data_Model].i != 1)
+  if (in_msp_attr[OFBA_MSPABI_Tag_Code_Model].i == 1
+      && out_msp_attr[OFBA_MSPABI_Tag_Data_Model].i != 1)
     {
       _bfd_error_handler
 	/* xgettext:c-format */
 	(_("error: %pB uses the small code model but %pB uses the %s data model"),
 	 ibfd, first_input_bfd,
-	 data_model (out_attr[OFBA_MSPABI_Tag_Data_Model].i));
+	 data_model (out_msp_attr[OFBA_MSPABI_Tag_Data_Model].i));
       result = FALSE;
     }
 
   /* The large data models are only supported by the MSP430X.  */
-  if (in_attr[OFBA_MSPABI_Tag_Data_Model].i > 1
-      && out_attr[OFBA_MSPABI_Tag_ISA].i != 2)
+  if (in_msp_attr[OFBA_MSPABI_Tag_Data_Model].i > 1
+      && out_msp_attr[OFBA_MSPABI_Tag_ISA].i != 2)
     {
       _bfd_error_handler
 	/* xgettext:c-format */
 	(_("error: %pB uses the %s data model but %pB only uses MSP430 instructions"),
-	 ibfd, data_model (in_attr[OFBA_MSPABI_Tag_Data_Model].i),
+	 ibfd, data_model (in_msp_attr[OFBA_MSPABI_Tag_Data_Model].i),
 	 first_input_bfd);
       result = FALSE;
     }
 
+  /* Just ignore the data region unless the large memory model is in use.
+     We have already checked that ibfd and obfd use the same memory model.  */
+  if ((in_msp_attr[OFBA_MSPABI_Tag_Code_Model].i
+       == OFBA_MSPABI_Val_Code_Model_LARGE)
+      && (in_msp_attr[OFBA_MSPABI_Tag_Data_Model].i
+	  == OFBA_MSPABI_Val_Data_Model_LARGE))
+    {
+      /* We cannot allow "lower region only" to be linked with any other
+	 values (i.e. ANY or NONE).
+	 Before this attribute existed, "ANY" region was the default.  */
+      bfd_boolean ibfd_lower_region_used
+	= (in_gnu_attr[Tag_GNU_MSP430_Data_Region].i
+	   == Val_GNU_MSP430_Data_Region_Lower);
+      bfd_boolean obfd_lower_region_used
+	= (out_gnu_attr[Tag_GNU_MSP430_Data_Region].i
+	   == Val_GNU_MSP430_Data_Region_Lower);
+      if (ibfd_lower_region_used != obfd_lower_region_used)
+	{
+	  _bfd_error_handler
+	    (_("error: %pB can use the upper region for data, "
+	       "but %pB assumes data is exclusively in lower memory"),
+	     ibfd_lower_region_used ? obfd : ibfd,
+	     ibfd_lower_region_used ? ibfd : obfd);
+	  result = FALSE;
+	}
+    }
+
   return result;
 }
 
@@ -2536,7 +2567,7 @@ elf32_msp430_merge_private_bfd_data (bfd
 			       max (bfd_get_mach (ibfd), bfd_get_mach (obfd)));
 #undef max
 
-  return elf32_msp430_merge_mspabi_attributes (ibfd, info);
+  return elf32_msp430_merge_msp430_attributes (ibfd, info);
 }
 
 static bfd_boolean
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf32-ppc.c ./bfd/elf32-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf32-ppc.c	2019-10-01 01:49:27.000000000 +0000
+++ ./bfd/elf32-ppc.c	2019-10-08 01:49:28.000000000 +0000
@@ -2222,8 +2222,9 @@ struct ppc_elf_link_hash_table
 /* Nonzero if this section has TLS related relocations.  */
 #define has_tls_reloc sec_flg0
 
-/* Nonzero if this section has a call to __tls_get_addr.  */
-#define has_tls_get_addr_call sec_flg1
+/* Nonzero if this section has a call to __tls_get_addr lacking marker
+   relocs.  */
+#define nomark_tls_get_addr sec_flg1
 
   /* Flag set when PLTCALL relocs are detected.  */
 #define has_pltcall sec_flg2
@@ -3010,7 +3011,7 @@ ppc_elf_check_relocs (bfd *abfd,
 	    ;
 	  else
 	    /* Mark this section as having an old-style call.  */
-	    sec->has_tls_get_addr_call = 1;
+	    sec->nomark_tls_get_addr = 1;
 	}
 
       switch (r_type)
@@ -4455,11 +4456,7 @@ ppc_elf_tls_optimize (bfd *obfd ATTRIBUT
 			h = (struct elf_link_hash_entry *) h->root.u.i.link;
 		    }
 
-		  is_local = FALSE;
-		  if (h == NULL
-		      || !h->def_dynamic)
-		    is_local = TRUE;
-
+		  is_local = SYMBOL_REFERENCES_LOCAL (info, h);
 		  r_type = ELF32_R_TYPE (rel->r_info);
 		  /* If this section has old-style __tls_get_addr calls
 		     without marker relocs, then check that each
@@ -4468,7 +4465,7 @@ ppc_elf_tls_optimize (bfd *obfd ATTRIBUT
 		     setup insn.  If we don't find matching arg setup
 		     relocs, don't do any tls optimization.  */
 		  if (pass == 0
-		      && sec->has_tls_get_addr_call
+		      && sec->nomark_tls_get_addr
 		      && h != NULL
 		      && h == htab->tls_get_addr
 		      && !expecting_tls_get_addr
@@ -4533,8 +4530,11 @@ ppc_elf_tls_optimize (bfd *obfd ATTRIBUT
 		      else
 			continue;
 
-		    case R_PPC_TLSGD:
 		    case R_PPC_TLSLD:
+		      if (!is_local)
+			continue;
+		      /* Fall through.  */
+		    case R_PPC_TLSGD:
 		      if (rel + 1 < relend
 			  && is_plt_seq_reloc (ELF32_R_TYPE (rel[1].r_info)))
 			{
@@ -4581,7 +4581,7 @@ ppc_elf_tls_optimize (bfd *obfd ATTRIBUT
 		  if (pass == 0)
 		    {
 		      if (!expecting_tls_get_addr
-			  || !sec->has_tls_get_addr_call)
+			  || !sec->nomark_tls_get_addr)
 			continue;
 
 		      if (rel + 1 < relend
@@ -4631,12 +4631,12 @@ ppc_elf_tls_optimize (bfd *obfd ATTRIBUT
 		     indirect call to __tls_get_addr without a marker.
 		     Disable optimization in this case.  */
 		  if ((tls_clear & (TLS_GD | TLS_LD)) != 0
-		      && !sec->has_tls_get_addr_call
+		      && !sec->nomark_tls_get_addr
 		      && ((*tls_mask & (TLS_TLS | TLS_MARK))
 			  != (TLS_TLS | TLS_MARK)))
 		    continue;
 
-		  if (expecting_tls_get_addr)
+		  if (expecting_tls_get_addr == 1 + !sec->nomark_tls_get_addr)
 		    {
 		      struct plt_entry *ent;
 		      bfd_vma addend = 0;
@@ -4649,10 +4649,9 @@ ppc_elf_tls_optimize (bfd *obfd ATTRIBUT
 					  got2, addend);
 		      if (ent != NULL && ent->plt.refcount > 0)
 			ent->plt.refcount -= 1;
-
-		      if (expecting_tls_get_addr == 2)
-			continue;
 		    }
+		  if (tls_clear == 0)
+		    continue;
 
 		  if (tls_set == 0)
 		    {
@@ -5049,24 +5048,6 @@ got_entries_needed (int tls_mask)
   return need;
 }
 
-/* Calculate size of relocs needed for symbol given its TLS_MASK and
-   NEEDed GOT entries.  KNOWN says a TPREL offset can be calculated at
-   link time.  */
-
-static inline unsigned int
-got_relocs_needed (int tls_mask, unsigned int need, bfd_boolean known)
-{
-  /* All the entries we allocated need relocs.
-     Except IE in executable with a local symbol.  We could also omit
-     the DTPREL reloc on the second word of a GD entry under the same
-     condition as that for IE, but ld.so needs to differentiate
-     LD and GD entries.  */
-  if (known && (tls_mask & TLS_TLS) != 0
-      && (tls_mask & (TLS_TPREL | TLS_GDIE)) != 0)
-    need -= 4;
-  return need * sizeof (Elf32_External_Rela) / 4;
-}
-
 /* If H is undefined, make it dynamic if that makes sense.  */
 
 static bfd_boolean
@@ -5119,7 +5100,7 @@ allocate_dynrelocs (struct elf_link_hash
       need = 0;
       if ((eh->tls_mask & (TLS_TLS | TLS_LD)) == (TLS_TLS | TLS_LD))
 	{
-	  if (!eh->elf.def_dynamic)
+	  if (SYMBOL_REFERENCES_LOCAL (info, &eh->elf))
 	    /* We'll just use htab->tlsld_got.offset.  This should
 	       always be the case.  It's a little odd if we have
 	       a local dynamic reloc against a non-local symbol.  */
@@ -5133,20 +5114,19 @@ allocate_dynrelocs (struct elf_link_hash
       else
 	{
 	  eh->elf.got.offset = allocate_got (htab, need);
-	  if ((bfd_link_pic (info)
+	  if (((bfd_link_pic (info)
+		&& !((eh->tls_mask & TLS_TLS) != 0
+		     && bfd_link_executable (info)
+		     && SYMBOL_REFERENCES_LOCAL (info, &eh->elf)))
 	       || (htab->elf.dynamic_sections_created
 		   && eh->elf.dynindx != -1
 		   && !SYMBOL_REFERENCES_LOCAL (info, &eh->elf)))
 	      && !UNDEFWEAK_NO_DYNAMIC_RELOC (info, &eh->elf))
 	    {
 	      asection *rsec;
-	      bfd_boolean tprel_known = (bfd_link_executable (info)
-					 && SYMBOL_REFERENCES_LOCAL (info,
-								     &eh->elf));
-
-	      need = got_relocs_needed (eh->tls_mask, need, tprel_known);
-	      if ((eh->tls_mask & (TLS_TLS | TLS_LD)) == (TLS_TLS | TLS_LD)
-		  && eh->elf.def_dynamic)
+
+	      need *= sizeof (Elf32_External_Rela) / 4;
+	      if ((eh->tls_mask & (TLS_TLS | TLS_LD)) == (TLS_TLS | TLS_LD))
 		need -= sizeof (Elf32_External_Rela);
 	      rsec = htab->elf.srelgot;
 	      if (eh->elf.type == STT_GNU_IFUNC)
@@ -5594,12 +5574,13 @@ ppc_elf_size_dynamic_sections (bfd *outp
 	    else
 	      {
 		*local_got = allocate_got (htab, need);
-		if (bfd_link_pic (info))
+		if (bfd_link_pic (info)
+		    && !((*lgot_masks & TLS_TLS) != 0
+			 && bfd_link_executable (info)))
 		  {
 		    asection *srel;
-		    bfd_boolean tprel_known = bfd_link_executable (info);
 
-		    need = got_relocs_needed (*lgot_masks, need, tprel_known);
+		    need *= sizeof (Elf32_External_Rela) / 4;
 		    srel = htab->elf.srelgot;
 		    if ((*lgot_masks & (TLS_TLS | PLT_IFUNC)) == PLT_IFUNC)
 		      srel = htab->elf.irelplt;
@@ -5676,7 +5657,7 @@ ppc_elf_size_dynamic_sections (bfd *outp
   if (htab->tlsld_got.refcount > 0)
     {
       htab->tlsld_got.offset = allocate_got (htab, 8);
-      if (bfd_link_pic (info))
+      if (bfd_link_dll (info))
 	htab->elf.srelgot->size += sizeof (Elf32_External_Rela);
     }
   else
@@ -7246,7 +7227,7 @@ ppc_elf_relocate_section (bfd *output_bf
 		 stays with its arg setup insns, ie. that the next
 		 reloc is the __tls_get_addr call associated with
 		 the current reloc.  Edit both insns.  */
-	      if (input_section->has_tls_get_addr_call
+	      if (input_section->nomark_tls_get_addr
 		  && rel + 1 < relend
 		  && branch_reloc_hash_match (input_bfd, rel + 1,
 					      htab->tls_get_addr))
@@ -7749,8 +7730,7 @@ ppc_elf_relocate_section (bfd *output_bf
 
 	    indx = 0;
 	    if (tls_type == (TLS_TLS | TLS_LD)
-		&& (h == NULL
-		    || !h->def_dynamic))
+		&& SYMBOL_REFERENCES_LOCAL (info, h))
 	      offp = &htab->tlsld_got.offset;
 	    else if (h != NULL)
 	      {
@@ -7792,8 +7772,8 @@ ppc_elf_relocate_section (bfd *output_bf
 
 		if (offp == &htab->tlsld_got.offset)
 		  tls_m = TLS_LD;
-		else if (h == NULL
-			 || !h->def_dynamic)
+		else if ((tls_m & TLS_LD) != 0
+			 && SYMBOL_REFERENCES_LOCAL (info, h))
 		  tls_m &= ~TLS_LD;
 
 		/* We might have multiple got entries for this sym.
@@ -7827,9 +7807,8 @@ ppc_elf_relocate_section (bfd *output_bf
 		    if (indx != 0
 			|| (bfd_link_pic (info)
 			    && (h == NULL
-				|| !UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)
-				|| offp == &htab->tlsld_got.offset)
-			    && !(tls_ty == (TLS_TLS | TLS_TPREL)
+				|| !UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
+			    && !(tls_ty != 0
 				 && bfd_link_executable (info)
 				 && SYMBOL_REFERENCES_LOCAL (info, h))))
 		      {
@@ -7939,8 +7918,7 @@ ppc_elf_relocate_section (bfd *output_bf
 		if (tls_type != (TLS_TLS | TLS_LD))
 		  {
 		    if ((tls_mask & TLS_LD) != 0
-			&& !(h == NULL
-			     || !h->def_dynamic))
+			&& !SYMBOL_REFERENCES_LOCAL (info, h))
 		      off += 8;
 		    if (tls_type != (TLS_TLS | TLS_GD))
 		      {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf64-ppc.c ./bfd/elf64-ppc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf64-ppc.c	2019-10-01 01:49:27.000000000 +0000
+++ ./bfd/elf64-ppc.c	2019-10-08 01:49:28.000000000 +0000
@@ -3218,8 +3218,9 @@ struct ppc_link_hash_table
 /* Nonzero if this section has TLS related relocations.  */
 #define has_tls_reloc sec_flg0
 
-/* Nonzero if this section has an old-style call to __tls_get_addr.  */
-#define has_tls_get_addr_call sec_flg1
+/* Nonzero if this section has a call to __tls_get_addr lacking marker
+   relocations.  */
+#define nomark_tls_get_addr sec_flg1
 
 /* Nonzero if this section has any toc or got relocs.  */
 #define has_toc_reloc sec_flg2
@@ -4543,8 +4544,6 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 	    sec->has_toc_reloc = 1;
 	}
 
-      tls_type = 0;
-      ifunc = NULL;
       r_type = ELF64_R_TYPE (rel->r_info);
       switch (r_type)
 	{
@@ -4597,6 +4596,7 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 	  break;
 	}
 
+      ifunc = NULL;
       if (h != NULL)
 	{
 	  if (h->type == STT_GNU_IFUNC)
@@ -4622,6 +4622,7 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 	    }
 	}
 
+      tls_type = 0;
       switch (r_type)
 	{
 	case R_PPC64_TLSGD:
@@ -4925,7 +4926,7 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 		    ;
 		  else
 		    /* Mark this section as having an old-style call.  */
-		    sec->has_tls_get_addr_call = 1;
+		    sec->nomark_tls_get_addr = 1;
 		}
 	      plt_list = &h->plt.plist;
 	    }
@@ -7803,11 +7804,9 @@ ppc64_elf_tls_optimize (struct bfd_link_
 		    value = sym->st_value;
 
 		  ok_tprel = FALSE;
-		  is_local = FALSE;
-		  if (h == NULL
-		      || !h->def_dynamic)
+		  is_local = SYMBOL_REFERENCES_LOCAL (info, h);
+		  if (is_local)
 		    {
-		      is_local = TRUE;
 		      if (h != NULL
 			  && h->root.type == bfd_link_hash_undefweak)
 			ok_tprel = TRUE;
@@ -7835,7 +7834,7 @@ ppc64_elf_tls_optimize (struct bfd_link_
 		     setup insn.  If we don't find matching arg setup
 		     relocs, don't do any tls optimization.  */
 		  if (pass == 0
-		      && sec->has_tls_get_addr_call
+		      && sec->nomark_tls_get_addr
 		      && h != NULL
 		      && (h == &htab->tls_get_addr->elf
 			  || h == &htab->tls_get_addr_fd->elf)
@@ -7907,8 +7906,11 @@ ppc64_elf_tls_optimize (struct bfd_link_
 			}
 		      continue;
 
-		    case R_PPC64_TLSGD:
 		    case R_PPC64_TLSLD:
+		      if (!is_local)
+			continue;
+		      /* Fall through.  */
+		    case R_PPC64_TLSGD:
 		      if (rel + 1 < relend
 			  && is_plt_seq_reloc (ELF64_R_TYPE (rel[1].r_info)))
 			{
@@ -8036,7 +8038,7 @@ ppc64_elf_tls_optimize (struct bfd_link_
 		  if (pass == 0)
 		    {
 		      if (!expecting_tls_get_addr
-			  || !sec->has_tls_get_addr_call)
+			  || !sec->nomark_tls_get_addr)
 			continue;
 
 		      if (rel + 1 < relend
@@ -8088,12 +8090,12 @@ ppc64_elf_tls_optimize (struct bfd_link_
 		     Disable optimization in this case.  */
 		  if ((tls_clear & (TLS_GD | TLS_LD)) != 0
 		      && (tls_set & TLS_EXPLICIT) == 0
-		      && !sec->has_tls_get_addr_call
+		      && !sec->nomark_tls_get_addr
 		      && ((*tls_mask & (TLS_TLS | TLS_MARK))
 			  != (TLS_TLS | TLS_MARK)))
 		    continue;
 
-		  if (expecting_tls_get_addr)
+		  if (expecting_tls_get_addr == 1 + !sec->nomark_tls_get_addr)
 		    {
 		      struct plt_entry *ent = NULL;
 
@@ -9278,7 +9280,7 @@ allocate_got (struct elf_link_hash_entry
       htab->got_reli_size += rentsize;
     }
   else if (((bfd_link_pic (info)
-	     && !((gent->tls_type & TLS_TPREL) != 0
+	     && !(gent->tls_type != 0
 		  && bfd_link_executable (info)
 		  && SYMBOL_REFERENCES_LOCAL (info, h)))
 	    || (htab->elf.dynamic_sections_created
@@ -9384,7 +9386,7 @@ allocate_dynrelocs (struct elf_link_hash
     if (gent->got.refcount > 0)
       {
 	if ((gent->tls_type & TLS_LD) != 0
-	    && !h->def_dynamic)
+	    && SYMBOL_REFERENCES_LOCAL (info, h))
 	  {
 	    ppc64_tlsld_got (gent->owner)->got.refcount += 1;
 	    *pgent = gent->next;
@@ -9813,7 +9815,7 @@ ppc64_elf_size_dynamic_sections (bfd *ou
 			htab->got_reli_size += rel_size;
 		      }
 		    else if (bfd_link_pic (info)
-			     && !((ent->tls_type & TLS_TPREL) != 0
+			     && !(ent->tls_type != 0
 				  && bfd_link_executable (info)))
 		      {
 			asection *srel = ppc64_elf_tdata (ibfd)->relgot;
@@ -9890,7 +9892,7 @@ ppc64_elf_size_dynamic_sections (bfd *ou
 	      ent->got.offset = s->size;
 	      ent->owner = ibfd;
 	      s->size += 16;
-	      if (bfd_link_pic (info))
+	      if (bfd_link_dll (info))
 		{
 		  asection *srel = ppc64_elf_tdata (ibfd)->relgot;
 		  srel->size += sizeof (Elf64_External_Rela);
@@ -12185,7 +12187,7 @@ ppc64_elf_layout_multitoc (struct bfd_li
 		  htab->got_reli_size += rel_size;
 		}
 	      else if (bfd_link_pic (info)
-		       && !((ent->tls_type & TLS_TPREL) != 0
+		       && !(ent->tls_type != 0
 			    && bfd_link_executable (info)))
 		{
 		  asection *srel = ppc64_elf_tdata (ibfd)->relgot;
@@ -12211,7 +12213,7 @@ ppc64_elf_layout_multitoc (struct bfd_li
 	  asection *s = ppc64_elf_tdata (ibfd)->got;
 	  ent->got.offset = s->size;
 	  s->size += 16;
-	  if (bfd_link_pic (info))
+	  if (bfd_link_dll (info))
 	    {
 	      asection *srel = ppc64_elf_tdata (ibfd)->relgot;
 	      srel->size += sizeof (Elf64_External_Rela);
@@ -14730,7 +14732,7 @@ ppc64_elf_relocate_section (bfd *output_
 		 stays with its arg setup insns, ie. that the next
 		 reloc is the __tls_get_addr call associated with
 		 the current reloc.  Edit both insns.  */
-	      if (input_section->has_tls_get_addr_call
+	      if (input_section->nomark_tls_get_addr
 		  && rel + 1 < relend
 		  && branch_reloc_hash_match (input_bfd, rel + 1,
 					      htab->tls_get_addr,
@@ -15611,8 +15613,7 @@ ppc64_elf_relocate_section (bfd *output_
 	    struct got_entry *ent;
 
 	    if (tls_type == (TLS_TLS | TLS_LD)
-		&& (h == NULL
-		    || !h->elf.def_dynamic))
+		&& SYMBOL_REFERENCES_LOCAL (info, &h->elf))
 	      ent = ppc64_tlsld_got (input_bfd);
 	    else
 	      {
@@ -15687,10 +15688,8 @@ ppc64_elf_relocate_section (bfd *output_
 		else if (indx != 0
 			 || (bfd_link_pic (info)
 			     && (h == NULL
-				 || !UNDEFWEAK_NO_DYNAMIC_RELOC (info, &h->elf)
-				 || (tls_type == (TLS_TLS | TLS_LD)
-				     && !h->elf.def_dynamic))
-			     && !(tls_type == (TLS_TLS | TLS_TPREL)
+				 || !UNDEFWEAK_NO_DYNAMIC_RELOC (info, &h->elf))
+			     && !(tls_type != 0
 				  && bfd_link_executable (info)
 				  && SYMBOL_REFERENCES_LOCAL (info, &h->elf))))
 		  relgot = ppc64_elf_tdata (ent->owner)->relgot;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf-bfd.h ./bfd/elf-bfd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf-bfd.h	2019-10-01 01:49:27.000000000 +0000
+++ ./bfd/elf-bfd.h	2019-10-08 01:49:28.000000000 +0000
@@ -2051,6 +2051,7 @@ extern char *bfd_elf_string_from_elf_sec
 extern Elf_Internal_Sym *bfd_elf_get_elf_syms
   (bfd *, Elf_Internal_Shdr *, size_t, size_t, Elf_Internal_Sym *, void *,
    Elf_External_Sym_Shndx *);
+extern char * bfd_elf_get_str_section (bfd *, unsigned int);
 extern const char *bfd_elf_sym_name
   (bfd *, Elf_Internal_Shdr *, Elf_Internal_Sym *, asection *);
 
@@ -2251,8 +2252,12 @@ extern void _bfd_elf_strtab_restore
   (struct elf_strtab_hash *, void *);
 extern bfd_size_type _bfd_elf_strtab_size
   (struct elf_strtab_hash *);
+extern bfd_size_type _bfd_elf_strtab_len
+  (struct elf_strtab_hash *);
 extern bfd_size_type _bfd_elf_strtab_offset
   (struct elf_strtab_hash *, size_t);
+extern const char * _bfd_elf_strtab_str
+  (struct elf_strtab_hash *, size_t idx, bfd_size_type *offset);
 extern bfd_boolean _bfd_elf_strtab_emit
   (bfd *, struct elf_strtab_hash *);
 extern void _bfd_elf_strtab_finalize
@@ -2960,6 +2965,14 @@ extern asection _bfd_elf_large_com_secti
 	 || (H)->start_stop \
 	 || ((INFO)->dynamic && !(H)->dynamic)))
 
+/* Determine if a section contains CTF data, using its name.  */
+static inline bfd_boolean
+bfd_section_is_ctf (const asection *sec)
+{
+  const char *name = bfd_section_name (sec);
+  return strncmp (name, ".ctf", 4) == 0 && (name[4] == 0 || name[4] == '.');
+}
+
 #ifdef __cplusplus
 }
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf.c ./bfd/elf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf.c	2019-10-01 01:49:27.000000000 +0000
+++ ./bfd/elf.c	2019-10-08 01:49:28.000000000 +0000
@@ -275,7 +275,7 @@ bfd_elf_mkcorefile (bfd *abfd)
   return elf_tdata (abfd)->core != NULL;
 }
 
-static char *
+char *
 bfd_elf_get_str_section (bfd *abfd, unsigned int shindex)
 {
   Elf_Internal_Shdr **i_shdrp;
@@ -2671,6 +2671,7 @@ static const struct bfd_elf_special_sect
 static const struct bfd_elf_special_section special_sections_c[] =
 {
   { STRING_COMMA_LEN (".comment"), 0, SHT_PROGBITS, 0 },
+  { STRING_COMMA_LEN (".ctf"),	0, SHT_PROGBITS,    0 },
   { NULL,			0, 0, 0,	    0 }
 };
 
@@ -5893,7 +5894,8 @@ is_debuginfo_file (bfd *abfd)
   return TRUE;
 }
 
-/* Assign file positions for the other sections.  */
+/* Assign file positions for the other sections, except for compressed debugging
+   and other sections assigned in _bfd_elf_assign_file_positions_for_non_load().  */
 
 static bfd_boolean
 assign_file_positions_for_non_load_sections (bfd *abfd,
@@ -5952,9 +5954,12 @@ assign_file_positions_for_non_load_secti
 	}
       else if (((hdr->sh_type == SHT_REL || hdr->sh_type == SHT_RELA)
 		&& hdr->bfd_section == NULL)
+	       /* We don't know the offset of these sections yet: their size has
+		  not been decided.  */
 	       || (hdr->bfd_section != NULL
-		   && (hdr->bfd_section->flags & SEC_ELF_COMPRESS))
-		   /* Compress DWARF debug sections.  */
+		   && (hdr->bfd_section->flags & SEC_ELF_COMPRESS
+		       || (bfd_section_is_ctf (hdr->bfd_section)
+			   && abfd->is_linker_output)))
 	       || hdr == i_shdrpp[elf_onesymtab (abfd)]
 	       || (elf_symtab_shndx_list (abfd) != NULL
 		   && hdr == i_shdrpp[elf_symtab_shndx_list (abfd)->ndx])
@@ -6222,11 +6227,12 @@ find_section_in_list (unsigned int i, el
    VMAs must be known before this is called.
 
    Reloc sections come in two flavours: Those processed specially as
-   "side-channel" data attached to a section to which they apply, and
-   those that bfd doesn't process as relocations.  The latter sort are
-   stored in a normal bfd section by bfd_section_from_shdr.   We don't
-   consider the former sort here, unless they form part of the loadable
-   image.  Reloc sections not assigned here will be handled later by
+   "side-channel" data attached to a section to which they apply, and those that
+   bfd doesn't process as relocations.  The latter sort are stored in a normal
+   bfd section by bfd_section_from_shdr.  We don't consider the former sort
+   here, unless they form part of the loadable image.  Reloc sections not
+   assigned here (and compressed debugging sections and CTF sections which
+   nothing else in the file can rely upon) will be handled later by
    assign_file_positions_for_relocs.
 
    We also don't set the positions of the .symtab and .strtab here.  */
@@ -6261,9 +6267,12 @@ assign_file_positions_except_relocs (bfd
 	  hdr = *hdrpp;
 	  if (((hdr->sh_type == SHT_REL || hdr->sh_type == SHT_RELA)
 	       && hdr->bfd_section == NULL)
+	      /* Do not assign offsets for these sections yet: we don't know
+		 their sizes.  */
 	      || (hdr->bfd_section != NULL
-		  && (hdr->bfd_section->flags & SEC_ELF_COMPRESS))
-		  /* Compress DWARF debug sections.  */
+		  && (hdr->bfd_section->flags & SEC_ELF_COMPRESS
+		      || (bfd_section_is_ctf (hdr->bfd_section)
+			  && abfd->is_linker_output)))
 	      || i == elf_onesymtab (abfd)
 	      || (elf_symtab_shndx_list (abfd) != NULL
 		  && hdr == i_shdrpp[elf_symtab_shndx_list (abfd)->ndx])
@@ -6471,10 +6480,12 @@ _bfd_elf_assign_file_positions_for_non_l
 	  asection *sec = shdrp->bfd_section;
 	  bfd_boolean is_rel = (shdrp->sh_type == SHT_REL
 				|| shdrp->sh_type == SHT_RELA);
+	  bfd_boolean is_ctf = sec && bfd_section_is_ctf (sec);
 	  if (is_rel
+	      || is_ctf
 	      || (sec != NULL && (sec->flags & SEC_ELF_COMPRESS)))
 	    {
-	      if (!is_rel)
+	      if (!is_rel && !is_ctf)
 		{
 		  const char *name = sec->name;
 		  struct bfd_elf_section_data *d;
@@ -6520,6 +6531,13 @@ _bfd_elf_assign_file_positions_for_non_l
 		  shdrp->contents = sec->contents;
 		  shdrp->bfd_section->contents = NULL;
 		}
+	      else if (is_ctf)
+		{
+		  /* Update section size and contents.	*/
+		  shdrp->sh_size = sec->size;
+		  shdrp->contents = sec->contents;
+		}
+
 	      off = _bfd_elf_assign_file_position_for_section (shdrp,
 							       off,
 							       TRUE);
@@ -9099,6 +9117,11 @@ _bfd_elf_set_section_contents (bfd *abfd
   hdr = &elf_section_data (section)->this_hdr;
   if (hdr->sh_offset == (file_ptr) -1)
     {
+      if (bfd_section_is_ctf (section))
+	/* Nothing to do with this section: the contents are generated
+	   later.  */
+	return TRUE;
+
       /* We must compress this section.  Write output to the buffer.  */
       unsigned char *contents = hdr->contents;
       if ((offset + count) > hdr->sh_size
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elflink.c ./bfd/elflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elflink.c	2019-10-01 01:49:27.000000000 +0000
+++ ./bfd/elflink.c	2019-10-08 01:49:28.000000000 +0000
@@ -9539,6 +9539,14 @@ elf_link_swap_symbols_out (struct elf_fi
 				+ elfsym->destshndx_index));
     }
 
+  /* Allow the linker to examine the strtab and symtab now they are
+     populated.  */
+
+  if (flinfo->info->callbacks->examine_strtab)
+    flinfo->info->callbacks->examine_strtab (hash_table->strtab,
+					     hash_table->strtabcount,
+					     flinfo->symstrtab);
+
   hdr = &elf_tdata (flinfo->output_bfd)->symtab_hdr;
   pos = hdr->sh_offset + hdr->sh_size;
   amt = hash_table->strtabcount * bed->s->sizeof_sym;
@@ -11527,7 +11535,8 @@ elf_fixup_link_order (bfd *abfd, asectio
 	{
 	  s = p->u.indirect.section;
 	  sub = s->owner;
-	  if (bfd_get_flavour (sub) == bfd_target_elf_flavour
+	  if ((s->flags & SEC_LINKER_CREATED) == 0
+	      && bfd_get_flavour (sub) == bfd_target_elf_flavour
 	      && elf_elfheader (sub)->e_ident[EI_CLASS] == bed->s->elfclass
 	      && (elfsec = _bfd_elf_section_from_bfd_section (sub, s))
 	      && elfsec < elf_numsections (sub)
@@ -11810,7 +11819,7 @@ bfd_elf_final_link (bfd *abfd, struct bf
 
   /* The object attributes have been merged.  Remove the input
      sections from the link, and set the contents of the output
-     secton.  */
+     section.  */
   std_attrs_section = get_elf_backend_data (abfd)->obj_attrs_section;
   for (o = abfd->sections; o != NULL; o = o->next)
     {
@@ -12032,7 +12041,8 @@ bfd_elf_final_link (bfd *abfd, struct bf
       esdo->rel.count = 0;
       esdo->rela.count = 0;
 
-      if (esdo->this_hdr.sh_offset == (file_ptr) -1)
+      if ((esdo->this_hdr.sh_offset == (file_ptr) -1)
+	  && !bfd_section_is_ctf (o))
 	{
 	  /* Cache the section contents so that they can be compressed
 	     later.  Use bfd_malloc since it will be freed by
@@ -12048,10 +12058,10 @@ bfd_elf_final_link (bfd *abfd, struct bf
 	}
     }
 
-  /* We have now assigned file positions for all the sections except
-     .symtab, .strtab, and non-loaded reloc sections.  We start the
-     .symtab section at the current file position, and write directly
-     to it.  We build the .strtab section in memory.  */
+  /* We have now assigned file positions for all the sections except .symtab,
+     .strtab, and non-loaded reloc and compressed debugging sections.  We start
+     the .symtab section at the current file position, and write directly to it.
+     We build the .strtab section in memory.  */
   abfd->symcount = 0;
   symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
   /* sh_name is set in prep_headers.  */
@@ -12837,6 +12847,9 @@ bfd_elf_final_link (bfd *abfd, struct bf
   if (! _bfd_elf_write_section_eh_frame_hdr (abfd, info))
     goto error_return;
 
+  if (info->callbacks->emit_ctf)
+      info->callbacks->emit_ctf ();
+
   elf_final_link_free (abfd, &flinfo);
 
   if (attr_section)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf-strtab.c ./bfd/elf-strtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/elf-strtab.c	2019-10-01 01:49:27.000000000 +0000
+++ ./bfd/elf-strtab.c	2019-10-08 01:49:28.000000000 +0000
@@ -271,6 +271,12 @@ _bfd_elf_strtab_size (struct elf_strtab_
 }
 
 bfd_size_type
+_bfd_elf_strtab_len (struct elf_strtab_hash *tab)
+{
+  return tab->size;
+}
+
+bfd_size_type
 _bfd_elf_strtab_offset (struct elf_strtab_hash *tab, size_t idx)
 {
   struct elf_strtab_hash_entry *entry;
@@ -285,6 +291,19 @@ _bfd_elf_strtab_offset (struct elf_strta
   return tab->array[idx]->u.index;
 }
 
+const char *
+_bfd_elf_strtab_str (struct elf_strtab_hash *tab, size_t idx,
+		     bfd_size_type *offset)
+{
+  if (idx == 0)
+    return 0;
+  BFD_ASSERT (idx < tab->size);
+  BFD_ASSERT (tab->sec_size);
+  if (offset)
+    *offset = tab->array[idx]->u.index;
+  return tab->array[idx]->root.string;
+}
+
 bfd_boolean
 _bfd_elf_strtab_emit (register bfd *abfd, struct elf_strtab_hash *tab)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/version.h ./bfd/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/bfd/version.h	2019-10-01 01:49:27.000000000 +0000
+++ ./bfd/version.h	2019-10-08 01:49:29.000000000 +0000
@@ -16,7 +16,7 @@
 
    In releases, the date is not included in either version strings or
    sonames.  */
-#define BFD_VERSION_DATE 20191001
+#define BFD_VERSION_DATE 20191008
 #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.3.50.20191001/ChangeLog ./ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/ChangeLog	2019-10-01 01:49:26.000000000 +0000
+++ ./ChangeLog	2019-10-08 01:49:28.000000000 +0000
@@ -1,3 +1,13 @@
+2019-07-30  Nick Alcock  <nick.alcock@oracle.com>
+
+	* Makefile.def (host_modules): libctf is no longer no_install.
+	* Makefile.in: Regenerated.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* Makefile.def (dependencies): all-ld depends on all-libctf.
+	* Makefile.in: Regenerated.
+
 2019-09-09  Phil Blundell  <pb@pbcl.net>
 
 	binutils 2.33 branch created
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/djunpack.bat ./djunpack.bat
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/djunpack.bat	2019-10-01 01:53:11.000000000 +0000
+++ ./djunpack.bat	2019-10-08 01:53:43.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.3.50.20191001
-if "%GDBVER%"=="$package-8.3.50.20191001" GoTo EnvOk
+set GDBVER=$package-9.0.50.20191008
+if "%GDBVER%"=="$package-9.0.50.20191008" 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.3.50.20191001/gdb/ada-lang.c ./gdb/ada-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ada-lang.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/ada-lang.c	2019-10-08 01:49:30.000000000 +0000
@@ -54,6 +54,7 @@
 #include "gdbsupport/gdb_vecs.h"
 #include "typeprint.h"
 #include "namespace.h"
+#include "cli/cli-style.h"
 
 #include "psymtab.h"
 #include "value.h"
@@ -3877,12 +3878,14 @@ See set/show multiple-symbol."));
 	  ada_print_symbol_signature (gdb_stdout, syms[i].symbol,
 				      &type_print_raw_options);
 	  if (sal.symtab == NULL)
-	    printf_filtered (_(" at <no source file available>:%d\n"),
-			     sal.line);
+	    printf_filtered (_(" at %p[<no source file available>%p]:%d\n"),
+			     metadata_style.style ().ptr (), nullptr, sal.line);
 	  else
-	    printf_filtered (_(" at %s:%d\n"),
-			     symtab_to_filename_for_display (sal.symtab),
-			     sal.line);
+	    printf_filtered
+	      (_(" at %ps:%d\n"),
+	       styled_string (file_name_style.style (),
+			      symtab_to_filename_for_display (sal.symtab)),
+	       sal.line);
           continue;
         }
       else
@@ -4721,6 +4724,15 @@ lesseq_defined_than (struct symbol *sym0
     case LOC_CONST:
       return SYMBOL_VALUE (sym0) == SYMBOL_VALUE (sym1)
         && equiv_types (SYMBOL_TYPE (sym0), SYMBOL_TYPE (sym1));
+
+    case LOC_STATIC:
+      {
+        const char *name0 = SYMBOL_LINKAGE_NAME (sym0);
+        const char *name1 = SYMBOL_LINKAGE_NAME (sym1);
+        return (strcmp (name0, name1) == 0
+                && SYMBOL_VALUE_ADDRESS (sym0) == SYMBOL_VALUE_ADDRESS (sym1));
+      }
+
     default:
       return 0;
     }
@@ -4824,36 +4836,6 @@ ada_lookup_simple_minsym (const char *na
   return result;
 }
 
-/* Return all the bound minimal symbols matching NAME according to Ada
-   decoding rules.  Returns an empty vector if there is no such
-   minimal symbol.  Names prefixed with "standard__" are handled
-   specially: "standard__" is first stripped off, and only static and
-   global symbols are searched.  */
-
-static std::vector<struct bound_minimal_symbol>
-ada_lookup_simple_minsyms (const char *name)
-{
-  std::vector<struct bound_minimal_symbol> result;
-
-  symbol_name_match_type match_type = name_match_type_from_name (name);
-  lookup_name_info lookup_name (name, match_type);
-
-  symbol_name_matcher_ftype *match_name
-    = ada_get_symbol_name_matcher (lookup_name);
-
-  for (objfile *objfile : current_program_space->objfiles ())
-    {
-      for (minimal_symbol *msymbol : objfile->msymbols ())
-	{
-	  if (match_name (MSYMBOL_LINKAGE_NAME (msymbol), lookup_name, NULL)
-	      && MSYMBOL_TYPE (msymbol) != mst_solib_trampoline)
-	    result.push_back ({msymbol, objfile});
-	}
-    }
-
-  return result;
-}
-
 /* For all subprograms that statically enclose the subprogram of the
    selected frame, add symbols matching identifier NAME in DOMAIN
    and their blocks to the list of data in OBSTACKP, as for
@@ -12332,8 +12314,16 @@ public:
 
 struct ada_catchpoint : public breakpoint
 {
+  explicit ada_catchpoint (enum ada_exception_catchpoint_kind kind)
+    : m_kind (kind)
+  {
+  }
+
   /* The name of the specific exception the user specified.  */
   std::string excep_string;
+
+  /* What kind of catchpoint this is.  */
+  enum ada_exception_catchpoint_kind m_kind;
 };
 
 /* Parse the exception condition string in the context of each of the
@@ -12343,6 +12333,8 @@ static void
 create_excep_cond_exprs (struct ada_catchpoint *c,
                          enum ada_exception_catchpoint_kind ex)
 {
+  struct bp_location *bl;
+
   /* Nothing to do if there's no specific exception to catch.  */
   if (c->excep_string.empty ())
     return;
@@ -12351,45 +12343,28 @@ create_excep_cond_exprs (struct ada_catc
   if (c->loc == NULL)
     return;
 
-  /* We have to compute the expression once for each program space,
-     because the expression may hold the addresses of multiple symbols
-     in some cases.  */
-  std::multimap<program_space *, struct bp_location *> loc_map;
-  for (bp_location *bl = c->loc; bl != NULL; bl = bl->next)
-    loc_map.emplace (bl->pspace, bl);
-
-  scoped_restore_current_program_space save_pspace;
-
-  std::string cond_string;
-  program_space *last_ps = nullptr;
-  for (auto iter : loc_map)
+  /* Compute the condition expression in text form, from the specific
+     expection we want to catch.  */
+  std::string cond_string
+    = ada_exception_catchpoint_cond_string (c->excep_string.c_str (), ex);
+
+  /* Iterate over all the catchpoint's locations, and parse an
+     expression for each.  */
+  for (bl = c->loc; bl != NULL; bl = bl->next)
     {
       struct ada_catchpoint_location *ada_loc
-	= (struct ada_catchpoint_location *) iter.second;
-
-      if (ada_loc->pspace != last_ps)
-	{
-	  last_ps = ada_loc->pspace;
-	  set_current_program_space (last_ps);
-
-	  /* Compute the condition expression in text form, from the
-	     specific expection we want to catch.  */
-	  cond_string
-	    = ada_exception_catchpoint_cond_string (c->excep_string.c_str (),
-						    ex);
-	}
-
+	= (struct ada_catchpoint_location *) bl;
       expression_up exp;
 
-      if (!ada_loc->shlib_disabled)
+      if (!bl->shlib_disabled)
 	{
 	  const char *s;
 
 	  s = cond_string.c_str ();
 	  try
 	    {
-	      exp = parse_exp_1 (&s, ada_loc->address,
-				 block_for_pc (ada_loc->address),
+	      exp = parse_exp_1 (&s, bl->address,
+				 block_for_pc (bl->address),
 				 0);
 	    }
 	  catch (const gdb_exception_error &e)
@@ -12408,8 +12383,7 @@ create_excep_cond_exprs (struct ada_catc
    structure for all exception catchpoint kinds.  */
 
 static struct bp_location *
-allocate_location_exception (enum ada_exception_catchpoint_kind ex,
-			     struct breakpoint *self)
+allocate_location_exception (struct breakpoint *self)
 {
   return new ada_catchpoint_location (self);
 }
@@ -12418,7 +12392,7 @@ allocate_location_exception (enum ada_ex
    exception catchpoint kinds.  */
 
 static void
-re_set_exception (enum ada_exception_catchpoint_kind ex, struct breakpoint *b)
+re_set_exception (struct breakpoint *b)
 {
   struct ada_catchpoint *c = (struct ada_catchpoint *) b;
 
@@ -12428,7 +12402,7 @@ re_set_exception (enum ada_exception_cat
 
   /* Reparse the exception conditional expressions.  One for each
      location.  */
-  create_excep_cond_exprs (c, ex);
+  create_excep_cond_exprs (c, c->m_kind);
 }
 
 /* Returns true if we should stop for this breakpoint hit.  If the
@@ -12443,6 +12417,30 @@ should_stop_exception (const struct bp_l
     = (const struct ada_catchpoint_location *) bl;
   int stop;
 
+  struct internalvar *var = lookup_internalvar ("_ada_exception");
+  if (c->m_kind == ada_catch_assert)
+    clear_internalvar (var);
+  else
+    {
+      try
+	{
+	  const char *expr;
+
+	  if (c->m_kind == ada_catch_handlers)
+	    expr = ("GNAT_GCC_exception_Access(gcc_exception)"
+		    ".all.occurrence.id");
+	  else
+	    expr = "e";
+
+	  struct value *exc = parse_and_eval (expr);
+	  set_internalvar (var, exc);
+	}
+      catch (const gdb_exception_error &ex)
+	{
+	  clear_internalvar (var);
+	}
+    }
+
   /* With no specific exception, should always stop.  */
   if (c->excep_string.empty ())
     return 1;
@@ -12476,7 +12474,7 @@ should_stop_exception (const struct bp_l
    for all exception catchpoint kinds.  */
 
 static void
-check_status_exception (enum ada_exception_catchpoint_kind ex, bpstat bs)
+check_status_exception (bpstat bs)
 {
   bs->stop = should_stop_exception (bs->bp_location_at);
 }
@@ -12485,7 +12483,7 @@ check_status_exception (enum ada_excepti
    for all exception catchpoint kinds.  */
 
 static enum print_stop_action
-print_it_exception (enum ada_exception_catchpoint_kind ex, bpstat bs)
+print_it_exception (bpstat bs)
 {
   struct ui_out *uiout = current_uiout;
   struct breakpoint *b = bs->breakpoint_at;
@@ -12511,13 +12509,14 @@ print_it_exception (enum ada_exception_c
      ada_find_printable_frame).  */
   select_frame (get_current_frame ());
 
-  switch (ex)
+  struct ada_catchpoint *c = (struct ada_catchpoint *) b;
+  switch (c->m_kind)
     {
       case ada_catch_exception:
       case ada_catch_exception_unhandled:
       case ada_catch_handlers:
 	{
-	  const CORE_ADDR addr = ada_exception_name_addr (ex, b);
+	  const CORE_ADDR addr = ada_exception_name_addr (c->m_kind, b);
 	  char exception_name[256];
 
 	  if (addr != 0)
@@ -12541,7 +12540,7 @@ print_it_exception (enum ada_exception_c
 	     it clearer to the user which kind of catchpoint just got
 	     hit.  We used ui_out_text to make sure that this extra
 	     info does not pollute the exception name in the MI case.  */
-	  if (ex == ada_catch_exception_unhandled)
+	  if (c->m_kind == ada_catch_exception_unhandled)
 	    uiout->text ("unhandled ");
 	  uiout->field_string ("exception-name", exception_name);
 	}
@@ -12574,8 +12573,7 @@ print_it_exception (enum ada_exception_c
    for all exception catchpoint kinds.  */
 
 static void
-print_one_exception (enum ada_exception_catchpoint_kind ex,
-                     struct breakpoint *b, struct bp_location **last_loc)
+print_one_exception (struct breakpoint *b, struct bp_location **last_loc)
 { 
   struct ui_out *uiout = current_uiout;
   struct ada_catchpoint *c = (struct ada_catchpoint *) b;
@@ -12587,7 +12585,7 @@ print_one_exception (enum ada_exception_
     uiout->field_skip ("addr");
 
   annotate_field (5);
-  switch (ex)
+  switch (c->m_kind)
     {
       case ada_catch_exception:
         if (!c->excep_string.empty ())
@@ -12631,8 +12629,7 @@ print_one_exception (enum ada_exception_
    for all exception catchpoint kinds.  */
 
 static void
-print_mention_exception (enum ada_exception_catchpoint_kind ex,
-                         struct breakpoint *b)
+print_mention_exception (struct breakpoint *b)
 {
   struct ada_catchpoint *c = (struct ada_catchpoint *) b;
   struct ui_out *uiout = current_uiout;
@@ -12642,7 +12639,7 @@ print_mention_exception (enum ada_except
   uiout->field_signed ("bkptno", b->number);
   uiout->text (": ");
 
-  switch (ex)
+  switch (c->m_kind)
     {
       case ada_catch_exception:
         if (!c->excep_string.empty ())
@@ -12685,12 +12682,11 @@ print_mention_exception (enum ada_except
    for all exception catchpoint kinds.  */
 
 static void
-print_recreate_exception (enum ada_exception_catchpoint_kind ex,
-			  struct breakpoint *b, struct ui_file *fp)
+print_recreate_exception (struct breakpoint *b, struct ui_file *fp)
 {
   struct ada_catchpoint *c = (struct ada_catchpoint *) b;
 
-  switch (ex)
+  switch (c->m_kind)
     {
       case ada_catch_exception:
 	fprintf_filtered (fp, "catch exception");
@@ -12716,192 +12712,10 @@ print_recreate_exception (enum ada_excep
   print_recreate_thread (b, fp);
 }
 
-/* Virtual table for "catch exception" breakpoints.  */
-
-static struct bp_location *
-allocate_location_catch_exception (struct breakpoint *self)
-{
-  return allocate_location_exception (ada_catch_exception, self);
-}
-
-static void
-re_set_catch_exception (struct breakpoint *b)
-{
-  re_set_exception (ada_catch_exception, b);
-}
-
-static void
-check_status_catch_exception (bpstat bs)
-{
-  check_status_exception (ada_catch_exception, bs);
-}
-
-static enum print_stop_action
-print_it_catch_exception (bpstat bs)
-{
-  return print_it_exception (ada_catch_exception, bs);
-}
-
-static void
-print_one_catch_exception (struct breakpoint *b, struct bp_location **last_loc)
-{
-  print_one_exception (ada_catch_exception, b, last_loc);
-}
-
-static void
-print_mention_catch_exception (struct breakpoint *b)
-{
-  print_mention_exception (ada_catch_exception, b);
-}
-
-static void
-print_recreate_catch_exception (struct breakpoint *b, struct ui_file *fp)
-{
-  print_recreate_exception (ada_catch_exception, b, fp);
-}
-
+/* Virtual tables for various breakpoint types.  */
 static struct breakpoint_ops catch_exception_breakpoint_ops;
-
-/* Virtual table for "catch exception unhandled" breakpoints.  */
-
-static struct bp_location *
-allocate_location_catch_exception_unhandled (struct breakpoint *self)
-{
-  return allocate_location_exception (ada_catch_exception_unhandled, self);
-}
-
-static void
-re_set_catch_exception_unhandled (struct breakpoint *b)
-{
-  re_set_exception (ada_catch_exception_unhandled, b);
-}
-
-static void
-check_status_catch_exception_unhandled (bpstat bs)
-{
-  check_status_exception (ada_catch_exception_unhandled, bs);
-}
-
-static enum print_stop_action
-print_it_catch_exception_unhandled (bpstat bs)
-{
-  return print_it_exception (ada_catch_exception_unhandled, bs);
-}
-
-static void
-print_one_catch_exception_unhandled (struct breakpoint *b,
-				     struct bp_location **last_loc)
-{
-  print_one_exception (ada_catch_exception_unhandled, b, last_loc);
-}
-
-static void
-print_mention_catch_exception_unhandled (struct breakpoint *b)
-{
-  print_mention_exception (ada_catch_exception_unhandled, b);
-}
-
-static void
-print_recreate_catch_exception_unhandled (struct breakpoint *b,
-					  struct ui_file *fp)
-{
-  print_recreate_exception (ada_catch_exception_unhandled, b, fp);
-}
-
 static struct breakpoint_ops catch_exception_unhandled_breakpoint_ops;
-
-/* Virtual table for "catch assert" breakpoints.  */
-
-static struct bp_location *
-allocate_location_catch_assert (struct breakpoint *self)
-{
-  return allocate_location_exception (ada_catch_assert, self);
-}
-
-static void
-re_set_catch_assert (struct breakpoint *b)
-{
-  re_set_exception (ada_catch_assert, b);
-}
-
-static void
-check_status_catch_assert (bpstat bs)
-{
-  check_status_exception (ada_catch_assert, bs);
-}
-
-static enum print_stop_action
-print_it_catch_assert (bpstat bs)
-{
-  return print_it_exception (ada_catch_assert, bs);
-}
-
-static void
-print_one_catch_assert (struct breakpoint *b, struct bp_location **last_loc)
-{
-  print_one_exception (ada_catch_assert, b, last_loc);
-}
-
-static void
-print_mention_catch_assert (struct breakpoint *b)
-{
-  print_mention_exception (ada_catch_assert, b);
-}
-
-static void
-print_recreate_catch_assert (struct breakpoint *b, struct ui_file *fp)
-{
-  print_recreate_exception (ada_catch_assert, b, fp);
-}
-
 static struct breakpoint_ops catch_assert_breakpoint_ops;
-
-/* Virtual table for "catch handlers" breakpoints.  */
-
-static struct bp_location *
-allocate_location_catch_handlers (struct breakpoint *self)
-{
-  return allocate_location_exception (ada_catch_handlers, self);
-}
-
-static void
-re_set_catch_handlers (struct breakpoint *b)
-{
-  re_set_exception (ada_catch_handlers, b);
-}
-
-static void
-check_status_catch_handlers (bpstat bs)
-{
-  check_status_exception (ada_catch_handlers, bs);
-}
-
-static enum print_stop_action
-print_it_catch_handlers (bpstat bs)
-{
-  return print_it_exception (ada_catch_handlers, bs);
-}
-
-static void
-print_one_catch_handlers (struct breakpoint *b,
-			  struct bp_location **last_loc)
-{
-  print_one_exception (ada_catch_handlers, b, last_loc);
-}
-
-static void
-print_mention_catch_handlers (struct breakpoint *b)
-{
-  print_mention_exception (ada_catch_handlers, b);
-}
-
-static void
-print_recreate_catch_handlers (struct breakpoint *b,
-			       struct ui_file *fp)
-{
-  print_recreate_exception (ada_catch_handlers, b, fp);
-}
-
 static struct breakpoint_ops catch_handlers_breakpoint_ops;
 
 /* See ada-lang.h.  */
@@ -13059,18 +12873,18 @@ ada_exception_catchpoint_cond_string (co
                                       enum ada_exception_catchpoint_kind ex)
 {
   int i;
+  bool is_standard_exc = false;
   std::string result;
-  const char *name;
 
   if (ex == ada_catch_handlers)
     {
       /* For exception handlers catchpoints, the condition string does
          not use the same parameter as for the other exceptions.  */
-      name = ("long_integer (GNAT_GCC_exception_Access"
-	      "(gcc_exception).all.occurrence.id)");
+      result = ("long_integer (GNAT_GCC_exception_Access"
+		"(gcc_exception).all.occurrence.id)");
     }
   else
-    name = "long_integer (e)";
+    result = "long_integer (e)";
 
   /* The standard exceptions are a special case.  They are defined in
      runtime units that have been compiled without debugging info; if
@@ -13089,35 +12903,23 @@ ada_exception_catchpoint_cond_string (co
      If an exception named contraint_error is defined in another package of
      the inferior program, then the only way to specify this exception as a
      breakpoint condition is to use its fully-qualified named:
-     e.g. my_package.constraint_error.
-
-     Furthermore, in some situations a standard exception's symbol may
-     be present in more than one objfile, because the compiler may
-     choose to emit copy relocations for them.  So, we have to compare
-     against all the possible addresses.  */
+     e.g. my_package.constraint_error.  */
 
-  /* Storage for a rewritten symbol name.  */
-  std::string std_name;
   for (i = 0; i < sizeof (standard_exc) / sizeof (char *); i++)
     {
       if (strcmp (standard_exc [i], excep_string) == 0)
 	{
-	  std_name = std::string ("standard.") + excep_string;
-	  excep_string = std_name.c_str ();
+	  is_standard_exc = true;
 	  break;
 	}
     }
 
-  excep_string = ada_encode (excep_string);
-  std::vector<struct bound_minimal_symbol> symbols
-    = ada_lookup_simple_minsyms (excep_string);
-  for (const bound_minimal_symbol &msym : symbols)
-    {
-      if (!result.empty ())
-	result += " or ";
-      string_appendf (result, "%s = %s", name,
-		      pulongest (BMSYMBOL_VALUE_ADDRESS (msym)));
-    }
+  result += " = ";
+
+  if (is_standard_exc)
+    string_appendf (result, "long_integer (&standard.%s)", excep_string);
+  else
+    string_appendf (result, "long_integer (&%s)", excep_string);
 
   return result;
 }
@@ -13187,7 +12989,7 @@ create_ada_exception_catchpoint (struct 
   const struct breakpoint_ops *ops = NULL;
   struct symtab_and_line sal = ada_exception_sal (ex_kind, &addr_string, &ops);
 
-  std::unique_ptr<ada_catchpoint> c (new ada_catchpoint ());
+  std::unique_ptr<ada_catchpoint> c (new ada_catchpoint (ex_kind));
   init_ada_exception_breakpoint (c.get (), gdbarch, sal, addr_string.c_str (),
 				 ops, tempflag, disabled, from_tty);
   c->excep_string = excep_string;
@@ -14378,43 +14180,43 @@ initialize_ada_catchpoint_ops (void)
 
   ops = &catch_exception_breakpoint_ops;
   *ops = bkpt_breakpoint_ops;
-  ops->allocate_location = allocate_location_catch_exception;
-  ops->re_set = re_set_catch_exception;
-  ops->check_status = check_status_catch_exception;
-  ops->print_it = print_it_catch_exception;
-  ops->print_one = print_one_catch_exception;
-  ops->print_mention = print_mention_catch_exception;
-  ops->print_recreate = print_recreate_catch_exception;
+  ops->allocate_location = allocate_location_exception;
+  ops->re_set = re_set_exception;
+  ops->check_status = check_status_exception;
+  ops->print_it = print_it_exception;
+  ops->print_one = print_one_exception;
+  ops->print_mention = print_mention_exception;
+  ops->print_recreate = print_recreate_exception;
 
   ops = &catch_exception_unhandled_breakpoint_ops;
   *ops = bkpt_breakpoint_ops;
-  ops->allocate_location = allocate_location_catch_exception_unhandled;
-  ops->re_set = re_set_catch_exception_unhandled;
-  ops->check_status = check_status_catch_exception_unhandled;
-  ops->print_it = print_it_catch_exception_unhandled;
-  ops->print_one = print_one_catch_exception_unhandled;
-  ops->print_mention = print_mention_catch_exception_unhandled;
-  ops->print_recreate = print_recreate_catch_exception_unhandled;
+  ops->allocate_location = allocate_location_exception;
+  ops->re_set = re_set_exception;
+  ops->check_status = check_status_exception;
+  ops->print_it = print_it_exception;
+  ops->print_one = print_one_exception;
+  ops->print_mention = print_mention_exception;
+  ops->print_recreate = print_recreate_exception;
 
   ops = &catch_assert_breakpoint_ops;
   *ops = bkpt_breakpoint_ops;
-  ops->allocate_location = allocate_location_catch_assert;
-  ops->re_set = re_set_catch_assert;
-  ops->check_status = check_status_catch_assert;
-  ops->print_it = print_it_catch_assert;
-  ops->print_one = print_one_catch_assert;
-  ops->print_mention = print_mention_catch_assert;
-  ops->print_recreate = print_recreate_catch_assert;
+  ops->allocate_location = allocate_location_exception;
+  ops->re_set = re_set_exception;
+  ops->check_status = check_status_exception;
+  ops->print_it = print_it_exception;
+  ops->print_one = print_one_exception;
+  ops->print_mention = print_mention_exception;
+  ops->print_recreate = print_recreate_exception;
 
   ops = &catch_handlers_breakpoint_ops;
   *ops = bkpt_breakpoint_ops;
-  ops->allocate_location = allocate_location_catch_handlers;
-  ops->re_set = re_set_catch_handlers;
-  ops->check_status = check_status_catch_handlers;
-  ops->print_it = print_it_catch_handlers;
-  ops->print_one = print_one_catch_handlers;
-  ops->print_mention = print_mention_catch_handlers;
-  ops->print_recreate = print_recreate_catch_handlers;
+  ops->allocate_location = allocate_location_exception;
+  ops->re_set = re_set_exception;
+  ops->check_status = check_status_exception;
+  ops->print_it = print_it_exception;
+  ops->print_one = print_one_exception;
+  ops->print_mention = print_mention_exception;
+  ops->print_recreate = print_recreate_exception;
 }
 
 /* This module's 'new_objfile' observer.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ada-tasks.c ./gdb/ada-tasks.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ada-tasks.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/ada-tasks.c	2019-10-08 01:49:30.000000000 +0000
@@ -25,6 +25,7 @@
 #include "gdbthread.h"
 #include "progspace.h"
 #include "objfiles.h"
+#include "cli/cli-style.h"
 
 static int ada_build_task_list ();
 
@@ -1163,9 +1164,14 @@ print_ada_task_info (struct ui_out *uiou
       /* Finally, print the task name, without quotes around it, as mi like
 	 is not expecting quotes, and in non mi-like no need for quotes
          as there is a specific column for the name.  */
-      uiout->field_string ("name",
-                          task_info->name[0] != '\0' ? task_info->name
-                          : _("<no name>"));
+      uiout->field_fmt ("name",
+			(task_info->name[0] != '\0'
+			 ? ui_file_style ()
+			 : metadata_style.style ()),
+			"%s",
+			(task_info->name[0] != '\0'
+			 ? task_info->name
+			 : _("<no name>")));
 
       uiout->text ("\n");
     }
@@ -1201,7 +1207,7 @@ info_task (struct ui_out *uiout, const c
   if (task_info->name[0] != '\0')
     printf_filtered (_("Name: %s\n"), task_info->name);
   else
-    printf_filtered (_("<no name>\n"));
+    fprintf_styled (gdb_stdout, metadata_style.style (), _("<no name>\n"));
 
   /* Print the TID and LWP.  */
   printf_filtered (_("Thread: %#lx\n"), task_info->ptid.tid ());
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ada-typeprint.c ./gdb/ada-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ada-typeprint.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/ada-typeprint.c	2019-10-08 01:49:30.000000000 +0000
@@ -393,7 +393,8 @@ print_array_type (struct type *type, str
 
   if (type == NULL)
     {
-      fprintf_filtered (stream, _("<undecipherable array type>"));
+      fprintf_styled (stream, metadata_style.style (),
+		      _("<undecipherable array type>"));
       return;
     }
 
@@ -838,7 +839,7 @@ ada_print_type (struct type *type0, cons
       if (is_var_decl)
 	fprintf_filtered (stream, "%.*s: ",
 			  ada_name_prefix_len (varstring), varstring);
-      fprintf_filtered (stream, "<null type?>");
+      fprintf_styled (stream, metadata_style.style (), "<null type?>");
       return;
     }
 
@@ -894,8 +895,9 @@ ada_print_type (struct type *type0, cons
 	    const char *name = ada_type_name (type);
 
 	    if (!ada_is_range_type_name (name))
-	      fprintf_filtered (stream, _("<%s-byte integer>"),
-				pulongest (TYPE_LENGTH (type)));
+	      fprintf_styled (stream, metadata_style.style (),
+			      _("<%s-byte integer>"),
+			      pulongest (TYPE_LENGTH (type)));
 	    else
 	      {
 		fprintf_filtered (stream, "range ");
@@ -916,8 +918,9 @@ ada_print_type (struct type *type0, cons
 	  }
 	break;
       case TYPE_CODE_FLT:
-	fprintf_filtered (stream, _("<%s-byte float>"),
-			  pulongest (TYPE_LENGTH (type)));
+	fprintf_styled (stream, metadata_style.style (),
+			_("<%s-byte float>"),
+			pulongest (TYPE_LENGTH (type)));
 	break;
       case TYPE_CODE_ENUM:
 	if (show < 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.3.50.20191001/gdb/ada-valprint.c ./gdb/ada-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ada-valprint.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/ada-valprint.c	2019-10-08 01:49:30.000000000 +0000
@@ -32,6 +32,7 @@
 #include "infcall.h"
 #include "objfiles.h"
 #include "target-float.h"
+#include "cli/cli-style.h"
 
 static int print_field_values (struct type *, const gdb_byte *,
 			       int,
@@ -237,7 +238,8 @@ val_print_packed_array_elements (struct 
 		     value_embedded_offset (v0), 0, stream,
 		     recurse + 1, v0, &opts, current_language);
 	  annotate_elt_rep (i - i0);
-	  fprintf_filtered (stream, _(" <repeats %u times>"), i - i0);
+	  fprintf_filtered (stream, _(" %p[<repeats %u times>%p]"),
+			    metadata_style.style ().ptr (), i - i0, nullptr);
 	  annotate_elt_rep_end ();
 
 	}
@@ -527,7 +529,8 @@ printstr (struct ui_file *stream, struct
 	  ada_emit_char (char_at (string, i, type_len, byte_order),
 			 elttype, stream, '\'', type_len);
 	  fputs_filtered ("'", stream);
-	  fprintf_filtered (stream, _(" <repeats %u times>"), reps);
+	  fprintf_filtered (stream, _(" %p[<repeats %u times>%p]"),
+			    metadata_style.style ().ptr (), reps, nullptr);
 	  i = rep1 - 1;
 	  things_printed += options->repeat_count_threshold;
 	  need_comma = 1;
@@ -671,7 +674,8 @@ print_field_values (struct type *type, c
 	     order problems.  */
 	  if (HAVE_CPLUS_STRUCT (type) && TYPE_FIELD_IGNORE (type, i))
 	    {
-	      fputs_filtered (_("<optimized out or zero length>"), stream);
+	      fputs_styled (_("<optimized out or zero length>"),
+			    metadata_style.style (), stream);
 	    }
 	  else
 	    {
@@ -1069,7 +1073,8 @@ ada_val_print_ref (struct type *type, co
 
   if (TYPE_CODE (elttype) == TYPE_CODE_UNDEF)
     {
-      fputs_filtered ("<ref to undefined type>", stream);
+      fputs_styled ("<ref to undefined type>", metadata_style.style (),
+		    stream);
       return;
     }
 
@@ -1212,8 +1217,9 @@ ada_val_print (struct type *type,
     }
   catch (const gdb_exception_error &except)
     {
-      fprintf_filtered (stream, _("<error reading variable: %s>"),
-			except.what ());
+      fprintf_styled (stream, metadata_style.style (),
+		      _("<error reading variable: %s>"),
+		      except.what ());
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/auto-load.c ./gdb/auto-load.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/auto-load.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/auto-load.c	2019-10-08 01:49:30.000000000 +0000
@@ -41,6 +41,7 @@
 #include "gdb/section-scripts.h"
 #include <algorithm>
 #include "gdbsupport/pathstuff.h"
+#include "cli/cli-style.h"
 
 /* The section to look in for auto-loaded scripts (in file formats that
    support sections).
@@ -490,9 +491,10 @@ file_is_auto_load_safe (const char *file
   if (filename_is_in_auto_load_safe_path_vec (filename, &filename_real))
     return 1;
 
-  warning (_("File \"%s\" auto-loading has been declined by your "
+  warning (_("File \"%ps\" auto-loading has been declined by your "
 	     "`auto-load safe-path' set to \"%s\"."),
-	   filename_real.get (), auto_load_safe_path);
+	   styled_string (file_name_style.style (), filename_real.get ()),
+	   auto_load_safe_path);
 
   if (!advice_printed)
     {
@@ -989,8 +991,10 @@ execute_script_contents (struct auto_loa
       /* We don't throw an error, the program is still debuggable.  */
       warning (_("\
 Missing/bad script name in entry at offset %u in section %s\n\
-of file %s."),
-	       offset, section_name, objfile_name (objfile));
+of file %ps."),
+	       offset, section_name,
+	       styled_string (file_name_style.style (),
+			      objfile_name (objfile)));
       return;
     }
   script_text = newline + 1;
@@ -1120,8 +1124,10 @@ auto_load_section_scripts (struct objfil
     return;
 
   if (!bfd_get_full_section_contents (abfd, scripts_sect, &data))
-    warning (_("Couldn't read %s section of %s"),
-	     section_name, bfd_get_filename (abfd));
+    warning (_("Couldn't read %s section of %ps"),
+	     section_name,
+	     styled_string (file_name_style.style (),
+			    bfd_get_filename (abfd)));
   else
     {
       gdb::unique_xmalloc_ptr<bfd_byte> data_holder (data);
@@ -1349,11 +1355,13 @@ info_auto_load_local_gdbinit (const char
   if (auto_load_local_gdbinit_pathname == NULL)
     printf_filtered (_("Local .gdbinit file was not found.\n"));
   else if (auto_load_local_gdbinit_loaded)
-    printf_filtered (_("Local .gdbinit file \"%s\" has been loaded.\n"),
-		     auto_load_local_gdbinit_pathname);
+    printf_filtered (_("Local .gdbinit file \"%ps\" has been loaded.\n"),
+		     styled_string (file_name_style.style (),
+				    auto_load_local_gdbinit_pathname));
   else
-    printf_filtered (_("Local .gdbinit file \"%s\" has not been loaded.\n"),
-		     auto_load_local_gdbinit_pathname);
+    printf_filtered (_("Local .gdbinit file \"%ps\" has not been loaded.\n"),
+		     styled_string (file_name_style.style (),
+				    auto_load_local_gdbinit_pathname));
 }
 
 /* Print an "unsupported script" warning if it has not already been printed.
@@ -1370,9 +1378,11 @@ maybe_print_unsupported_script_warning
     {
       warning (_("\
 Unsupported auto-load script at offset %u in section %s\n\
-of file %s.\n\
+of file %ps.\n\
 Use `info auto-load %s-scripts [REGEXP]' to list them."),
-	       offset, section_name, objfile_name (objfile),
+	       offset, section_name,
+	       styled_string (file_name_style.style (),
+			      objfile_name (objfile)),
 	       ext_lang_name (language));
       pspace_info->unsupported_script_warning_printed = true;
     }
@@ -1392,9 +1402,11 @@ maybe_print_script_not_found_warning
     {
       warning (_("\
 Missing auto-load script at offset %u in section %s\n\
-of file %s.\n\
+of file %ps.\n\
 Use `info auto-load %s-scripts [REGEXP]' to list them."),
-	       offset, section_name, objfile_name (objfile),
+	       offset, section_name,
+	       styled_string (file_name_style.style (),
+			      objfile_name (objfile)),
 	       ext_lang_name (language));
       pspace_info->script_not_found_warning_printed = true;
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/break-catch-sig.c ./gdb/break-catch-sig.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/break-catch-sig.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/break-catch-sig.c	2019-10-08 01:49:30.000000000 +0000
@@ -28,6 +28,7 @@
 #include "valprint.h"
 #include "cli/cli-utils.h"
 #include "completer.h"
+#include "cli/cli-style.h"
 
 #include <string>
 
@@ -241,7 +242,8 @@ signal_catchpoint_print_one (struct brea
     }
   else
     uiout->field_string ("what",
-			 c->catch_all ? "<any signal>" : "<standard signals>");
+			 c->catch_all ? "<any signal>" : "<standard signals>",
+			 metadata_style.style ());
   uiout->text ("\" ");
 
   if (uiout->is_mi_like_p ())
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/break-catch-syscall.c ./gdb/break-catch-syscall.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/break-catch-syscall.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/break-catch-syscall.c	2019-10-08 01:49:30.000000000 +0000
@@ -29,6 +29,7 @@
 #include "arch-utils.h"
 #include "observable.h"
 #include "xml-syscall.h"
+#include "cli/cli-style.h"
 
 /* An instance of this type is used to represent a syscall catchpoint.
    A breakpoint is really of this type iff its ops pointer points to
@@ -273,7 +274,7 @@ print_one_catch_syscall (struct breakpoi
       xfree (text);
     }
   else
-    uiout->field_string ("what", "<any syscall>");
+    uiout->field_string ("what", "<any syscall>", metadata_style.style ());
   uiout->text ("\" ");
 
   if (uiout->is_mi_like_p ())
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/breakpoint.c ./gdb/breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/breakpoint.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/breakpoint.c	2019-10-08 01:49:30.000000000 +0000
@@ -4457,7 +4457,7 @@ static void
 watchpoint_value_print (struct value *val, struct ui_file *stream)
 {
   if (val == NULL)
-    fprintf_unfiltered (stream, _("<unreadable>"));
+    fprintf_styled (stream, metadata_style.style (), _("<unreadable>"));
   else
     {
       struct value_print_options opts;
@@ -4912,10 +4912,10 @@ watchpoint_check (bpstat bs)
 	  if (uiout->is_mi_like_p ())
 	    uiout->field_string
 	      ("reason", async_reason_lookup (EXEC_ASYNC_WATCHPOINT_SCOPE));
-	  uiout->text ("\nWatchpoint ");
-	  uiout->field_signed ("wpnum", b->number);
-	  uiout->text (" deleted because the program has left the block in\n"
-		       "which its expression is valid.\n");
+	  uiout->message ("\nWatchpoint %pF deleted because the program has "
+			  "left the block in\n"
+			  "which its expression is valid.\n",
+			  signed_field ("wpnum", b->number));
 	}
 
       /* Make sure the watchpoint's commands aren't executed.  */
@@ -5823,14 +5823,14 @@ print_breakpoint_location (struct breakp
 	{
 	  uiout->text ("in ");
 	  uiout->field_string ("func", SYMBOL_PRINT_NAME (sym),
-			       ui_out_style_kind::FUNCTION);
+			       function_name_style.style ());
 	  uiout->text (" ");
 	  uiout->wrap_hint (wrap_indent_at_field (uiout, "what"));
 	  uiout->text ("at ");
 	}
       uiout->field_string ("file",
 			   symtab_to_filename_for_display (loc->symtab),
-			   ui_out_style_kind::FILE);
+			   file_name_style.style ());
       uiout->text (":");
 
       if (uiout->is_mi_like_p ())
@@ -6055,9 +6055,11 @@ print_one_breakpoint_location (struct br
 	    {
 	      annotate_field (4);
 	      if (header_of_multiple)
-		uiout->field_string ("addr", "<MULTIPLE>");
+		uiout->field_string ("addr", "<MULTIPLE>",
+				     metadata_style.style ());
 	      else if (b->loc == NULL || loc->shlib_disabled)
-		uiout->field_string ("addr", "<PENDING>");
+		uiout->field_string ("addr", "<PENDING>",
+				     metadata_style.style ());
 	      else
 		uiout->field_core_addr ("addr",
 					loc->gdbarch, loc->address);
@@ -6141,10 +6143,9 @@ print_one_breakpoint_location (struct br
 	  && breakpoint_condition_evaluation_mode ()
 	  == condition_evaluation_target)
 	{
-	  uiout->text (" (");
-	  uiout->field_string ("evaluated-by",
-			       bp_condition_evaluator (b));
-	  uiout->text (" evals)");
+	  uiout->message (" (%pF evals)",
+			  string_field ("evaluated-by",
+					bp_condition_evaluator (b)));
 	}
       uiout->text ("\n");
     }
@@ -6193,9 +6194,8 @@ print_one_breakpoint_location (struct br
   if (!part_of_multiple && b->ignore_count)
     {
       annotate_field (8);
-      uiout->text ("\tignore next ");
-      uiout->field_signed ("ignore", b->ignore_count);
-      uiout->text (" hits\n");
+      uiout->message ("\tignore next %pF hits\n",
+		      signed_field ("ignore", b->ignore_count));
     }
 
   /* Note that an enable count of 1 corresponds to "enable once"
@@ -6658,9 +6658,9 @@ describe_other_breakpoints (struct gdbar
 			     (others > 1) ? "," 
 			     : ((others == 1) ? " and" : ""));
 	  }
-      printf_filtered (_("also set at pc "));
-      fputs_styled (paddress (gdbarch, pc), address_style.style (), gdb_stdout);
-      printf_filtered (".\n");
+      current_uiout->message (_("also set at pc %ps.\n"),
+			      styled_string (address_style.style (),
+					     paddress (gdbarch, pc)));
     }
 }
 
@@ -12075,23 +12075,21 @@ say_where (struct breakpoint *b)
   else
     {
       if (opts.addressprint || b->loc->symtab == NULL)
-	{
-	  printf_filtered (" at ");
-	  fputs_styled (paddress (b->loc->gdbarch, b->loc->address),
-			address_style.style (),
-			gdb_stdout);
-	}
+	printf_filtered (" at %ps",
+			 styled_string (address_style.style (),
+					paddress (b->loc->gdbarch,
+						  b->loc->address)));
       if (b->loc->symtab != NULL)
 	{
 	  /* If there is a single location, we can print the location
 	     more nicely.  */
 	  if (b->loc->next == NULL)
 	    {
-	      puts_filtered (": file ");
-	      fputs_styled (symtab_to_filename_for_display (b->loc->symtab),
-			    file_name_style.style (),
-			    gdb_stdout);
-	      printf_filtered (", line %d.",
+	      const char *filename
+		= symtab_to_filename_for_display (b->loc->symtab);
+	      printf_filtered (": file %ps, line %d.",
+			       styled_string (file_name_style.style (),
+					      filename),
 			       b->loc->line_number);
 	    }
 	  else
@@ -12389,18 +12387,18 @@ bkpt_print_it (bpstat bs)
   annotate_breakpoint (b->number);
   maybe_print_thread_hit_breakpoint (uiout);
 
-  if (bp_temp)
-    uiout->text ("Temporary breakpoint ");
-  else
-    uiout->text ("Breakpoint ");
   if (uiout->is_mi_like_p ())
     {
       uiout->field_string ("reason",
 			   async_reason_lookup (EXEC_ASYNC_BREAKPOINT_HIT));
       uiout->field_string ("disp", bpdisp_text (b->disposition));
     }
-  uiout->field_signed ("bkptno", b->number);
-  uiout->text (", ");
+  if (bp_temp)
+    uiout->message ("Temporary breakpoint %pF, ",
+		    signed_field ("bkptno", b->number));
+  else
+    uiout->message ("Breakpoint %pF, ",
+		    signed_field ("bkptno", b->number));
 
   return PRINT_SRC_AND_LOC;
 }
@@ -12716,10 +12714,9 @@ tracepoint_print_one_detail (const struc
     {
       gdb_assert (self->type == bp_static_tracepoint);
 
-      uiout->text ("\tmarker id is ");
-      uiout->field_string ("static-tracepoint-marker-string-id",
-			   tp->static_trace_marker_id);
-      uiout->text ("\n");
+      uiout->message ("\tmarker id is %pF\n",
+		      string_field ("static-tracepoint-marker-string-id",
+				    tp->static_trace_marker_id.c_str ()));
     }
 }
 
@@ -13317,12 +13314,12 @@ update_static_tracepoint (struct breakpo
 	  if (sym)
 	    {
 	      uiout->field_string ("func", SYMBOL_PRINT_NAME (sym),
-				   ui_out_style_kind::FUNCTION);
+				   function_name_style.style ());
 	      uiout->text (" at ");
 	    }
 	  uiout->field_string ("file",
 			       symtab_to_filename_for_display (sal2.symtab),
-			       ui_out_style_kind::FILE);
+			       file_name_style.style ());
 	  uiout->text (":");
 
 	  if (uiout->is_mi_like_p ())
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/btrace.c ./gdb/btrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/btrace.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/btrace.c	2019-10-08 01:49:30.000000000 +0000
@@ -1059,7 +1059,7 @@ btrace_compute_ftrace_bts (struct thread
 
   gdbarch = target_gdbarch ();
   btinfo = &tp->btrace;
-  blk = VEC_length (btrace_block_s, btrace->blocks);
+  blk = btrace->blocks->size ();
 
   if (btinfo->functions.empty ())
     level = INT_MAX;
@@ -1068,13 +1068,12 @@ btrace_compute_ftrace_bts (struct thread
 
   while (blk != 0)
     {
-      btrace_block_s *block;
       CORE_ADDR pc;
 
       blk -= 1;
 
-      block = VEC_index (btrace_block_s, btrace->blocks, blk);
-      pc = block->begin;
+      const btrace_block &block = btrace->blocks->at (blk);
+      pc = block.begin;
 
       for (;;)
 	{
@@ -1083,7 +1082,7 @@ btrace_compute_ftrace_bts (struct thread
 	  int size;
 
 	  /* We should hit the end of the block.  Warn if we went too far.  */
-	  if (block->end < pc)
+	  if (block.end < pc)
 	    {
 	      /* Indicate the gap in the trace.  */
 	      bfun = ftrace_new_gap (btinfo, BDE_BTS_OVERFLOW, gaps);
@@ -1119,7 +1118,7 @@ btrace_compute_ftrace_bts (struct thread
 	  ftrace_update_insns (bfun, insn);
 
 	  /* We're done once we pushed the instruction at the end.  */
-	  if (block->end == pc)
+	  if (block.end == pc)
 	    break;
 
 	  /* We can't continue if we fail to compute the size.  */
@@ -1573,7 +1572,6 @@ static void
 btrace_add_pc (struct thread_info *tp)
 {
   struct btrace_data btrace;
-  struct btrace_block *block;
   struct regcache *regcache;
   CORE_ADDR pc;
 
@@ -1581,11 +1579,9 @@ btrace_add_pc (struct thread_info *tp)
   pc = regcache_read_pc (regcache);
 
   btrace.format = BTRACE_FORMAT_BTS;
-  btrace.variant.bts.blocks = NULL;
+  btrace.variant.bts.blocks = new std::vector<btrace_block>;
 
-  block = VEC_safe_push (btrace_block_s, btrace.variant.bts.blocks, NULL);
-  block->begin = pc;
-  block->end = pc;
+  btrace.variant.bts.blocks->emplace_back (pc, pc);
 
   btrace_compute_ftrace (tp, &btrace, NULL);
 }
@@ -1692,11 +1688,11 @@ btrace_stitch_bts (struct btrace_data_bt
 {
   struct btrace_thread_info *btinfo;
   struct btrace_function *last_bfun;
-  btrace_block_s *first_new_block;
+  btrace_block *first_new_block;
 
   btinfo = &tp->btrace;
   gdb_assert (!btinfo->functions.empty ());
-  gdb_assert (!VEC_empty (btrace_block_s, btrace->blocks));
+  gdb_assert (!btrace->blocks->empty ());
 
   last_bfun = &btinfo->functions.back ();
 
@@ -1705,14 +1701,14 @@ btrace_stitch_bts (struct btrace_data_bt
      of the new trace,  though, since we can't fill in the start address.*/
   if (last_bfun->insn.empty ())
     {
-      VEC_pop (btrace_block_s, btrace->blocks);
+      btrace->blocks->pop_back ();
       return 0;
     }
 
   /* Beware that block trace starts with the most recent block, so the
      chronologically first block in the new trace is the last block in
      the new trace's block vector.  */
-  first_new_block = VEC_last (btrace_block_s, btrace->blocks);
+  first_new_block = &btrace->blocks->back ();
   const btrace_insn &last_insn = last_bfun->insn.back ();
 
   /* If the current PC at the end of the block is the same as in our current
@@ -1723,10 +1719,9 @@ btrace_stitch_bts (struct btrace_data_bt
      entries.
      In the second case, the delta trace vector should contain exactly one
      entry for the partial block containing the current PC.  Remove it.  */
-  if (first_new_block->end == last_insn.pc
-      && VEC_length (btrace_block_s, btrace->blocks) == 1)
+  if (first_new_block->end == last_insn.pc && btrace->blocks->size () == 1)
     {
-      VEC_pop (btrace_block_s, btrace->blocks);
+      btrace->blocks->pop_back ();
       return 0;
     }
 
@@ -1830,7 +1825,7 @@ btrace_maint_clear (struct btrace_thread
 
 #if defined (HAVE_LIBIPT)
     case BTRACE_FORMAT_PT:
-      xfree (btinfo->maint.variant.pt.packets);
+      delete btinfo->maint.variant.pt.packets;
 
       btinfo->maint.variant.pt.packets = NULL;
       btinfo->maint.variant.pt.packet_history.begin = 0;
@@ -2030,7 +2025,6 @@ parse_xml_btrace_block (struct gdb_xml_p
 			std::vector<gdb_xml_value> &attributes)
 {
   struct btrace_data *btrace;
-  struct btrace_block *block;
   ULONGEST *begin, *end;
 
   btrace = (struct btrace_data *) user_data;
@@ -2042,7 +2036,7 @@ parse_xml_btrace_block (struct gdb_xml_p
 
     case BTRACE_FORMAT_NONE:
       btrace->format = BTRACE_FORMAT_BTS;
-      btrace->variant.bts.blocks = NULL;
+      btrace->variant.bts.blocks = new std::vector<btrace_block>;
       break;
 
     default:
@@ -2051,10 +2045,7 @@ parse_xml_btrace_block (struct gdb_xml_p
 
   begin = (ULONGEST *) xml_find_attribute (attributes, "begin")->value.get ();
   end = (ULONGEST *) xml_find_attribute (attributes, "end")->value.get ();
-
-  block = VEC_safe_push (btrace_block_s, btrace->variant.bts.blocks, NULL);
-  block->begin = *begin;
-  block->end = *end;
+  btrace->variant.bts.blocks->emplace_back (*begin, *end);
 }
 
 /* Parse a "raw" xml record.  */
@@ -2971,6 +2962,9 @@ btrace_maint_decode_pt (struct btrace_ma
 {
   int errcode;
 
+  if (maint->variant.pt.packets == NULL)
+    maint->variant.pt.packets = new std::vector<btrace_pt_packet>;
+
   for (;;)
     {
       struct btrace_pt_packet packet;
@@ -2991,8 +2985,7 @@ btrace_maint_decode_pt (struct btrace_ma
 	  if (maint_btrace_pt_skip_pad == 0 || packet.packet.type != ppt_pad)
 	    {
 	      packet.errcode = pt_errcode (errcode);
-	      VEC_safe_push (btrace_pt_packet_s, maint->variant.pt.packets,
-			     &packet);
+	      maint->variant.pt.packets->push_back (packet);
 	    }
 	}
 
@@ -3000,8 +2993,7 @@ btrace_maint_decode_pt (struct btrace_ma
 	break;
 
       packet.errcode = pt_errcode (errcode);
-      VEC_safe_push (btrace_pt_packet_s, maint->variant.pt.packets,
-		     &packet);
+      maint->variant.pt.packets->push_back (packet);
 
       warning (_("Error at trace offset 0x%" PRIx64 ": %s."),
 	       packet.offset, pt_errstr (packet.errcode));
@@ -3095,18 +3087,21 @@ btrace_maint_update_packets (struct btra
     case BTRACE_FORMAT_BTS:
       /* Nothing to do - we operate directly on BTINFO->DATA.  */
       *begin = 0;
-      *end = VEC_length (btrace_block_s, btinfo->data.variant.bts.blocks);
+      *end = btinfo->data.variant.bts.blocks->size ();
       *from = btinfo->maint.variant.bts.packet_history.begin;
       *to = btinfo->maint.variant.bts.packet_history.end;
       break;
 
 #if defined (HAVE_LIBIPT)
     case BTRACE_FORMAT_PT:
-      if (VEC_empty (btrace_pt_packet_s, btinfo->maint.variant.pt.packets))
+      if (btinfo->maint.variant.pt.packets == nullptr)
+	btinfo->maint.variant.pt.packets = new std::vector<btrace_pt_packet>;
+
+      if (btinfo->maint.variant.pt.packets->empty ())
 	btrace_maint_update_pt_packets (btinfo);
 
       *begin = 0;
-      *end = VEC_length (btrace_pt_packet_s, btinfo->maint.variant.pt.packets);
+      *end = btinfo->maint.variant.pt.packets->size ();
       *from = btinfo->maint.variant.pt.packet_history.begin;
       *to = btinfo->maint.variant.pt.packet_history.end;
       break;
@@ -3128,19 +3123,17 @@ btrace_maint_print_packets (struct btrac
 
     case BTRACE_FORMAT_BTS:
       {
-	VEC (btrace_block_s) *blocks;
+	const std::vector<btrace_block> &blocks
+	  = *btinfo->data.variant.bts.blocks;
 	unsigned int blk;
 
-	blocks = btinfo->data.variant.bts.blocks;
 	for (blk = begin; blk < end; ++blk)
 	  {
-	    const btrace_block_s *block;
-
-	    block = VEC_index (btrace_block_s, blocks, blk);
+	    const btrace_block &block = blocks.at (blk);
 
 	    printf_unfiltered ("%u\tbegin: %s, end: %s\n", blk,
-			       core_addr_to_string_nz (block->begin),
-			       core_addr_to_string_nz (block->end));
+			       core_addr_to_string_nz (block.begin),
+			       core_addr_to_string_nz (block.end));
 	  }
 
 	btinfo->maint.variant.bts.packet_history.begin = begin;
@@ -3151,23 +3144,21 @@ btrace_maint_print_packets (struct btrac
 #if defined (HAVE_LIBIPT)
     case BTRACE_FORMAT_PT:
       {
-	VEC (btrace_pt_packet_s) *packets;
+	const std::vector<btrace_pt_packet> &packets
+	  = *btinfo->maint.variant.pt.packets;
 	unsigned int pkt;
 
-	packets = btinfo->maint.variant.pt.packets;
 	for (pkt = begin; pkt < end; ++pkt)
 	  {
-	    const struct btrace_pt_packet *packet;
-
-	    packet = VEC_index (btrace_pt_packet_s, packets, pkt);
+	    const struct btrace_pt_packet &packet = packets.at (pkt);
 
 	    printf_unfiltered ("%u\t", pkt);
-	    printf_unfiltered ("0x%" PRIx64 "\t", packet->offset);
+	    printf_unfiltered ("0x%" PRIx64 "\t", packet.offset);
 
-	    if (packet->errcode == pte_ok)
-	      pt_print_packet (&packet->packet);
+	    if (packet.errcode == pte_ok)
+	      pt_print_packet (&packet.packet);
 	    else
-	      printf_unfiltered ("[error: %s]", pt_errstr (packet->errcode));
+	      printf_unfiltered ("[error: %s]", pt_errstr (packet.errcode));
 
 	    printf_unfiltered ("\n");
 	  }
@@ -3443,9 +3434,8 @@ maint_info_btrace_cmd (const char *args,
       break;
 
     case BTRACE_FORMAT_BTS:
-      printf_unfiltered (_("Number of packets: %u.\n"),
-			 VEC_length (btrace_block_s,
-				     btinfo->data.variant.bts.blocks));
+      printf_unfiltered (_("Number of packets: %zu.\n"),
+			 btinfo->data.variant.bts.blocks->size ());
       break;
 
 #if defined (HAVE_LIBIPT)
@@ -3459,9 +3449,9 @@ maint_info_btrace_cmd (const char *args,
 			   version.ext != NULL ? version.ext : "");
 
 	btrace_maint_update_pt_packets (btinfo);
-	printf_unfiltered (_("Number of packets: %u.\n"),
-			   VEC_length (btrace_pt_packet_s,
-				       btinfo->maint.variant.pt.packets));
+	printf_unfiltered (_("Number of packets: %zu.\n"),
+			   ((btinfo->maint.variant.pt.packets == nullptr)
+			    ? 0 : btinfo->maint.variant.pt.packets->size ()));
       }
       break;
 #endif /* defined (HAVE_LIBIPT)  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/btrace.h ./gdb/btrace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/btrace.h	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/btrace.h	2019-10-08 01:49:30.000000000 +0000
@@ -264,9 +264,6 @@ struct btrace_pt_packet
   struct pt_packet packet;
 };
 
-/* Define functions operating on a vector of packets.  */
-typedef struct btrace_pt_packet btrace_pt_packet_s;
-DEF_VEC_O (btrace_pt_packet_s);
 #endif /* defined (HAVE_LIBIPT)  */
 
 /* Branch trace iteration state for "maintenance btrace packet-history".  */
@@ -300,7 +297,7 @@ struct btrace_maint_info
     struct
     {
       /* A vector of decoded packets.  */
-      VEC (btrace_pt_packet_s) *packets;
+      std::vector<btrace_pt_packet> *packets;
 
       /* The packet history iterator.
 	 We are iterating over the above PACKETS vector.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ChangeLog ./gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ChangeLog	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/ChangeLog	2019-10-08 01:49:30.000000000 +0000
@@ -1,3 +1,477 @@
+2019-10-07  Christian Biesinger  <cbiesinger@google.com>
+
+	* c-lang.h (vtbl_ptr_name): Declare.
+	* cp-valprint.c (vtbl_ptr_name): Remove "extern" now that we get
+	it from the header.
+	* stabsread.c (define_symbol): Remove declaration of vtbl_ptr_name.
+
+2019-10-07  Christian Biesinger  <cbiesinger@google.com>
+
+	* charset.c (your_gdb_wchar_t_is_bogus): Replace with a
+	gdb_static_assert.
+
+2019-10-07  Weimin Pan  <weimin.pan@oracle.com>
+
+	* ../Makefile.def (dependencies): Add all-libctf to all-gdb
+	* ../Makefile.in: Add "all-gdb: maybe-all-libctf"
+	* ctfread.c: New file.
+	* ctfread.h: New file.
+	* elfread.c: Include ctfread.h.
+	(struct elfinfo text_p): New member ctfsect.
+	(elf_locate_sections): Mark CTF section.
+	(elf_symfile_read): Call elfctf_build_psymtabs.
+	* Makefile.in (LIBCTF): Add.
+	(CLIBS): Use it.
+	(CDEPS): Likewise.
+	(DIST): Add ctfread.c.
+
+2019-10-07  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* ctfread.c (struct nextfield): Renamed to ...
+	(struct ctf_nextfield): ... this.
+	(struct field_info): Renamed to ...
+	(strut ctf_field_info): ... this.
+	(attach_fields_to_type): Update for renamed structures.
+	(ctf_add_member_cb): Likewise.
+	(ctf_add_enum_member_cb): Likewise.
+	(process_struct_members): Likewise.
+	(process_enum_type): Likewise.
+
+2019-10-07  Weimin Pan  <weimin.pan@oracle.com>
+
+	* tracectf.h: Rename, was ctf.h.
+	* tracectf.c: Rename, was ctf.c, replace ctf.h with tracectf.h.
+	* tracefile.c: Likewise.
+	* tracepoint.c: Remove unused include ctf.h.
+	* mi/mi-main.c: Likewise.
+	* Makefile.in Replace ctf.c with tracectf.c.
+
+2019-10-06  Joel Brobecker  <brobecker@adacore.com>
+
+	* version.in: Change version number to "9.0.50.DATE-git".
+
+2019-10-03  Tom Tromey  <tom@tromey.com>
+
+	PR rust/24976:
+	* dwarf2read.c (quirk_rust_enum): Handle single-element unions.
+
+2019-10-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* f-lang.c (f_language_defn): Use cp_get_symbol_name_matcher and
+	cp_search_name_hash.
+	* NEWS: Add entry about nested function support.
+
+2019-10-03  Bernhard Heckel  <bernhard.heckel@intel.com>
+	    Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* cp-namespace.c (cp_search_static_and_baseclasses): Only search
+	for nested static variables when searchin VAR_DOMAIN.
+	* dwarf2read.c (add_partial_symbol): Add nested subroutines to the
+	global scope, update comment.
+	(add_partial_subprogram): Call add_partial_subprogram recursively
+	for nested subroutines when processinng Fortran.
+	(load_partial_dies): Process the child entities of a subprogram
+	when processing Fortran.
+	(partial_die_parent_scope): Handle building scope
+	for Fortran nested functions.
+	(process_die): Record that nested functions have a scope.
+	(new_symbol): Always record Fortran subprograms on the global
+	symbol list.
+	(determine_prefix): How to build the prefix for Fortran
+	subprograms.
+
+2019-10-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* linux-nat.c (linux_nat_filter_event): Don't ignore SIGSTOP if we
+	have just sent the thread a SIGSTOP and are waiting for it to
+	arrive.
+
+2019-10-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* btrace.c (btrace_add_pc): Remove whitespace before the template
+	parameter in 'std::vector <...>'.
+	(parse_xml_btrace_block): Likewise.
+	(btrace_maint_decode_pt): Likewise.
+	(btrace_maint_update_packets): Likewise.
+	(btrace_maint_print_packets): Likewise.
+	* btrace.h (struct btrace_maint_info): Likewise.
+	* dwarf2read.c (struct type_unit_group): Likewise.
+	(build_type_psymtabs_reader): Likewise.
+	* gdbsupport/btrace-common.c (btrace_data_append): Likewise.
+	* gdbsupport/btrace-common.h (struct btrace_data_bts): Likewise.
+	* nat/linux-btrace.c (perf_event_read_bts): Likewise.
+
+2019-10-03  Tom de Vries  <tdevries@suse.de>
+
+	* cli/cli-style.c (_initialize_cli_style): Adding a '.' at the end of
+	the first line of the help text for set/show style metadata.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* Makefile.in (COMMON_SFILES): Add common-inferior.c.
+	* gdbsupport/common-inferior.c: New file.
+	* infcmd.c (startup_with_shell): Don't define.
+	* nat/fork-inferior.h (startup_with_shell): Don't declare.
+	* gdbsupport/common-inferior.h (startup_with_shell): Declare.
+	* inferior.h (startup_with_shell): Don't declare.
+
+2019-10-02  Christian Biesinger  <cbiesinger@google.com>
+
+	* gdbsupport/gdb_assert.h: Include errors.h.
+	* gdbsupport/gdb_string_view.h: Include gdb_assert.h.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* NEWS: Add $_ada_exception entry.
+	* ada-lang.c (struct ada_catchpoint): Add constructor.
+	<m_kind>: New member.
+	(allocate_location_exception, re_set_exception): Remove
+	"ex" parameter.
+	(should_stop_exception): Compute $_ada_exception.
+	(check_status_exception, print_it_exception)
+	(print_one_exception, print_mention_exception): Remove
+	"ex" parameter.
+	(allocate_location_catch_exception, re_set_catch_exception)
+	(check_status_exception, print_it_catch_exception)
+	(print_one_catch_exception, print_mention_catch_exception)
+	(print_recreate_catch_exception)
+	(allocate_location_catch_exception_unhandled)
+	(re_set_catch_exception_unhandled)
+	(check_status_exception, print_it_catch_exception_unhandled)
+	(print_one_catch_exception_unhandled)
+	(print_mention_catch_exception_unhandled)
+	(print_recreate_catch_exception_unhandled)
+	(allocate_location_catch_assert, re_set_catch_assert)
+	(check_status_assert, print_it_catch_assert)
+	(print_one_catch_assert, print_mention_catch_assert)
+	(print_recreate_catch_assert)
+	(allocate_location_catch_handlers, re_set_catch_handlers)
+	(check_status_handlers, print_it_catch_handlers)
+	(print_one_catch_handlers, print_mention_catch_handlers)
+	(print_recreate_catch_handlers): Remove.
+	(create_ada_exception_catchpoint): Update.
+	(initialize_ada_catchpoint_ops): Update.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* ada-lang.c (ada_lookup_simple_minsyms): Remove.
+	(create_excep_cond_exprs): Simplify exception string computation.
+	(ada_exception_catchpoint_cond_string): Likewise.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* symmisc.c (dump_msymbols): Don't use MSYMBOL_VALUE_ADDRESS.
+	* ada-lang.c (lesseq_defined_than): Handle
+	LOC_STATIC.
+	* dwarf2read.c (dwarf2_per_objfile): Add can_copy
+	parameter.
+	(dwarf2_has_info): Likewise.
+	(new_symbol): Set maybe_copied on symbol when
+	appropriate.
+	* dwarf2read.h (dwarf2_per_objfile): Add can_copy
+	parameter.
+	<can_copy>: New member.
+	* elfread.c (record_minimal_symbol): Set maybe_copied
+	on symbol when appropriate.
+	(elf_symfile_read): Update call to dwarf2_has_info.
+	* minsyms.c (lookup_minimal_symbol_linkage): New
+	function.
+	* minsyms.h (lookup_minimal_symbol_linkage): Declare.
+	* symtab.c (get_symbol_address, get_msymbol_address):
+	New functions.
+	* symtab.h (get_symbol_address, get_msymbol_address):
+	Declare.
+	(SYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_ADDRESS): Handle
+	maybe_copied.
+	(struct symbol, struct minimal_symbol) <maybe_copied>:
+	New member.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* source.c (struct current_source_location): New.
+	(current_source_key): New global.
+	(current_source_symtab, current_source_line)
+	(current_source_pspace): Remove.
+	(get_source_location): New function.
+	(get_current_source_symtab_and_line)
+	(set_default_source_symtab_and_line)
+	(set_current_source_symtab_and_line)
+	(clear_current_source_symtab_and_line, select_source_symtab)
+	(info_source_command, print_source_lines_base)
+	(info_line_command, search_command_helper, _initialize_source):
+	Update.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* source.c (select_source_symtab): Don't call
+	decode_line_with_current_source.
+
+2019-10-02  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* symtab.c (lookup_global_symbol): Search global block.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* coffread.c (process_coff_symbol): Update.
+	* dwarf2read.c (var_decode_location, new_symbol): Update.
+	* mdebugread.c (parse_symbol): Update.
+	* objfiles.c (relocate_one_symbol): Update.
+	* stabsread.c (define_symbol, fix_common_block)
+	(scan_file_globals): Update.
+	* symtab.h (SYMBOL_VALUE_ADDRESS): Expand to an rvalue.
+	(SET_SYMBOL_VALUE_ADDRESS): New macro.
+	* xcoffread.c (process_xcoff_symbol): Update.
+
+2019-10-02  Andreas Arnez  <arnez@linux.ibm.com>
+
+	* MAINTAINERS: Update my email address.
+
+2019-10-02  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* dwarf2read.c (struct type_unit_group) <tus>: Convert to
+	std::vector.
+	(build_type_psymtabs_reader): Update for std::vector.
+	(build_type_psymtab_dependencies): Likewise.
+	* dwarf2read.h: Remove use of DEF_VEC_P.
+	(typedef sig_type_ptr): Delete.
+
+2019-10-02  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* btrace.c (btrace_maint_clear): Update to handle change from VEC
+	to std::vector.
+	(btrace_maint_decode_pt): Likewise, and move allocation of the
+	vector outside of the loop.
+	(btrace_maint_update_packets): Update to handle change from VEC to
+	std::vector.
+	(btrace_maint_print_packets): Likewise.
+	(maint_info_btrace_cmd): Likewise.
+	* btrace.h: Remove use of DEF_VEC_O.
+	(typedef btrace_pt_packet_s): Delete.
+	(struct btrace_maint_info) <packets>: Change fromm VEC to
+	std::vector.
+	* gdbsupport/btrace-common.h: Remove 'vec.h' include.
+
+2019-10-02  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* btrace.c (btrace_compute_ftrace_bts): Update for std::vector,
+	make accesses into the vector constant references.
+	(btrace_add_pc): Update for std::vector.
+	(btrace_stitch_bts): Likewise.
+	(parse_xml_btrace_block): Likewise.
+	(btrace_maint_update_packets): Likewise.
+	(btrace_maint_print_packets): Likewise.
+	(maint_info_btrace_cmd): Likewise.
+	* gdbsupport/btrace-common.c (btrace_data::fini): Update for
+	std::vector.
+	(btrace_data::empty): Likewise.
+	(btrace_data_append): Likewise.
+	* gdbsupport/btrace-common.h: Remove use of DEF_VEC_O.
+	(typedef btrace_block_s): Delete.
+	(struct btrace_block): Add constructor.
+	(struct btrace_data_bts) <blocks>: Change to std::vector.
+	* nat/linux-btrace.c (perf_event_read_bts): Update for
+	std::vector.
+	(linux_read_bts): Likewise.
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-logging.c (show_logging_filename): Use styled_string.
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* stack.c (print_frame, info_frame_command_core): Use
+	styled_string.
+	* linux-thread-db.c (try_thread_db_load_1)
+	(try_thread_db_load_from_pdir_1): Use styled_string.
+	* auto-load.c (file_is_auto_load_safe, execute_script_contents)
+	(auto_load_section_scripts, info_auto_load_local_gdbinit)
+	(maybe_print_unsupported_script_warning)
+	(maybe_print_script_not_found_warning): Use styled_string.
+	* ada-lang.c (user_select_syms): Use styled_string.
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* p-lang.c (pascal_printstr): Use metadata style.
+	* value.c (show_convenience): Use metadata style.
+	* valprint.c (valprint_check_validity, val_print_optimized_out)
+	(val_print_not_saved, val_print_unavailable)
+	(val_print_invalid_address, generic_val_print, val_print)
+	(value_check_printable, val_print_array_elements): Use metadata
+	style.
+	* ui-out.h (class ui_out) <field_fmt>: New overload.
+	<do_field_fmt>: Add style parameter.
+	* ui-out.c (ui_out::field_fmt): New overload.
+	* typeprint.c (type_print_unknown_return_type)
+	(val_print_not_allocated, val_print_not_associated): Use metadata
+	style.
+	* tui/tui-out.h (class tui_ui_out) <do_field_fmt>: Add style
+	parameter.
+	* tui/tui-out.c (tui_ui_out::do_field_fmt): Update.
+	* tracepoint.c (tvariables_info_1): Use metadata style.
+	* stack.c (print_frame_arg, print_frame_info, print_frame)
+	(info_frame_command_core): Use metadata style.
+	* skip.c (info_skip_command): Use metadata style.
+	* rust-lang.c (rust_print_enum): Use metadata style.
+	* python/py-prettyprint.c (print_stack_unless_memory_error): Use
+	metadata style.
+	* python/py-framefilter.c (py_print_single_arg): Use metadata
+	style.
+	* printcmd.c (do_one_display, print_variable_and_value): Use
+	metadata style.
+	* p-valprint.c (pascal_val_print)
+	(pascal_object_print_value_fields): Use metadata style.
+	* p-typeprint.c (pascal_type_print_base): Use metadata style.
+	* mi/mi-out.h (class mi_ui_out) <do_field_fmt>: Add style
+	parameter.
+	* mi/mi-out.c (mi_ui_out::do_field_fmt): Update.
+	* m2-valprint.c (m2_print_long_set): Use metadata style.
+	* m2-typeprint.c (m2_print_type): Use metadata style.
+	* infcmd.c (print_return_value_1): Use metadata style.
+	* gnu-v3-abi.c (print_one_vtable): Use metadata style.
+	* f-valprint.c (info_common_command_for_block): Use metadata
+	style.
+	* f-typeprint.c (f_type_print_base): Use metadata style.
+	* expprint.c (print_subexp_standard): Use metadata style.
+	* cp-valprint.c (cp_print_value_fields): Use metadata style.
+	* cli/cli-style.h (class cli_style_option): Add constructor.
+	(metadata_style): Declare.
+	* cli/cli-style.c (metadata_style): New global.
+	(_initialize_cli_style): Register metadata style.
+	* cli-out.h (class cli_ui_out) <do_field_fmt>: Add style
+	parameter.
+	* cli-out.c (cli_ui_out::do_field_fmt): Update.
+	* c-typeprint.c (c_type_print_base_struct_union)
+	(c_type_print_base_1): Use metadata style.
+	* breakpoint.c (watchpoint_value_print)
+	(print_one_breakpoint_location): Use metadata style.
+	* break-catch-syscall.c (print_one_catch_syscall): Use metadata
+	style.
+	* break-catch-sig.c (signal_catchpoint_print_one): Use metadata
+	style.
+	* ada-valprint.c (val_print_packed_array_elements, printstr)
+	(print_field_values, ada_val_print_ref, ada_val_print): Use
+	metadata style.
+	* ada-typeprint.c (print_array_type, ada_print_type): Use metadata
+	style.
+	* ada-tasks.c (print_ada_task_info, info_task): Use metadata
+	style.
+	* ada-lang.c (user_select_syms): Use metadata style.
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-cmds.c (pwd_command): Style output.
+
+2019-10-01  Pedro Alves  <palves@redhat.com>
+	    Tom Tromey  <tom@tromey.com>
+
+	* symtab.c (print_symbol_info): Use %ps.
+	(print_msymbol_info): Use %ps.
+	* symfile.c (symbol_file_add_with_addrs): Use %ps.
+	* printcmd.c (print_variable_and_value): Use %ps.
+	* macrocmd.c (show_pp_source_pos): Use %ps.
+	* infrun.c (print_exited_reason): Use ui_out::message.
+	* breakpoint.c (watchpoint_check, print_one_breakpoint_location)
+	(describe_other_breakpoints): Use ui_out::message and new
+	formats.
+	(say_where): Use new formats.
+	(bkpt_print_it, tracepoint_print_one_detail): Use ui_out::message
+	and new formats.
+
+2019-10-01  Pedro Alves  <palves@redhat.com>
+	    Tom Tromey  <tom@tromey.com>
+
+	* unittests/format_pieces-selftests.c: Add gdb_format parameter.
+	(test_gdb_formats): New function.
+	(run_tests): Call it.
+	(test_format_specifier): Update.
+	* utils.h (fputs_filtered): Update comment.
+	(vfprintf_styled, vfprintf_styled_no_gdbfmt)
+	(fputs_styled_unfiltered): Declare.
+	* utils.c (fputs_styled_unfiltered): New function.
+	(vfprintf_maybe_filtered): Add gdbfmt parameter.
+	(vfprintf_filtered): Update.
+	(vfprintf_unfiltered, vprintf_filtered): Update.
+	(vfprintf_styled, vfprintf_styled_no_gdbfmt): New functions.
+	* ui-out.h (enum ui_out_flag) <unfiltered_output,
+	disallow_ui_out_field>: New constants.
+	(enum class field_kind): New.
+	(struct base_field_s, struct signed_field_s): New.
+	(signed_field): New function.
+	(struct string_field_s): New.
+	(string_field): New function.
+	(struct styled_string_s): New.
+	(styled_string): New function.
+	(class ui_out) <message>: Add comment.
+	<vmessage, call_do_message>: New methods.
+	<do_message>: Add style parameter.
+	* ui-out.c (ui_out::call_do_message, ui_out::vmessage): New
+	methods.
+	(ui_out::message): Rewrite.
+	* mi/mi-out.h (class mi_ui_out) <do_message>: Add style
+	parameter.
+	* mi/mi-out.c (mi_ui_out::do_message): Add style parameter.
+	* gdbsupport/format.h (class format_pieces) <format_pieces>: Add
+	gdb_extensions parameter.
+	(class format_piece): Add parameter to constructor.
+	(n_int_args): New field.
+	* gdbsupport/format.c (format_pieces::format_pieces): Add
+	gdb_extensions parameter.  Handle '*'.
+	* cli-out.h (class cli_ui_out) <do_message>: Add style parameter.
+	* cli-out.c (cli_ui_out::do_message): Add style parameter.  Call
+	vfprintf_styled_no_gdbfmt.
+	(cli_ui_out::do_field_string, cli_ui_out::do_spaces)
+	(cli_ui_out::do_text, cli_ui_out::field_separator): Allow
+	unfiltered output.
+	* ui-style.h (struct ui_file_style) <ptr>: New method.
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* unittests/format_pieces-selftests.c: Update.  Add final format.
+	* gdbsupport/format.c (format_pieces::format_pieces): Don't add
+	empty literal pieces.
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* ui-out.h (enum class ui_out_style_kind): Remove.
+	(class ui_out) <field_string, field_stsream, do_field_string>:
+	Change type of "style".
+	* ui-out.c (ui_out::field_core_addr, ui_out::field_stream)
+	(ui_out::field_string): Update.
+	* tui/tui-out.h (class tui_ui_out) <do_field_string>: Change type
+	of "style".
+	* tui/tui-out.c (tui_ui_out::do_field_string): Update.
+	* tracepoint.c (print_one_static_tracepoint_marker): Update.
+	* stack.c (print_frame_arg, print_frame_info, print_frame):
+	Update.
+	* source.c (print_source_lines_base): Update.
+	* solib.c (info_sharedlibrary_command): Update.
+	* skip.c (info_skip_command): Update.
+	* record-btrace.c (btrace_call_history_src_line)
+	(btrace_call_history): Update.
+	* python/py-framefilter.c (py_print_frame): Update.
+	* mi/mi-out.h (class mi_ui_out) <do_field_string>: Change type of
+	"style".
+	* mi/mi-out.c (mi_ui_out::do_table_header)
+	(mi_ui_out::do_field_signed, mi_ui_out::do_field_unsigned)
+	(mi_ui_out::do_field_string): Update.
+	* disasm.c (gdb_pretty_print_disassembler::pretty_print_insn):
+	Update.
+	* cli-out.h (class cli_ui_out) <do_field_string>: Change type of
+	"style".
+	* cli-out.c (cli_ui_out::do_table_header)
+	(cli_ui_out::do_field_signed, cli_ui_out::do_field_unsigned)
+	(cli_ui_out::do_field_skip, cli_ui_out::do_field_string)
+	(cli_ui_out::do_field_fmt): Update.
+	* breakpoint.c (print_breakpoint_location): Update.
+	(update_static_tracepoint): Update.
+
+2019-10-01  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
+
+	* main.c (relocate_gdbinit_path_maybe_in_datadir): Remove std::string
+	conversion of gdb_datadir.
+	(captured_main_1): Remove xstrdup when assigning to gdb_datadir,
+	remove not needed c_str ().
+
 2019-09-30  Ali Tamur <tamur@google.com>
 
 	* dwarf2read.c (skip_one_die): Handle DW_FORM_strx forms.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/charset.c ./gdb/charset.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/charset.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/charset.c	2019-10-08 01:49:30.000000000 +0000
@@ -946,15 +946,9 @@ default_auto_wide_charset (void)
 #define ENDIAN_SUFFIX "LE"
 #endif
 
-/* The code below serves to generate a compile time error if
-   gdb_wchar_t type is not of size 2 nor 4, despite the fact that
-   macro __STDC_ISO_10646__ is defined.
-   This is better than a gdb_assert call, because GDB cannot handle
-   strings correctly if this size is different.  */
-
-extern char your_gdb_wchar_t_is_bogus[(sizeof (gdb_wchar_t) == 2
-				       || sizeof (gdb_wchar_t) == 4)
-				      ? 1 : -1];
+/* GDB cannot handle strings correctly if this size is different.  */
+
+gdb_static_assert (sizeof (gdb_wchar_t) == 2 || sizeof (gdb_wchar_t) == 4);
 
 /* intermediate_encoding returns the charset used internally by
    GDB to convert between target and host encodings. As the test above
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/c-lang.h ./gdb/c-lang.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/c-lang.h	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/c-lang.h	2019-10-08 01:49:30.000000000 +0000
@@ -144,6 +144,12 @@ extern void cp_print_value_fields_rtti (
 					const struct value_print_options *,
 					struct type **, int);
 
+/* gcc-2.6 or later (when using -fvtable-thunks)
+   emits a unique named type for a vtable entry.
+   Some gdb code depends on that specific name.  */
+
+extern const char vtbl_ptr_name[];
+
 extern int cp_is_vtbl_ptr_type (struct type *);
 
 extern int cp_is_vtbl_member (struct type *);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli/cli-cmds.c ./gdb/cli/cli-cmds.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli/cli-cmds.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/cli/cli-cmds.c	2019-10-08 01:49:30.000000000 +0000
@@ -49,6 +49,7 @@
 #include "cli/cli-script.h"
 #include "cli/cli-setshow.h"
 #include "cli/cli-cmds.h"
+#include "cli/cli-style.h"
 #include "cli/cli-utils.h"
 
 #include "extension.h"
@@ -451,10 +452,14 @@ pwd_command (const char *args, int from_
            safe_strerror (errno));
 
   if (strcmp (cwd.get (), current_directory) != 0)
-    printf_unfiltered (_("Working directory %s\n (canonically %s).\n"),
-		       current_directory, cwd.get ());
+    printf_unfiltered (_("Working directory %ps\n (canonically %ps).\n"),
+		       styled_string (file_name_style.style (),
+				      current_directory),
+		       styled_string (file_name_style.style (), cwd.get ()));
   else
-    printf_unfiltered (_("Working directory %s.\n"), current_directory);
+    printf_unfiltered (_("Working directory %ps.\n"),
+		       styled_string (file_name_style.style (),
+				      current_directory));
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli/cli-logging.c ./gdb/cli/cli-logging.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli/cli-logging.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/cli/cli-logging.c	2019-10-08 01:49:30.000000000 +0000
@@ -21,6 +21,7 @@
 #include "gdbcmd.h"
 #include "ui-out.h"
 #include "interps.h"
+#include "cli/cli-style.h"
 
 static char *saved_filename;
 
@@ -29,8 +30,8 @@ static void
 show_logging_filename (struct ui_file *file, int from_tty,
 		       struct cmd_list_element *c, const char *value)
 {
-  fprintf_filtered (file, _("The current logfile is \"%s\".\n"),
-		    value);
+  fprintf_filtered (file, _("The current logfile is \"%ps\".\n"),
+		    styled_string (file_name_style.style (), value));
 }
 
 static bool logging_overwrite;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli/cli-style.c ./gdb/cli/cli-style.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli/cli-style.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/cli/cli-style.c	2019-10-08 01:49:30.000000000 +0000
@@ -85,6 +85,10 @@ cli_style_option title_style ("title", u
 
 /* See cli-style.h.  */
 
+cli_style_option metadata_style ("metadata", ui_file_style::DIM);
+
+/* See cli-style.h.  */
+
 cli_style_option::cli_style_option (const char *name,
 				    ui_file_style::basic_color fg)
   : m_name (name),
@@ -372,4 +376,11 @@ Highlight display styling.\n\
 Configure highlight colors and display intensity\n\
 Some commands use the highlight style to draw the attention to a part\n\
 of their output."));
+
+  STYLE_ADD_SETSHOW_COMMANDS (metadata_style,
+			      _("\
+Metadata display styling.\n\
+Configure metadata colors and display intensity\n\
+The \"metadata\" style is used when GDB displays information about\n\
+your data, for example \"<unavailable>\""));
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli/cli-style.h ./gdb/cli/cli-style.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli/cli-style.h	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/cli/cli-style.h	2019-10-08 01:49:30.000000000 +0000
@@ -34,6 +34,9 @@ public:
   /* Construct a CLI style option with an intensity.  */
   cli_style_option (const char *name, ui_file_style::intensity i);
 
+  /* Construct a CLI style option with an intensity.  */
+  cli_style_option (ui_file_style::intensity val);
+
   /* Return a ui_file_style corresponding to the settings in this CLI
      style.  */
   ui_file_style style () const;
@@ -108,6 +111,8 @@ extern cli_style_option highlight_style;
 /* The title style.  */
 extern cli_style_option title_style;
 
+/* The metadata style.  */
+extern cli_style_option metadata_style;
 
 /* True if source styling is enabled.  */
 extern bool source_styling;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli-out.c ./gdb/cli-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli-out.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/cli-out.c	2019-10-08 01:49:30.000000000 +0000
@@ -73,7 +73,7 @@ cli_ui_out::do_table_header (int width, 
     return;
 
   do_field_string (0, width, alignment, 0, col_hdr.c_str (),
-		   ui_out_style_kind::DEFAULT);
+		   ui_file_style ());
 }
 
 /* Mark beginning of a list */
@@ -100,7 +100,7 @@ cli_ui_out::do_field_signed (int fldno, 
     return;
 
   do_field_string (fldno, width, alignment, fldname, plongest (value),
-		   ui_out_style_kind::DEFAULT);
+		   ui_file_style ());
 }
 
 /* output an unsigned field */
@@ -113,7 +113,7 @@ cli_ui_out::do_field_unsigned (int fldno
     return;
 
   do_field_string (fldno, width, alignment, fldname, pulongest (value),
-		   ui_out_style_kind::DEFAULT);
+		   ui_file_style ());
 }
 
 /* used to omit a field */
@@ -126,7 +126,7 @@ cli_ui_out::do_field_skip (int fldno, in
     return;
 
   do_field_string (fldno, width, alignment, fldname, "",
-		   ui_out_style_kind::DEFAULT);
+		   ui_file_style ());
 }
 
 /* other specific cli_field_* end up here so alignment and field
@@ -135,7 +135,7 @@ cli_ui_out::do_field_skip (int fldno, in
 void
 cli_ui_out::do_field_string (int fldno, int width, ui_align align,
 			     const char *fldname, const char *string,
-			     ui_out_style_kind style)
+			     const ui_file_style &style)
 {
   int before = 0;
   int after = 0;
@@ -171,29 +171,10 @@ cli_ui_out::do_field_string (int fldno, 
 
   if (string)
     {
-      ui_file_style fstyle;
-      switch (style)
-	{
-	case ui_out_style_kind::DEFAULT:
-	  /* Nothing.  */
-	  break;
-	case ui_out_style_kind::FILE:
-	  /* Nothing.  */
-	  fstyle = file_name_style.style ();
-	  break;
-	case ui_out_style_kind::FUNCTION:
-	  fstyle = function_name_style.style ();
-	  break;
-	case ui_out_style_kind::VARIABLE:
-	  fstyle = variable_name_style.style ();
-	  break;
-	case ui_out_style_kind::ADDRESS:
-	  fstyle = address_style.style ();
-	  break;
-	default:
-	  gdb_assert_not_reached ("missing case");
-	}
-      fputs_styled (string, fstyle, m_streams.back ());
+      if (test_flags (unfiltered_output))
+	fputs_styled_unfiltered (string, style, m_streams.back ());
+      else
+	fputs_styled (string, style, m_streams.back ());
     }
 
   if (after)
@@ -207,16 +188,15 @@ cli_ui_out::do_field_string (int fldno, 
 
 void
 cli_ui_out::do_field_fmt (int fldno, int width, ui_align align,
-			  const char *fldname, const char *format,
-			  va_list args)
+			  const char *fldname, const ui_file_style &style,
+			  const char *format, va_list args)
 {
   if (m_suppress_output)
     return;
 
   std::string str = string_vprintf (format, args);
 
-  do_field_string (fldno, width, align, fldname, str.c_str (),
-		   ui_out_style_kind::DEFAULT);
+  do_field_string (fldno, width, align, fldname, str.c_str (), style);
 }
 
 void
@@ -225,7 +205,10 @@ cli_ui_out::do_spaces (int numspaces)
   if (m_suppress_output)
     return;
 
-  print_spaces_filtered (numspaces, m_streams.back ());
+  if (test_flags (unfiltered_output))
+    print_spaces (numspaces, m_streams.back ());
+  else
+    print_spaces_filtered (numspaces, m_streams.back ());
 }
 
 void
@@ -234,16 +217,24 @@ cli_ui_out::do_text (const char *string)
   if (m_suppress_output)
     return;
 
-  fputs_filtered (string, m_streams.back ());
+  if (test_flags (unfiltered_output))
+    fputs_unfiltered (string, m_streams.back ());
+  else
+    fputs_filtered (string, m_streams.back ());
 }
 
 void
-cli_ui_out::do_message (const char *format, va_list args)
+cli_ui_out::do_message (const ui_file_style &style,
+			const char *format, va_list args)
 {
   if (m_suppress_output)
     return;
 
-  vfprintf_unfiltered (m_streams.back (), format, args);
+  /* Use the "no_gdbfmt" variant here to avoid recursion.
+     vfprintf_styled calls into cli_ui_out::message to handle the
+     gdb-specific printf formats.  */
+  vfprintf_styled_no_gdbfmt (m_streams.back (), style,
+			     !test_flags (unfiltered_output), format, args);
 }
 
 void
@@ -279,7 +270,10 @@ cli_ui_out::do_redirect (ui_file *outstr
 void
 cli_ui_out::field_separator ()
 {
-  fputc_filtered (' ', m_streams.back ());
+  if (test_flags (unfiltered_output))
+    fputc_unfiltered (' ', m_streams.back ());
+  else
+    fputc_filtered (' ', m_streams.back ());
 }
 
 /* Constructor for cli_ui_out.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli-out.h ./gdb/cli-out.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cli-out.h	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/cli-out.h	2019-10-08 01:49:30.000000000 +0000
@@ -57,15 +57,16 @@ protected:
   virtual void do_field_string (int fldno, int width, ui_align align,
 				const char *fldname,
 				const char *string,
-				ui_out_style_kind style) override;
+				const ui_file_style &style) override;
   virtual void do_field_fmt (int fldno, int width, ui_align align,
-			     const char *fldname, const char *format,
-			     va_list args)
-    override ATTRIBUTE_PRINTF (6,0);
+			     const char *fldname, const ui_file_style &style,
+			     const char *format, va_list args)
+    override ATTRIBUTE_PRINTF (7, 0);
   virtual void do_spaces (int numspaces) override;
   virtual void do_text (const char *string) override;
-  virtual void do_message (const char *format, va_list args) override
-    ATTRIBUTE_PRINTF (2,0);
+  virtual void do_message (const ui_file_style &style,
+			   const char *format, va_list args) override
+    ATTRIBUTE_PRINTF (3,0);
   virtual void do_wrap_hint (const char *identstring) override;
   virtual void do_flush () override;
   virtual void do_redirect (struct ui_file *outstream) override;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/coffread.c ./gdb/coffread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/coffread.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/coffread.c	2019-10-08 01:49:30.000000000 +0000
@@ -1609,9 +1609,10 @@ process_coff_symbol (struct coff_symbol 
 	case C_THUMBEXTFUNC:
 	case C_EXT:
 	  SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
-	  SYMBOL_VALUE_ADDRESS (sym) = (CORE_ADDR) cs->c_value;
-	  SYMBOL_VALUE_ADDRESS (sym) += ANOFFSET (objfile->section_offsets,
-						  SECT_OFF_TEXT (objfile));
+	  SET_SYMBOL_VALUE_ADDRESS (sym,
+				    (CORE_ADDR) cs->c_value
+				    + ANOFFSET (objfile->section_offsets,
+						SECT_OFF_TEXT (objfile)));
 	  add_symbol_to_list (sym, get_global_symbols ());
 	  break;
 
@@ -1619,9 +1620,10 @@ process_coff_symbol (struct coff_symbol 
 	case C_THUMBSTATFUNC:
 	case C_STAT:
 	  SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
-	  SYMBOL_VALUE_ADDRESS (sym) = (CORE_ADDR) cs->c_value;
-	  SYMBOL_VALUE_ADDRESS (sym) += ANOFFSET (objfile->section_offsets,
-						  SECT_OFF_TEXT (objfile));
+	  SET_SYMBOL_VALUE_ADDRESS (sym,
+				    (CORE_ADDR) cs->c_value
+				    + ANOFFSET (objfile->section_offsets,
+						SECT_OFF_TEXT (objfile)));
 	  if (within_function)
 	    {
 	      /* Static symbol of local scope.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cp-namespace.c ./gdb/cp-namespace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cp-namespace.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/cp-namespace.c	2019-10-08 01:49:30.000000000 +0000
@@ -278,8 +278,9 @@ cp_search_static_and_baseclasses (const 
 
   /* If the scope is a function/method, then look up NESTED as a local
      static variable.  E.g., "print 'function()::static_var'".  */
-  if (TYPE_CODE (scope_type) == TYPE_CODE_FUNC
-      || TYPE_CODE (scope_type) == TYPE_CODE_METHOD)
+  if ((TYPE_CODE (scope_type) == TYPE_CODE_FUNC
+       || TYPE_CODE (scope_type) == TYPE_CODE_METHOD)
+      && domain == VAR_DOMAIN)
     return lookup_symbol (nested, SYMBOL_BLOCK_VALUE (scope_sym.symbol),
 			  VAR_DOMAIN, NULL);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cp-valprint.c ./gdb/cp-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/cp-valprint.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/cp-valprint.c	2019-10-08 01:49:30.000000000 +0000
@@ -37,6 +37,7 @@
 #include "typeprint.h"
 #include "gdbsupport/byte-vector.h"
 #include "gdbarch.h"
+#include "cli/cli-style.h"
 
 static struct obstack dont_print_vb_obstack;
 static struct obstack dont_print_statmem_obstack;
@@ -55,7 +56,7 @@ static void cp_print_value (struct type 
 
 
 /* GCC versions after 2.4.5 use this.  */
-extern const char vtbl_ptr_name[] = "__vtbl_ptr_type";
+const char vtbl_ptr_name[] = "__vtbl_ptr_type";
 
 /* Return truth value for assertion that TYPE is of the type
    "pointer to virtual function".  */
@@ -170,7 +171,7 @@ cp_print_value_fields (struct type *type
 
   /* If there are no data fields, skip this part */
   if (len == n_baseclasses || !len)
-    fprintf_filtered (stream, "<No data fields>");
+    fprintf_styled (stream, metadata_style.style (), "<No data fields>");
   else
     {
       size_t statmem_obstack_initial_size = 0;
@@ -268,7 +269,8 @@ cp_print_value_fields (struct type *type
 	         byte order problems.  */
 	      if (TYPE_FIELD_IGNORE (type, i))
 		{
-		  fputs_filtered ("<optimized out or zero length>", stream);
+		  fputs_styled ("<optimized out or zero length>",
+				metadata_style.style (), stream);
 		}
 	      else if (value_bits_synthetic_pointer (val,
 						     TYPE_FIELD_BITPOS (type,
@@ -276,7 +278,8 @@ cp_print_value_fields (struct type *type
 						     TYPE_FIELD_BITSIZE (type,
 									 i)))
 		{
-		  fputs_filtered (_("<synthetic pointer>"), stream);
+		  fputs_styled (_("<synthetic pointer>"),
+				metadata_style.style (), stream);
 		}
 	      else
 		{
@@ -292,8 +295,8 @@ cp_print_value_fields (struct type *type
 	    {
 	      if (TYPE_FIELD_IGNORE (type, i))
 		{
-		  fputs_filtered ("<optimized out or zero length>",
-				  stream);
+		  fputs_styled ("<optimized out or zero length>",
+				metadata_style.style (), stream);
 		}
 	      else if (field_is_static (&TYPE_FIELD (type, i)))
 		{
@@ -307,9 +310,9 @@ cp_print_value_fields (struct type *type
 		    }
 		  catch (const gdb_exception_error &ex)
 		    {
-		      fprintf_filtered (stream,
-					_("<error reading variable: %s>"),
-					ex.what ());
+		      fprintf_styled (stream, metadata_style.style (),
+				      _("<error reading variable: %s>"),
+				      ex.what ());
 		    }
 		}
 	      else if (i == vptr_fieldno && type == vptr_basetype)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ctf.c ./gdb/ctf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ctf.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/ctf.c	1970-01-01 00:00:00.000000000 +0000
@@ -1,1730 +0,0 @@
-/* CTF format support.
-
-   Copyright (C) 2012-2019 Free Software Foundation, Inc.
-   Contributed by Hui Zhu <hui_zhu@mentor.com>
-   Contributed by Yao Qi <yao@codesourcery.com>
-
-   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/>.  */
-
-#include "defs.h"
-#include "ctf.h"
-#include "tracepoint.h"
-#include "regcache.h"
-#include <sys/stat.h>
-#include "exec.h"
-#include "completer.h"
-#include "inferior.h"
-#include "gdbthread.h"
-#include "tracefile.h"
-#include <ctype.h>
-#include <algorithm>
-#include "gdbsupport/filestuff.h"
-#include "gdbarch.h"
-
-/* The CTF target.  */
-
-static const target_info ctf_target_info = {
-  "ctf",
-  N_("CTF file"),
-  N_("(Use a CTF directory as a target.\n\
-Specify the filename of the CTF directory.")
-};
-
-class ctf_target final : public tracefile_target
-{
-public:
-  const target_info &info () const override
-  { return ctf_target_info; }
-
-  void close () override;
-  void fetch_registers (struct regcache *, int) override;
-  enum target_xfer_status xfer_partial (enum target_object object,
-						const char *annex,
-						gdb_byte *readbuf,
-						const gdb_byte *writebuf,
-						ULONGEST offset, ULONGEST len,
-						ULONGEST *xfered_len) override;
-  void files_info () override;
-  int trace_find (enum trace_find_type type, int num,
-			  CORE_ADDR addr1, CORE_ADDR addr2, int *tpp) override;
-  bool get_trace_state_variable_value (int tsv, LONGEST *val) override;
-  traceframe_info_up traceframe_info () override;
-};
-
-/* GDB saves trace buffers and other information (such as trace
-   status) got from the remote target into Common Trace Format (CTF).
-   The following types of information are expected to save in CTF:
-
-   1. The length (in bytes) of register cache.  Event "register" will
-   be defined in metadata, which includes the length.
-
-   2. Trace status.  Event "status" is defined in metadata, which
-   includes all aspects of trace status.
-
-   3. Uploaded trace variables.  Event "tsv_def" is defined in
-   metadata, which is about all aspects of a uploaded trace variable.
-   Uploaded tracepoints.   Event "tp_def" is defined in meta, which
-   is about all aspects of an uploaded tracepoint.  Note that the
-   "sequence" (a CTF type, which is a dynamically-sized array.) is
-   used for "actions" "step_actions" and "cmd_strings".
-
-   4. Trace frames.  Each trace frame is composed by several blocks
-   of different types ('R', 'M', 'V').  One trace frame is saved in
-   one CTF packet and the blocks of this frame are saved as events.
-   4.1: The trace frame related information (such as the number of
-   tracepoint associated with this frame) is saved in the packet
-   context.
-   4.2: The block 'M', 'R' and 'V' are saved in event "memory",
-   "register" and "tsv" respectively.
-   4.3: When iterating over events, babeltrace can't tell iterator
-   goes to a new packet, so we need a marker or anchor to tell GDB
-   that iterator goes into a new packet or frame.  We define event
-   "frame".  */
-
-#define CTF_MAGIC		0xC1FC1FC1
-#define CTF_SAVE_MAJOR		1
-#define CTF_SAVE_MINOR		8
-
-#define CTF_METADATA_NAME	"metadata"
-#define CTF_DATASTREAM_NAME	"datastream"
-
-/* Reserved event id.  */
-
-#define CTF_EVENT_ID_REGISTER 0
-#define CTF_EVENT_ID_TSV 1
-#define CTF_EVENT_ID_MEMORY 2
-#define CTF_EVENT_ID_FRAME 3
-#define CTF_EVENT_ID_STATUS 4
-#define CTF_EVENT_ID_TSV_DEF 5
-#define CTF_EVENT_ID_TP_DEF 6
-
-#define CTF_PID (2)
-
-/* The state kept while writing the CTF datastream file.  */
-
-struct trace_write_handler
-{
-  /* File descriptor of metadata.  */
-  FILE *metadata_fd;
-  /* File descriptor of traceframes.  */
-  FILE *datastream_fd;
-
-  /* This is the content size of the current packet.  */
-  size_t content_size;
-
-  /* This is the start offset of current packet.  */
-  long packet_start;
-};
-
-/* Write metadata in FORMAT.  */
-
-static void
-ctf_save_write_metadata (struct trace_write_handler *handler,
-			 const char *format, ...)
-  ATTRIBUTE_PRINTF (2, 3);
-
-static void
-ctf_save_write_metadata (struct trace_write_handler *handler,
-			 const char *format, ...)
-{
-  va_list args;
-
-  va_start (args, format);
-  if (vfprintf (handler->metadata_fd, format, args) < 0)
-    error (_("Unable to write metadata file (%s)"),
-	     safe_strerror (errno));
-  va_end (args);
-}
-
-/* Write BUF of length SIZE to datastream file represented by
-   HANDLER.  */
-
-static int
-ctf_save_write (struct trace_write_handler *handler,
-		const gdb_byte *buf, size_t size)
-{
-  if (fwrite (buf, size, 1, handler->datastream_fd) != 1)
-    error (_("Unable to write file for saving trace data (%s)"),
-	   safe_strerror (errno));
-
-  handler->content_size += size;
-
-  return 0;
-}
-
-/* Write a unsigned 32-bit integer to datastream file represented by
-   HANDLER.  */
-
-#define ctf_save_write_uint32(HANDLER, U32) \
-  ctf_save_write (HANDLER, (gdb_byte *) &U32, 4)
-
-/* Write a signed 32-bit integer to datastream file represented by
-   HANDLER.  */
-
-#define ctf_save_write_int32(HANDLER, INT32) \
-  ctf_save_write ((HANDLER), (gdb_byte *) &(INT32), 4)
-
-/* Set datastream file position.  Update HANDLER->content_size
-   if WHENCE is SEEK_CUR.  */
-
-static int
-ctf_save_fseek (struct trace_write_handler *handler, long offset,
-		int whence)
-{
-  gdb_assert (whence != SEEK_END);
-  gdb_assert (whence != SEEK_SET
-	      || offset <= handler->content_size + handler->packet_start);
-
-  if (fseek (handler->datastream_fd, offset, whence))
-    error (_("Unable to seek file for saving trace data (%s)"),
-	   safe_strerror (errno));
-
-  if (whence == SEEK_CUR)
-    handler->content_size += offset;
-
-  return 0;
-}
-
-/* Change the datastream file position to align on ALIGN_SIZE,
-   and write BUF to datastream file.  The size of BUF is SIZE.  */
-
-static int
-ctf_save_align_write (struct trace_write_handler *handler,
-		      const gdb_byte *buf,
-		      size_t size, size_t align_size)
-{
-  long offset
-    = (align_up (handler->content_size, align_size)
-       - handler->content_size);
-
-  if (ctf_save_fseek (handler, offset, SEEK_CUR))
-    return -1;
-
-  if (ctf_save_write (handler, buf, size))
-    return -1;
-
-  return 0;
-}
-
-/* Write events to next new packet.  */
-
-static void
-ctf_save_next_packet (struct trace_write_handler *handler)
-{
-  handler->packet_start += (handler->content_size + 4);
-  ctf_save_fseek (handler, handler->packet_start, SEEK_SET);
-  handler->content_size = 0;
-}
-
-/* Write the CTF metadata header.  */
-
-static void
-ctf_save_metadata_header (struct trace_write_handler *handler)
-{
-  ctf_save_write_metadata (handler, "/* CTF %d.%d */\n",
-			   CTF_SAVE_MAJOR, CTF_SAVE_MINOR);
-  ctf_save_write_metadata (handler,
-			   "typealias integer { size = 8; align = 8; "
-			   "signed = false; encoding = ascii;}"
-			   " := ascii;\n");
-  ctf_save_write_metadata (handler,
-			   "typealias integer { size = 8; align = 8; "
-			   "signed = false; }"
-			   " := uint8_t;\n");
-  ctf_save_write_metadata (handler,
-			   "typealias integer { size = 16; align = 16;"
-			   "signed = false; } := uint16_t;\n");
-  ctf_save_write_metadata (handler,
-			   "typealias integer { size = 32; align = 32;"
-			   "signed = false; } := uint32_t;\n");
-  ctf_save_write_metadata (handler,
-			   "typealias integer { size = 64; align = 64;"
-			   "signed = false; base = hex;}"
-			   " := uint64_t;\n");
-  ctf_save_write_metadata (handler,
-			   "typealias integer { size = 32; align = 32;"
-			   "signed = true; } := int32_t;\n");
-  ctf_save_write_metadata (handler,
-			   "typealias integer { size = 64; align = 64;"
-			   "signed = true; } := int64_t;\n");
-  ctf_save_write_metadata (handler,
-			   "typealias string { encoding = ascii;"
-			   " } := chars;\n");
-  ctf_save_write_metadata (handler, "\n");
-
-  /* Get the byte order of the host and write CTF data in this byte
-     order.  */
-#if WORDS_BIGENDIAN
-#define HOST_ENDIANNESS "be"
-#else
-#define HOST_ENDIANNESS "le"
-#endif
-
-  ctf_save_write_metadata (handler,
-			   "\ntrace {\n"
-			   "	major = %u;\n"
-			   "	minor = %u;\n"
-			   "	byte_order = %s;\n"
-			   "	packet.header := struct {\n"
-			   "		uint32_t magic;\n"
-			   "	};\n"
-			   "};\n"
-			   "\n"
-			   "stream {\n"
-			   "	packet.context := struct {\n"
-			   "		uint32_t content_size;\n"
-			   "		uint32_t packet_size;\n"
-			   "		uint16_t tpnum;\n"
-			   "	};\n"
-			   "	event.header := struct {\n"
-			   "		uint32_t id;\n"
-			   "	};\n"
-			   "};\n",
-			   CTF_SAVE_MAJOR, CTF_SAVE_MINOR,
-			   HOST_ENDIANNESS);
-  ctf_save_write_metadata (handler, "\n");
-}
-
-/* CTF trace writer.  */
-
-struct ctf_trace_file_writer
-{
-  struct trace_file_writer base;
-
-  /* States related to writing CTF trace file.  */
-  struct trace_write_handler tcs;
-};
-
-/* This is the implementation of trace_file_write_ops method
-   dtor.  */
-
-static void
-ctf_dtor (struct trace_file_writer *self)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-
-  if (writer->tcs.metadata_fd != NULL)
-    fclose (writer->tcs.metadata_fd);
-
-  if (writer->tcs.datastream_fd != NULL)
-    fclose (writer->tcs.datastream_fd);
-
-}
-
-/* This is the implementation of trace_file_write_ops method
-   target_save.  */
-
-static int
-ctf_target_save (struct trace_file_writer *self,
-		 const char *dirname)
-{
-  /* Don't support save trace file to CTF format in the target.  */
-  return 0;
-}
-
-/* This is the implementation of trace_file_write_ops method
-   start.  It creates the directory DIRNAME, metadata and datastream
-   in the directory.  */
-
-static void
-ctf_start (struct trace_file_writer *self, const char *dirname)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-  mode_t hmode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH;
-
-  /* Create DIRNAME.  */
-  if (mkdir (dirname, hmode) && errno != EEXIST)
-    error (_("Unable to open directory '%s' for saving trace data (%s)"),
-	   dirname, safe_strerror (errno));
-
-  memset (&writer->tcs, '\0', sizeof (writer->tcs));
-
-  std::string file_name = string_printf ("%s/%s", dirname, CTF_METADATA_NAME);
-
-  writer->tcs.metadata_fd
-    = gdb_fopen_cloexec (file_name.c_str (), "w").release ();
-  if (writer->tcs.metadata_fd == NULL)
-    error (_("Unable to open file '%s' for saving trace data (%s)"),
-	   file_name.c_str (), safe_strerror (errno));
-
-  ctf_save_metadata_header (&writer->tcs);
-
-  file_name = string_printf ("%s/%s", dirname, CTF_DATASTREAM_NAME);
-  writer->tcs.datastream_fd
-    = gdb_fopen_cloexec (file_name.c_str (), "w").release ();
-  if (writer->tcs.datastream_fd == NULL)
-    error (_("Unable to open file '%s' for saving trace data (%s)"),
-	   file_name.c_str (), safe_strerror (errno));
-}
-
-/* This is the implementation of trace_file_write_ops method
-   write_header.  Write the types of events on trace variable and
-   frame.  */
-
-static void
-ctf_write_header (struct trace_file_writer *self)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-
-
-  ctf_save_write_metadata (&writer->tcs, "\n");
-  ctf_save_write_metadata (&writer->tcs,
-			   "event {\n\tname = \"memory\";\n\tid = %u;\n"
-			   "\tfields := struct { \n"
-			   "\t\tuint64_t address;\n"
-			   "\t\tuint16_t length;\n"
-			   "\t\tuint8_t contents[length];\n"
-			   "\t};\n"
-			   "};\n", CTF_EVENT_ID_MEMORY);
-
-  ctf_save_write_metadata (&writer->tcs, "\n");
-  ctf_save_write_metadata (&writer->tcs,
-			   "event {\n\tname = \"tsv\";\n\tid = %u;\n"
-			   "\tfields := struct { \n"
-			   "\t\tuint64_t val;\n"
-			   "\t\tuint32_t num;\n"
-			   "\t};\n"
-			   "};\n", CTF_EVENT_ID_TSV);
-
-  ctf_save_write_metadata (&writer->tcs, "\n");
-  ctf_save_write_metadata (&writer->tcs,
-			   "event {\n\tname = \"frame\";\n\tid = %u;\n"
-			   "\tfields := struct { \n"
-			   "\t};\n"
-			   "};\n", CTF_EVENT_ID_FRAME);
-
-  ctf_save_write_metadata (&writer->tcs, "\n");
-  ctf_save_write_metadata (&writer->tcs,
-			  "event {\n\tname = \"tsv_def\";\n"
-			  "\tid = %u;\n\tfields := struct { \n"
-			  "\t\tint64_t initial_value;\n"
-			  "\t\tint32_t number;\n"
-			  "\t\tint32_t builtin;\n"
-			  "\t\tchars name;\n"
-			  "\t};\n"
-			  "};\n", CTF_EVENT_ID_TSV_DEF);
-
-  ctf_save_write_metadata (&writer->tcs, "\n");
-  ctf_save_write_metadata (&writer->tcs,
-			   "event {\n\tname = \"tp_def\";\n"
-			   "\tid = %u;\n\tfields := struct { \n"
-			   "\t\tuint64_t addr;\n"
-			   "\t\tuint64_t traceframe_usage;\n"
-			   "\t\tint32_t number;\n"
-			   "\t\tint32_t enabled;\n"
-			   "\t\tint32_t step;\n"
-			   "\t\tint32_t pass;\n"
-			   "\t\tint32_t hit_count;\n"
-			   "\t\tint32_t type;\n"
-			   "\t\tchars cond;\n"
-
-			  "\t\tuint32_t action_num;\n"
-			  "\t\tchars actions[action_num];\n"
-
-			  "\t\tuint32_t step_action_num;\n"
-			  "\t\tchars step_actions[step_action_num];\n"
-
-			  "\t\tchars at_string;\n"
-			  "\t\tchars cond_string;\n"
-
-			  "\t\tuint32_t cmd_num;\n"
-			  "\t\tchars cmd_strings[cmd_num];\n"
-			  "\t};\n"
-			  "};\n", CTF_EVENT_ID_TP_DEF);
-
-  gdb_assert (writer->tcs.content_size == 0);
-  gdb_assert (writer->tcs.packet_start == 0);
-
-  /* Create a new packet to contain this event.  */
-  self->ops->frame_ops->start (self, 0);
-}
-
-/* This is the implementation of trace_file_write_ops method
-   write_regblock_type.  Write the type of register event in
-   metadata.  */
-
-static void
-ctf_write_regblock_type (struct trace_file_writer *self, int size)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-
-  ctf_save_write_metadata (&writer->tcs, "\n");
-
-  ctf_save_write_metadata (&writer->tcs,
-			   "event {\n\tname = \"register\";\n\tid = %u;\n"
-			   "\tfields := struct { \n"
-			   "\t\tascii contents[%d];\n"
-			   "\t};\n"
-			   "};\n",
-			   CTF_EVENT_ID_REGISTER, size);
-}
-
-/* This is the implementation of trace_file_write_ops method
-   write_status.  */
-
-static void
-ctf_write_status (struct trace_file_writer *self,
-		  struct trace_status *ts)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-  uint32_t id;
-
-  ctf_save_write_metadata (&writer->tcs, "\n");
-  ctf_save_write_metadata (&writer->tcs,
-			   "event {\n\tname = \"status\";\n\tid = %u;\n"
-			   "\tfields := struct { \n"
-			   "\t\tint32_t stop_reason;\n"
-			   "\t\tint32_t stopping_tracepoint;\n"
-			   "\t\tint32_t traceframe_count;\n"
-			   "\t\tint32_t traceframes_created;\n"
-			   "\t\tint32_t buffer_free;\n"
-			   "\t\tint32_t buffer_size;\n"
-			   "\t\tint32_t disconnected_tracing;\n"
-			   "\t\tint32_t circular_buffer;\n"
-			   "\t};\n"
-			   "};\n",
-			   CTF_EVENT_ID_STATUS);
-
-  id = CTF_EVENT_ID_STATUS;
-  /* Event Id.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &id, 4, 4);
-
-  ctf_save_write_int32 (&writer->tcs, ts->stop_reason);
-  ctf_save_write_int32 (&writer->tcs, ts->stopping_tracepoint);
-  ctf_save_write_int32 (&writer->tcs, ts->traceframe_count);
-  ctf_save_write_int32 (&writer->tcs, ts->traceframes_created);
-  ctf_save_write_int32 (&writer->tcs, ts->buffer_free);
-  ctf_save_write_int32 (&writer->tcs, ts->buffer_size);
-  ctf_save_write_int32 (&writer->tcs, ts->disconnected_tracing);
-  ctf_save_write_int32 (&writer->tcs, ts->circular_buffer);
-}
-
-/* This is the implementation of trace_file_write_ops method
-   write_uploaded_tsv.  */
-
-static void
-ctf_write_uploaded_tsv (struct trace_file_writer *self,
-			struct uploaded_tsv *tsv)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-  int32_t int32;
-  int64_t int64;
-  const gdb_byte zero = 0;
-
-  /* Event Id.  */
-  int32 = CTF_EVENT_ID_TSV_DEF;
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int32, 4, 4);
-
-  /* initial_value */
-  int64 = tsv->initial_value;
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int64, 8, 8);
-
-  /* number */
-  ctf_save_write_int32 (&writer->tcs, tsv->number);
-
-  /* builtin */
-  ctf_save_write_int32 (&writer->tcs, tsv->builtin);
-
-  /* name */
-  if (tsv->name != NULL)
-    ctf_save_write (&writer->tcs, (gdb_byte *) tsv->name,
-		    strlen (tsv->name));
-  ctf_save_write (&writer->tcs, &zero, 1);
-}
-
-/* This is the implementation of trace_file_write_ops method
-   write_uploaded_tp.  */
-
-static void
-ctf_write_uploaded_tp (struct trace_file_writer *self,
-		       struct uploaded_tp *tp)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-  int32_t int32;
-  int64_t int64;
-  uint32_t u32;
-  const gdb_byte zero = 0;
-
-  /* Event Id.  */
-  int32 = CTF_EVENT_ID_TP_DEF;
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int32, 4, 4);
-
-  /* address */
-  int64 = tp->addr;
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int64, 8, 8);
-
-  /* traceframe_usage */
-  int64 = tp->traceframe_usage;
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int64, 8, 8);
-
-  /* number */
-  ctf_save_write_int32 (&writer->tcs, tp->number);
-
-  /* enabled */
-  ctf_save_write_int32 (&writer->tcs, tp->enabled);
-
-  /* step */
-  ctf_save_write_int32 (&writer->tcs, tp->step);
-
-  /* pass */
-  ctf_save_write_int32 (&writer->tcs, tp->pass);
-
-  /* hit_count */
-  ctf_save_write_int32 (&writer->tcs, tp->hit_count);
-
-  /* type */
-  ctf_save_write_int32 (&writer->tcs, tp->type);
-
-  /* condition  */
-  if (tp->cond != NULL)
-    ctf_save_write (&writer->tcs, (gdb_byte *) tp->cond.get (),
-		    strlen (tp->cond.get ()));
-  ctf_save_write (&writer->tcs, &zero, 1);
-
-  /* actions */
-  u32 = tp->actions.size ();
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4);
-  for (const auto &act : tp->actions)
-    ctf_save_write (&writer->tcs, (gdb_byte *) act.get (),
-		    strlen (act.get ()) + 1);
-
-  /* step_actions */
-  u32 = tp->step_actions.size ();
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4);
-  for (const auto &act : tp->step_actions)
-    ctf_save_write (&writer->tcs, (gdb_byte *) act.get (),
-		    strlen (act.get ()) + 1);
-
-  /* at_string */
-  if (tp->at_string != NULL)
-    ctf_save_write (&writer->tcs, (gdb_byte *) tp->at_string.get (),
-		    strlen (tp->at_string.get ()));
-  ctf_save_write (&writer->tcs, &zero, 1);
-
-  /* cond_string */
-  if (tp->cond_string != NULL)
-    ctf_save_write (&writer->tcs, (gdb_byte *) tp->cond_string.get (),
-		    strlen (tp->cond_string.get ()));
-  ctf_save_write (&writer->tcs, &zero, 1);
-
-  /* cmd_strings */
-  u32 = tp->cmd_strings.size ();
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4);
-  for (const auto &act : tp->cmd_strings)
-    ctf_save_write (&writer->tcs, (gdb_byte *) act.get (),
-		    strlen (act.get ()) + 1);
-
-}
-
-/* This is the implementation of trace_file_write_ops method
-   write_tdesc.  */
-
-static void
-ctf_write_tdesc (struct trace_file_writer *self)
-{
-  /* Nothing so far. */
-}
-
-/* This is the implementation of trace_file_write_ops method
-   write_definition_end.  */
-
-static void
-ctf_write_definition_end (struct trace_file_writer *self)
-{
-  self->ops->frame_ops->end (self);
-}
-
-/* This is the implementation of trace_file_write_ops method
-   end.  */
-
-static void
-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);
-}
-
-/* This is the implementation of trace_frame_write_ops method
-   start.  */
-
-static void
-ctf_write_frame_start (struct trace_file_writer *self, uint16_t tpnum)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-  uint32_t id = CTF_EVENT_ID_FRAME;
-  uint32_t u32;
-
-  /* Step 1: Write packet context.  */
-  /* magic.  */
-  u32 = CTF_MAGIC;
-  ctf_save_write_uint32 (&writer->tcs, u32);
-  /* content_size and packet_size..  We still don't know the value,
-     write it later.  */
-  ctf_save_fseek (&writer->tcs, 4, SEEK_CUR);
-  ctf_save_fseek (&writer->tcs, 4, SEEK_CUR);
-  /* Tracepoint number.  */
-  ctf_save_write (&writer->tcs, (gdb_byte *) &tpnum, 2);
-
-  /* Step 2: Write event "frame".  */
-  /* Event Id.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &id, 4, 4);
-}
-
-/* This is the implementation of trace_frame_write_ops method
-   write_r_block.  */
-
-static void
-ctf_write_frame_r_block (struct trace_file_writer *self,
-			 gdb_byte *buf, int32_t size)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-  uint32_t id = CTF_EVENT_ID_REGISTER;
-
-  /* Event Id.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &id, 4, 4);
-
-  /* array contents.  */
-  ctf_save_align_write (&writer->tcs, buf, size, 1);
-}
-
-/* This is the implementation of trace_frame_write_ops method
-   write_m_block_header.  */
-
-static void
-ctf_write_frame_m_block_header (struct trace_file_writer *self,
-				uint64_t addr, uint16_t length)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-  uint32_t event_id = CTF_EVENT_ID_MEMORY;
-
-  /* Event Id.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &event_id, 4, 4);
-
-  /* Address.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &addr, 8, 8);
-
-  /* Length.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &length, 2, 2);
-}
-
-/* This is the implementation of trace_frame_write_ops method
-   write_m_block_memory.  */
-
-static void
-ctf_write_frame_m_block_memory (struct trace_file_writer *self,
-				gdb_byte *buf, uint16_t length)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-
-  /* Contents.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) buf, length, 1);
-}
-
-/* This is the implementation of trace_frame_write_ops method
-   write_v_block.  */
-
-static void
-ctf_write_frame_v_block (struct trace_file_writer *self,
-			 int32_t num, uint64_t val)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-  uint32_t id = CTF_EVENT_ID_TSV;
-
-  /* Event Id.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &id, 4, 4);
-
-  /* val.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &val, 8, 8);
-  /* num.  */
-  ctf_save_align_write (&writer->tcs, (gdb_byte *) &num, 4, 4);
-}
-
-/* This is the implementation of trace_frame_write_ops method
-   end.  */
-
-static void
-ctf_write_frame_end (struct trace_file_writer *self)
-{
-  struct ctf_trace_file_writer *writer
-    = (struct ctf_trace_file_writer *) self;
-  uint32_t u32;
-  uint32_t t;
-
-  /* Write the content size to packet header.  */
-  ctf_save_fseek (&writer->tcs, writer->tcs.packet_start + 4,
-		  SEEK_SET);
-  u32 = writer->tcs.content_size * TARGET_CHAR_BIT;
-
-  t = writer->tcs.content_size;
-  ctf_save_write_uint32 (&writer->tcs, u32);
-
-  /* Write the packet size.  */
-  u32 += 4 * TARGET_CHAR_BIT;
-  ctf_save_write_uint32 (&writer->tcs, u32);
-
-  writer->tcs.content_size = t;
-
-  /* Write zero at the end of the packet.  */
-  ctf_save_fseek (&writer->tcs, writer->tcs.packet_start + t,
-		  SEEK_SET);
-  u32 = 0;
-  ctf_save_write_uint32 (&writer->tcs, u32);
-  writer->tcs.content_size = t;
-
-  ctf_save_next_packet (&writer->tcs);
-}
-
-/* Operations to write various types of trace frames into CTF
-   format.  */
-
-static const struct trace_frame_write_ops ctf_write_frame_ops =
-{
-  ctf_write_frame_start,
-  ctf_write_frame_r_block,
-  ctf_write_frame_m_block_header,
-  ctf_write_frame_m_block_memory,
-  ctf_write_frame_v_block,
-  ctf_write_frame_end,
-};
-
-/* Operations to write trace buffers into CTF format.  */
-
-static const struct trace_file_write_ops ctf_write_ops =
-{
-  ctf_dtor,
-  ctf_target_save,
-  ctf_start,
-  ctf_write_header,
-  ctf_write_regblock_type,
-  ctf_write_status,
-  ctf_write_uploaded_tsv,
-  ctf_write_uploaded_tp,
-  ctf_write_tdesc,
-  ctf_write_definition_end,
-  NULL,
-  &ctf_write_frame_ops,
-  ctf_end,
-};
-
-/* Return a trace writer for CTF format.  */
-
-struct trace_file_writer *
-ctf_trace_file_writer_new (void)
-{
-  struct ctf_trace_file_writer *writer = XNEW (struct ctf_trace_file_writer);
-
-  writer->base.ops = &ctf_write_ops;
-
-  return (struct trace_file_writer *) writer;
-}
-
-#if HAVE_LIBBABELTRACE
-/* Use libbabeltrace to read CTF data.  The libbabeltrace provides
-   iterator to iterate over each event in CTF data and APIs to get
-   details of event and packet, so it is very convenient to use
-   libbabeltrace to access events in CTF.  */
-
-#include <babeltrace/babeltrace.h>
-#include <babeltrace/ctf/events.h>
-#include <babeltrace/ctf/iterator.h>
-
-/* The struct pointer for current CTF directory.  */
-static int handle_id = -1;
-static struct bt_context *ctx = NULL;
-static struct bt_ctf_iter *ctf_iter = NULL;
-/* The position of the first packet containing trace frame.  */
-static struct bt_iter_pos *start_pos;
-
-/* The name of CTF directory.  */
-static char *trace_dirname;
-
-static ctf_target ctf_ops;
-
-/* Destroy ctf iterator and context.  */
-
-static void
-ctf_destroy (void)
-{
-  if (ctf_iter != NULL)
-    {
-      bt_ctf_iter_destroy (ctf_iter);
-      ctf_iter = NULL;
-    }
-  if (ctx != NULL)
-    {
-      bt_context_put (ctx);
-      ctx = NULL;
-    }
-}
-
-/* Open CTF trace data in DIRNAME.  */
-
-static void
-ctf_open_dir (const char *dirname)
-{
-  struct bt_iter_pos begin_pos;
-  unsigned int count, i;
-  struct bt_ctf_event_decl * const *list;
-
-  ctx = bt_context_create ();
-  if (ctx == NULL)
-    error (_("Unable to create bt_context"));
-  handle_id = bt_context_add_trace (ctx, dirname, "ctf", NULL, NULL, NULL);
-  if (handle_id < 0)
-    {
-      ctf_destroy ();
-      error (_("Unable to use libbabeltrace on directory \"%s\""),
-	     dirname);
-    }
-
-  begin_pos.type = BT_SEEK_BEGIN;
-  ctf_iter = bt_ctf_iter_create (ctx, &begin_pos, NULL);
-  if (ctf_iter == NULL)
-    {
-      ctf_destroy ();
-      error (_("Unable to create bt_iterator"));
-    }
-
-  /* Look for the declaration of register block.  Get the length of
-     array "contents" to set trace_regblock_size.  */
-
-  bt_ctf_get_event_decl_list (handle_id, ctx, &list, &count);
-  for (i = 0; i < count; i++)
-    if (strcmp ("register", bt_ctf_get_decl_event_name (list[i])) == 0)
-      {
-	const struct bt_ctf_field_decl * const *field_list;
-	const struct bt_declaration *decl;
-
-	bt_ctf_get_decl_fields (list[i], BT_EVENT_FIELDS, &field_list,
-				&count);
-
-	gdb_assert (count == 1);
-	gdb_assert (0 == strcmp ("contents",
-				 bt_ctf_get_decl_field_name (field_list[0])));
-	decl = bt_ctf_get_decl_from_field_decl (field_list[0]);
-	trace_regblock_size = bt_ctf_get_array_len (decl);
-
-	break;
-      }
-}
-
-#define SET_INT32_FIELD(EVENT, SCOPE, VAR, FIELD)			\
-  (VAR)->FIELD = (int) bt_ctf_get_int64 (bt_ctf_get_field ((EVENT),	\
-							   (SCOPE),	\
-							   #FIELD))
-
-#define SET_ENUM_FIELD(EVENT, SCOPE, VAR, TYPE, FIELD)			\
-  (VAR)->FIELD = (TYPE) bt_ctf_get_int64 (bt_ctf_get_field ((EVENT),	\
-							    (SCOPE),	\
-							    #FIELD))
-
-
-/* EVENT is the "status" event and TS is filled in.  */
-
-static void
-ctf_read_status (struct bt_ctf_event *event, struct trace_status *ts)
-{
-  const struct bt_definition *scope
-    = bt_ctf_get_top_level_scope (event, BT_EVENT_FIELDS);
-
-  SET_ENUM_FIELD (event, scope, ts, enum trace_stop_reason, stop_reason);
-  SET_INT32_FIELD (event, scope, ts, stopping_tracepoint);
-  SET_INT32_FIELD (event, scope, ts, traceframe_count);
-  SET_INT32_FIELD (event, scope, ts, traceframes_created);
-  SET_INT32_FIELD (event, scope, ts, buffer_free);
-  SET_INT32_FIELD (event, scope, ts, buffer_size);
-  SET_INT32_FIELD (event, scope, ts, disconnected_tracing);
-  SET_INT32_FIELD (event, scope, ts, circular_buffer);
-
-  bt_iter_next (bt_ctf_get_iter (ctf_iter));
-}
-
-/* Read the events "tsv_def" one by one, extract its contents and fill
-   in the list UPLOADED_TSVS.  */
-
-static void
-ctf_read_tsv (struct uploaded_tsv **uploaded_tsvs)
-{
-  gdb_assert (ctf_iter != NULL);
-
-  while (1)
-    {
-      struct bt_ctf_event *event;
-      const struct bt_definition *scope;
-      const struct bt_definition *def;
-      uint32_t event_id;
-      struct uploaded_tsv *utsv = NULL;
-
-      event = bt_ctf_iter_read_event (ctf_iter);
-      scope = bt_ctf_get_top_level_scope (event,
-					  BT_STREAM_EVENT_HEADER);
-      event_id = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope,
-						      "id"));
-      if (event_id != CTF_EVENT_ID_TSV_DEF)
-	break;
-
-      scope = bt_ctf_get_top_level_scope (event,
-					  BT_EVENT_FIELDS);
-
-      def = bt_ctf_get_field (event, scope, "number");
-      utsv = get_uploaded_tsv ((int32_t) bt_ctf_get_int64 (def),
-			       uploaded_tsvs);
-
-      def = bt_ctf_get_field (event, scope, "builtin");
-      utsv->builtin = (int32_t) bt_ctf_get_int64 (def);
-      def = bt_ctf_get_field (event, scope, "initial_value");
-      utsv->initial_value = bt_ctf_get_int64 (def);
-
-      def = bt_ctf_get_field (event, scope, "name");
-      utsv->name =  xstrdup (bt_ctf_get_string (def));
-
-      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
-	break;
-    }
-
-}
-
-/* Read the value of element whose index is NUM from CTF and write it
-   to the corresponding VAR->ARRAY. */
-
-#define SET_ARRAY_FIELD(EVENT, SCOPE, VAR, NUM, ARRAY)	\
-  do							\
-    {							\
-      uint32_t lu32, i;						\
-      const struct bt_definition *def;				\
-								\
-      lu32 = (uint32_t) bt_ctf_get_uint64 (bt_ctf_get_field ((EVENT),	\
-							     (SCOPE),	\
-							     #NUM));	\
-      def = bt_ctf_get_field ((EVENT), (SCOPE), #ARRAY);		\
-      for (i = 0; i < lu32; i++)					\
-	{								\
-	  const struct bt_definition *element				\
-	    = bt_ctf_get_index ((EVENT), def, i);			\
-									\
-	  (VAR)->ARRAY.emplace_back					\
-	    (xstrdup (bt_ctf_get_string (element)));			\
-	}								\
-    }									\
-  while (0)
-
-/* Read a string from CTF and set VAR->FIELD. If the length of string
-   is zero, set VAR->FIELD to NULL.  */
-
-#define SET_STRING_FIELD(EVENT, SCOPE, VAR, FIELD)			\
-  do									\
-    {									\
-      const char *p = bt_ctf_get_string (bt_ctf_get_field ((EVENT),	\
-							   (SCOPE),	\
-							   #FIELD));	\
-									\
-      if (strlen (p) > 0)						\
-	(VAR)->FIELD.reset (xstrdup (p));				\
-      else								\
-	(VAR)->FIELD = NULL;						\
-    }									\
-  while (0)
-
-/* Read the events "tp_def" one by one, extract its contents and fill
-   in the list UPLOADED_TPS.  */
-
-static void
-ctf_read_tp (struct uploaded_tp **uploaded_tps)
-{
-  gdb_assert (ctf_iter != NULL);
-
-  while (1)
-    {
-      struct bt_ctf_event *event;
-      const struct bt_definition *scope;
-      uint32_t u32;
-      int32_t int32;
-      uint64_t u64;
-      struct uploaded_tp *utp = NULL;
-
-      event = bt_ctf_iter_read_event (ctf_iter);
-      scope = bt_ctf_get_top_level_scope (event,
-					  BT_STREAM_EVENT_HEADER);
-      u32 = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope,
-						 "id"));
-      if (u32 != CTF_EVENT_ID_TP_DEF)
-	break;
-
-      scope = bt_ctf_get_top_level_scope (event,
-					  BT_EVENT_FIELDS);
-      int32 = (int32_t) bt_ctf_get_int64 (bt_ctf_get_field (event,
-							    scope,
-							    "number"));
-      u64 = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope,
-						 "addr"));
-      utp = get_uploaded_tp (int32, u64,  uploaded_tps);
-
-      SET_INT32_FIELD (event, scope, utp, enabled);
-      SET_INT32_FIELD (event, scope, utp, step);
-      SET_INT32_FIELD (event, scope, utp, pass);
-      SET_INT32_FIELD (event, scope, utp, hit_count);
-      SET_ENUM_FIELD (event, scope, utp, enum bptype, type);
-
-      /* Read 'cmd_strings'.  */
-      SET_ARRAY_FIELD (event, scope, utp, cmd_num, cmd_strings);
-      /* Read 'actions'.  */
-      SET_ARRAY_FIELD (event, scope, utp, action_num, actions);
-      /* Read 'step_actions'.  */
-      SET_ARRAY_FIELD (event, scope, utp, step_action_num,
-		       step_actions);
-
-      SET_STRING_FIELD(event, scope, utp, at_string);
-      SET_STRING_FIELD(event, scope, utp, cond_string);
-
-      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
-	break;
-    }
-}
-
-/* This is the implementation of target_ops method to_open.  Open CTF
-   trace data, read trace status, trace state variables and tracepoint
-   definitions from the first packet.  Set the start position at the
-   second packet which contains events on trace blocks.  */
-
-static void
-ctf_target_open (const char *dirname, int from_tty)
-{
-  struct bt_ctf_event *event;
-  uint32_t event_id;
-  const struct bt_definition *scope;
-  struct uploaded_tsv *uploaded_tsvs = NULL;
-  struct uploaded_tp *uploaded_tps = NULL;
-
-  if (!dirname)
-    error (_("No CTF directory specified."));
-
-  ctf_open_dir (dirname);
-
-  target_preopen (from_tty);
-
-  /* Skip the first packet which about the trace status.  The first
-     event is "frame".  */
-  event = bt_ctf_iter_read_event (ctf_iter);
-  scope = bt_ctf_get_top_level_scope (event, BT_STREAM_EVENT_HEADER);
-  event_id = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
-  if (event_id != CTF_EVENT_ID_FRAME)
-    error (_("Wrong event id of the first event"));
-  /* The second event is "status".  */
-  bt_iter_next (bt_ctf_get_iter (ctf_iter));
-  event = bt_ctf_iter_read_event (ctf_iter);
-  scope = bt_ctf_get_top_level_scope (event, BT_STREAM_EVENT_HEADER);
-  event_id = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
-  if (event_id != CTF_EVENT_ID_STATUS)
-    error (_("Wrong event id of the second event"));
-  ctf_read_status (event, current_trace_status ());
-
-  ctf_read_tsv (&uploaded_tsvs);
-
-  ctf_read_tp (&uploaded_tps);
-
-  event = bt_ctf_iter_read_event (ctf_iter);
-  /* EVENT can be NULL if we've already gone to the end of stream of
-     events.  */
-  if (event != NULL)
-    {
-      scope = bt_ctf_get_top_level_scope (event,
-					  BT_STREAM_EVENT_HEADER);
-      event_id = bt_ctf_get_uint64 (bt_ctf_get_field (event,
-						      scope, "id"));
-      if (event_id != CTF_EVENT_ID_FRAME)
-	error (_("Wrong event id of the first event of the second packet"));
-    }
-
-  start_pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
-  gdb_assert (start_pos->type == BT_SEEK_RESTORE);
-
-  trace_dirname = xstrdup (dirname);
-  push_target (&ctf_ops);
-
-  inferior_appeared (current_inferior (), CTF_PID);
-  inferior_ptid = ptid_t (CTF_PID);
-  add_thread_silent (inferior_ptid);
-
-  merge_uploaded_trace_state_variables (&uploaded_tsvs);
-  merge_uploaded_tracepoints (&uploaded_tps);
-
-  post_create_inferior (&ctf_ops, from_tty);
-}
-
-/* This is the implementation of target_ops method to_close.  Destroy
-   CTF iterator and context.  */
-
-void
-ctf_target::close ()
-{
-  ctf_destroy ();
-  xfree (trace_dirname);
-  trace_dirname = NULL;
-
-  inferior_ptid = null_ptid;	/* Avoid confusion from thread stuff.  */
-  exit_inferior_silent (current_inferior ());
-
-  trace_reset_local_state ();
-}
-
-/* This is the implementation of target_ops method to_files_info.
-   Print the directory name of CTF trace data.  */
-
-void
-ctf_target::files_info ()
-{
-  printf_filtered ("\t`%s'\n", trace_dirname);
-}
-
-/* This is the implementation of target_ops method to_fetch_registers.
-   Iterate over events whose name is "register" in current frame,
-   extract contents from events, and set REGCACHE with the contents.
-   If no matched events are found, mark registers unavailable.  */
-
-void
-ctf_target::fetch_registers (struct regcache *regcache, int regno)
-{
-  struct gdbarch *gdbarch = regcache->arch ();
-  struct bt_ctf_event *event = NULL;
-  struct bt_iter_pos *pos;
-
-  /* An uninitialized reg size says we're not going to be
-     successful at getting register blocks.  */
-  if (trace_regblock_size == 0)
-    return;
-
-  gdb_assert (ctf_iter != NULL);
-  /* Save the current position.  */
-  pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
-  gdb_assert (pos->type == BT_SEEK_RESTORE);
-
-  while (1)
-    {
-      const char *name;
-      struct bt_ctf_event *event1;
-
-      event1 = bt_ctf_iter_read_event (ctf_iter);
-
-      name = bt_ctf_event_name (event1);
-
-      if (name == NULL || strcmp (name, "frame") == 0)
-	break;
-      else if (strcmp (name, "register") == 0)
-	{
-	  event = event1;
-	  break;
-	}
-
-      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
-	break;
-    }
-
-  /* Restore the position.  */
-  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
-
-  if (event != NULL)
-    {
-      int offset, regsize, regn;
-      const struct bt_definition *scope
-	= bt_ctf_get_top_level_scope (event,
-				      BT_EVENT_FIELDS);
-      const struct bt_definition *array
-	= bt_ctf_get_field (event, scope, "contents");
-      gdb_byte *regs = (gdb_byte *) bt_ctf_get_char_array (array);
-
-      /* Assume the block is laid out in GDB register number order,
-	 each register with the size that it has in GDB.  */
-      offset = 0;
-      for (regn = 0; regn < gdbarch_num_regs (gdbarch); regn++)
-	{
-	  regsize = register_size (gdbarch, regn);
-	  /* Make sure we stay within block bounds.  */
-	  if (offset + regsize >= trace_regblock_size)
-	    break;
-	  if (regcache->get_register_status (regn) == REG_UNKNOWN)
-	    {
-	      if (regno == regn)
-		{
-		  regcache->raw_supply (regno, regs + offset);
-		  break;
-		}
-	      else if (regno == -1)
-		{
-		  regcache->raw_supply (regn, regs + offset);
-		}
-	    }
-	  offset += regsize;
-	}
-    }
-  else
-    tracefile_fetch_registers (regcache, regno);
-}
-
-/* This is the implementation of target_ops method to_xfer_partial.
-   Iterate over events whose name is "memory" in
-   current frame, extract the address and length from events.  If
-   OFFSET is within the range, read the contents from events to
-   READBUF.  */
-
-enum target_xfer_status
-ctf_target::xfer_partial (enum target_object object,
-			  const char *annex, gdb_byte *readbuf,
-			  const gdb_byte *writebuf, ULONGEST offset,
-			  ULONGEST len, ULONGEST *xfered_len)
-{
-  /* We're only doing regular memory for now.  */
-  if (object != TARGET_OBJECT_MEMORY)
-    return TARGET_XFER_E_IO;
-
-  if (readbuf == NULL)
-    error (_("ctf_xfer_partial: trace file is read-only"));
-
-  if (get_traceframe_number () != -1)
-    {
-      struct bt_iter_pos *pos;
-      enum target_xfer_status res;
-      /* Records the lowest available address of all blocks that
-	 intersects the requested range.  */
-      ULONGEST low_addr_available = 0;
-
-      gdb_assert (ctf_iter != NULL);
-      /* Save the current position.  */
-      pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
-      gdb_assert (pos->type == BT_SEEK_RESTORE);
-
-      /* Iterate through the traceframe's blocks, looking for
-	 memory.  */
-      while (1)
-	{
-	  ULONGEST amt;
-	  uint64_t maddr;
-	  uint16_t mlen;
-	  const struct bt_definition *scope;
-	  const struct bt_definition *def;
-	  struct bt_ctf_event *event
-	    = bt_ctf_iter_read_event (ctf_iter);
-	  const char *name = bt_ctf_event_name (event);
-
-	  if (name == NULL || strcmp (name, "frame") == 0)
-	    break;
-	  else if (strcmp (name, "memory") != 0)
-	    {
-	      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
-		break;
-
-	      continue;
-	    }
-
-	  scope = bt_ctf_get_top_level_scope (event,
-					      BT_EVENT_FIELDS);
-
-	  def = bt_ctf_get_field (event, scope, "address");
-	  maddr = bt_ctf_get_uint64 (def);
-	  def = bt_ctf_get_field (event, scope, "length");
-	  mlen = (uint16_t) bt_ctf_get_uint64 (def);
-
-	  /* If the block includes the first part of the desired
-	     range, return as much it has; GDB will re-request the
-	     remainder, which might be in a different block of this
-	     trace frame.  */
-	  if (maddr <= offset && offset < (maddr + mlen))
-	    {
-	      const struct bt_definition *array
-		= bt_ctf_get_field (event, scope, "contents");
-	      gdb_byte *contents;
-	      int k;
-
-	      contents = (gdb_byte *) xmalloc (mlen);
-
-	      for (k = 0; k < mlen; k++)
-		{
-		  const struct bt_definition *element
-		    = bt_ctf_get_index (event, array, k);
-
-		  contents[k] = (gdb_byte) bt_ctf_get_uint64 (element);
-		}
-
-	      amt = (maddr + mlen) - offset;
-	      if (amt > len)
-		amt = len;
-
-	      memcpy (readbuf, &contents[offset - maddr], amt);
-
-	      xfree (contents);
-
-	      /* Restore the position.  */
-	      bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
-
-	      if (amt == 0)
-		return TARGET_XFER_EOF;
-	      else
-		{
-		  *xfered_len = amt;
-		  return TARGET_XFER_OK;
-		}
-	    }
-
-	  if (offset < maddr && maddr < (offset + len))
-	    if (low_addr_available == 0 || low_addr_available > maddr)
-	      low_addr_available = maddr;
-
-	  if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
-	    break;
-	}
-
-      /* Restore the position.  */
-      bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
-
-      /* Requested memory is unavailable in the context of traceframes,
-	 and this address falls within a read-only section, fallback
-	 to reading from executable, up to LOW_ADDR_AVAILABLE  */
-      if (offset < low_addr_available)
-	len = std::min (len, low_addr_available - offset);
-      res = exec_read_partial_read_only (readbuf, offset, len, xfered_len);
-
-      if (res == TARGET_XFER_OK)
-	return TARGET_XFER_OK;
-      else
-	{
-	  /* No use trying further, we know some memory starting
-	     at MEMADDR isn't available.  */
-	  *xfered_len = len;
-	  return TARGET_XFER_UNAVAILABLE;
-	}
-    }
-  else
-    {
-      /* Fallback to reading from read-only sections.  */
-      return section_table_read_available_memory (readbuf, offset, len, xfered_len);
-    }
-}
-
-/* This is the implementation of target_ops method
-   to_get_trace_state_variable_value.
-   Iterate over events whose name is "tsv" in current frame.  When the
-   trace variable is found, set the value of it to *VAL and return
-   true, otherwise return false.  */
-
-bool
-ctf_target::get_trace_state_variable_value (int tsvnum, LONGEST *val)
-{
-  struct bt_iter_pos *pos;
-  bool found = false;
-
-  gdb_assert (ctf_iter != NULL);
-  /* Save the current position.  */
-  pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
-  gdb_assert (pos->type == BT_SEEK_RESTORE);
-
-  /* Iterate through the traceframe's blocks, looking for 'V'
-     block.  */
-  while (1)
-    {
-      struct bt_ctf_event *event
-	= bt_ctf_iter_read_event (ctf_iter);
-      const char *name = bt_ctf_event_name (event);
-
-      if (name == NULL || strcmp (name, "frame") == 0)
-	break;
-      else if (strcmp (name, "tsv") == 0)
-	{
-	  const struct bt_definition *scope;
-	  const struct bt_definition *def;
-
-	  scope = bt_ctf_get_top_level_scope (event,
-					      BT_EVENT_FIELDS);
-
-	  def = bt_ctf_get_field (event, scope, "num");
-	  if (tsvnum == (int32_t) bt_ctf_get_uint64 (def))
-	    {
-	      def = bt_ctf_get_field (event, scope, "val");
-	      *val = bt_ctf_get_uint64 (def);
-
-	      found = true;
-	    }
-	}
-
-      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
-	break;
-    }
-
-  /* Restore the position.  */
-  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
-
-  return found;
-}
-
-/* Return the tracepoint number in "frame" event.  */
-
-static int
-ctf_get_tpnum_from_frame_event (struct bt_ctf_event *event)
-{
-  /* The packet context of events has a field "tpnum".  */
-  const struct bt_definition *scope
-    = bt_ctf_get_top_level_scope (event, BT_STREAM_PACKET_CONTEXT);
-  uint64_t tpnum
-    = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "tpnum"));
-
-  return (int) tpnum;
-}
-
-/* Return the address at which the current frame was collected.  */
-
-static CORE_ADDR
-ctf_get_traceframe_address (void)
-{
-  struct bt_ctf_event *event = NULL;
-  struct bt_iter_pos *pos;
-  CORE_ADDR addr = 0;
-
-  gdb_assert (ctf_iter != NULL);
-  pos  = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
-  gdb_assert (pos->type == BT_SEEK_RESTORE);
-
-  while (1)
-    {
-      const char *name;
-      struct bt_ctf_event *event1;
-
-      event1 = bt_ctf_iter_read_event (ctf_iter);
-
-      name = bt_ctf_event_name (event1);
-
-      if (name == NULL)
-	break;
-      else if (strcmp (name, "frame") == 0)
-	{
-	  event = event1;
-	  break;
-	}
-
-      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
-	break;
-    }
-
-  if (event != NULL)
-    {
-      int tpnum = ctf_get_tpnum_from_frame_event (event);
-      struct tracepoint *tp
-	= get_tracepoint_by_number_on_target (tpnum);
-
-      if (tp && tp->loc)
-	addr = tp->loc->address;
-    }
-
-  /* Restore the position.  */
-  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
-
-  return addr;
-}
-
-/* This is the implementation of target_ops method to_trace_find.
-   Iterate the events whose name is "frame", extract the tracepoint
-   number in it.  Return traceframe number when matched.  */
-
-int
-ctf_target::trace_find (enum trace_find_type type, int num,
-			CORE_ADDR addr1, CORE_ADDR addr2, int *tpp)
-{
-  int tfnum = 0;
-  int found = 0;
-
-  if (num == -1)
-    {
-      if (tpp != NULL)
-	*tpp = -1;
-      return -1;
-    }
-
-  gdb_assert (ctf_iter != NULL);
-  /* Set iterator back to the start.  */
-  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), start_pos);
-
-  while (1)
-    {
-      struct bt_ctf_event *event;
-      const char *name;
-
-      event = bt_ctf_iter_read_event (ctf_iter);
-
-      name = bt_ctf_event_name (event);
-
-      if (event == NULL || name == NULL)
-	break;
-
-      if (strcmp (name, "frame") == 0)
-	{
-	  CORE_ADDR tfaddr;
-
-	  if (type == tfind_number)
-	    {
-	      /* Looking for a specific trace frame.  */
-	      if (tfnum == num)
-		found = 1;
-	    }
-	  else
-	    {
-	      /* Start from the _next_ trace frame.  */
-	      if (tfnum > get_traceframe_number ())
-		{
-		  switch (type)
-		    {
-		    case tfind_tp:
-		      {
-			struct tracepoint *tp = get_tracepoint (num);
-
-			if (tp != NULL
-			    && (tp->number_on_target
-				== ctf_get_tpnum_from_frame_event (event)))
-			  found = 1;
-			break;
-		      }
-		    case tfind_pc:
-		      tfaddr = ctf_get_traceframe_address ();
-		      if (tfaddr == addr1)
-			found = 1;
-		      break;
-		    case tfind_range:
-		      tfaddr = ctf_get_traceframe_address ();
-		      if (addr1 <= tfaddr && tfaddr <= addr2)
-			found = 1;
-		      break;
-		    case tfind_outside:
-		      tfaddr = ctf_get_traceframe_address ();
-		      if (!(addr1 <= tfaddr && tfaddr <= addr2))
-			found = 1;
-		      break;
-		    default:
-		      internal_error (__FILE__, __LINE__, _("unknown tfind type"));
-		    }
-		}
-	    }
-	  if (found)
-	    {
-	      if (tpp != NULL)
-		*tpp = ctf_get_tpnum_from_frame_event (event);
-
-	      /* Skip the event "frame".  */
-	      bt_iter_next (bt_ctf_get_iter (ctf_iter));
-
-	      return tfnum;
-	    }
-	  tfnum++;
-	}
-
-      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
-	break;
-    }
-
-  return -1;
-}
-
-/* This is the implementation of target_ops method to_traceframe_info.
-   Iterate the events whose name is "memory", in current
-   frame, extract memory range information, and return them in
-   traceframe_info.  */
-
-traceframe_info_up
-ctf_target::traceframe_info ()
-{
-  traceframe_info_up info (new struct traceframe_info);
-  const char *name;
-  struct bt_iter_pos *pos;
-
-  gdb_assert (ctf_iter != NULL);
-  /* Save the current position.  */
-  pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
-  gdb_assert (pos->type == BT_SEEK_RESTORE);
-
-  do
-    {
-      struct bt_ctf_event *event
-	= bt_ctf_iter_read_event (ctf_iter);
-
-      name = bt_ctf_event_name (event);
-
-      if (name == NULL || strcmp (name, "register") == 0
-	  || strcmp (name, "frame") == 0)
-	;
-      else if (strcmp (name, "memory") == 0)
-	{
-	  const struct bt_definition *scope
-	    = bt_ctf_get_top_level_scope (event,
-					  BT_EVENT_FIELDS);
-	  const struct bt_definition *def;
-
-	  def = bt_ctf_get_field (event, scope, "address");
-	  CORE_ADDR start = bt_ctf_get_uint64 (def);
-
-	  def = bt_ctf_get_field (event, scope, "length");
-	  int length = (uint16_t) bt_ctf_get_uint64 (def);
-
-	  info->memory.emplace_back (start, length);
-	}
-      else if (strcmp (name, "tsv") == 0)
-	{
-	  int vnum;
-	  const struct bt_definition *scope
-	    = bt_ctf_get_top_level_scope (event,
-					  BT_EVENT_FIELDS);
-	  const struct bt_definition *def;
-
-	  def = bt_ctf_get_field (event, scope, "num");
-	  vnum = (int) bt_ctf_get_uint64 (def);
-	  info->tvars.push_back (vnum);
-	}
-      else
-	{
-	  warning (_("Unhandled trace block type (%s) "
-		     "while building trace frame info."),
-		   name);
-	}
-
-      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
-	break;
-    }
-  while (name != NULL && strcmp (name, "frame") != 0);
-
-  /* Restore the position.  */
-  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
-
-  return info;
-}
-
-#endif
-
-/* module initialization */
-
-void
-_initialize_ctf (void)
-{
-#if HAVE_LIBBABELTRACE
-  add_target (ctf_target_info, ctf_target_open, filename_completer);
-#endif
-}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ctf.h ./gdb/ctf.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ctf.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/ctf.h	1970-01-01 00:00:00.000000000 +0000
@@ -1,25 +0,0 @@
-/* CTF format support.
-
-   Copyright (C) 2012-2019 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/>.  */
-
-#ifndef CTF_H
-#define CTF_H
-
-extern struct trace_file_writer *ctf_trace_file_writer_new (void);
-
-#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ctfread.c ./gdb/ctfread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ctfread.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/ctfread.c	2019-10-08 01:49:30.000000000 +0000
@@ -0,0 +1,1486 @@
+/* Compact ANSI-C Type Format (CTF) support in GDB.
+
+   Copyright (C) 2019 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/>.  */
+
+/* This file format can be used to compactly represent the information needed
+   by a debugger to interpret the ANSI-C types used by a given program.
+   Traditionally, this kind of information is generated by the compiler when
+   invoked with the -g flag and is stored in "stabs" strings or in the more
+   modern DWARF format. A new -gtLEVEL option has been added in gcc to generate
+   such information. CTF provides a representation of only the information
+   that is relevant to debugging a complex, optimized C program such as the
+   operating system kernel in a form that is significantly more compact than
+   the equivalent stabs or DWARF representation.  The format is data-model
+   independent, so consumers do not need different code depending on whether
+   they are 32-bit or 64-bit programs.  CTF assumes that a standard ELF symbol
+   table is available for use in the debugger, and uses the structure and data
+   of the symbol table to avoid storing redundant information.  The CTF data
+   may be compressed on disk or in memory, indicated by a bit in the header.
+   CTF may be interpreted in a raw disk file, or it may be stored in an ELF
+   section, typically named .ctf.  Data structures are aligned so that a raw
+   CTF file or CTF ELF section may be manipulated using mmap(2).
+
+   The CTF file or section itself has the following structure:
+
+   +--------+--------+---------+----------+----------+-------+--------+
+   |  file  |  type  |  data   | function | variable | data  | string |
+   | header | labels | objects |   info   |   info   | types | table  |
+   +--------+--------+---------+----------+----------+-------+--------+
+
+   The file header stores a magic number and version information, encoding
+   flags, and the byte offset of each of the sections relative to the end of the
+   header itself.  If the CTF data has been uniquified against another set of
+   CTF data, a reference to that data also appears in the the header.  This
+   reference is the name of the label corresponding to the types uniquified
+   against.
+
+   Following the header is a list of labels, used to group the types included in
+   the data types section.  Each label is accompanied by a type ID i.  A given
+   label refers to the group of types whose IDs are in the range [0, i].
+
+   Data object and function records are stored in the same order as they appear
+   in the corresponding symbol table, except that symbols marked SHN_UNDEF are
+   not stored and symbols that have no type data are padded out with zeroes.
+   For each data object, the type ID (a small integer) is recorded.  For each
+   function, the type ID of the return type and argument types is recorded.
+
+   Variable records (as distinct from data objects) provide a modicum of support
+   for non-ELF systems, mapping a variable name to a CTF type ID.  The variable
+   names are sorted into ASCIIbetical order, permitting binary searching.
+
+   The data types section is a list of variable size records that represent each
+   type, in order by their ID.  The types themselves form a directed graph,
+   where each node may contain one or more outgoing edges to other type nodes,
+   denoted by their ID.
+
+   Strings are recorded as a string table ID (0 or 1) and a byte offset into the
+   string table.  String table 0 is the internal CTF string table.  String table
+   1 is the external string table, which is the string table associated with the
+   ELF symbol table for this object.  CTF does not record any strings that are
+   already in the symbol table, and the CTF string table does not contain any
+   duplicated strings.  */
+
+#include "defs.h"
+#include "buildsym.h"
+#include "complaints.h"
+#include "block.h"
+#include "ctfread.h"
+#include "psympriv.h"
+#include "ctf.h"
+#include "ctf-api.h"
+
+static const struct objfile_key<htab, htab_deleter> ctf_tid_key;
+static const struct objfile_data *ctf_file_key;
+
+/* A CTF context consists of a file pointer and an objfile pointer.  */
+
+typedef struct ctf_context
+{
+  ctf_file_t *fp;
+  struct objfile *of;
+  struct buildsym_compunit *builder;
+} ctf_context_t;
+
+/* The routines that read and process fields/members of a C struct, union,
+   or enumeration, pass lists of data member fields in an instance of a
+   ctf_field_info structure. It is derived from dwarf2read.c.  */
+
+struct ctf_nextfield
+{
+  struct field field {};
+};
+
+struct ctf_field_info
+{
+  /* List of data member fields.  */
+  std::vector<struct ctf_nextfield> fields;
+
+  /* Context.  */
+  ctf_context_t *cur_context;
+
+  /* Parent type.  */
+  struct type *ptype;
+
+  /* typedefs defined inside this class.  TYPEDEF_FIELD_LIST contains head
+     of a NULL terminated list of TYPEDEF_FIELD_LIST_COUNT elements.  */
+  std::vector<struct decl_field> typedef_field_list;
+
+  /* Nested types defined by this struct and the number of elements in
+     this list.  */
+  std::vector<struct decl_field> nested_types_list;
+};
+
+
+/* Local function prototypes */
+
+static void psymtab_to_symtab (struct partial_symtab *);
+
+static int ctf_add_type_cb (ctf_id_t tid, void *arg);
+
+static struct type *read_array_type (ctf_context_t *ccp, ctf_id_t tid);
+
+static struct type *read_pointer_type (ctf_context_t *ccp, ctf_id_t tid,
+				       ctf_id_t btid);
+
+static struct type *read_structure_type (ctf_context_t *ccp, ctf_id_t tid);
+
+static struct type *read_enum_type (ctf_context_t *ccp, ctf_id_t tid);
+
+static struct type *read_typedef_type (ctf_context_t *ccp, ctf_id_t tid,
+				       ctf_id_t btid, const char *name);
+
+static struct type *read_type_record (ctf_context_t *ccp, ctf_id_t tid);
+
+static void process_structure_type (ctf_context_t *ccp, ctf_id_t tid);
+
+static void process_struct_members (ctf_context_t *ccp, ctf_id_t tid,
+				    struct type *type);
+
+static struct symbol *new_symbol (ctf_context_t *ccp, struct type *type,
+				  ctf_id_t tid);
+
+struct ctf_tid_and_type
+{
+  ctf_id_t tid;
+  struct type *type;
+};
+
+/* Hash function for a ctf_tid_and_type.  */
+
+static hashval_t
+tid_and_type_hash (const void *item)
+{
+  const struct ctf_tid_and_type *ids
+    = (const struct ctf_tid_and_type *) item;
+
+  return ids->tid;
+}
+
+/* Equality function for a ctf_tid_and_type.  */
+
+static int
+tid_and_type_eq (const void *item_lhs, const void *item_rhs)
+{
+  const struct ctf_tid_and_type *ids_lhs
+    = (const struct ctf_tid_and_type *) item_lhs;
+  const struct ctf_tid_and_type *ids_rhs
+    = (const struct ctf_tid_and_type *) item_rhs;
+
+  return ids_lhs->tid == ids_rhs->tid;
+}
+
+/* Set the type associated with TID to TYP.  */
+
+static struct type *
+set_tid_type (struct objfile *of, ctf_id_t tid, struct type *typ)
+{
+  htab_t htab;
+
+  htab = (htab_t) ctf_tid_key.get (of);
+  if (htab == NULL)
+    {
+      htab = htab_create_alloc (1, tid_and_type_hash,
+				tid_and_type_eq,
+				NULL, xcalloc, xfree);
+      ctf_tid_key.set (of, htab);
+    }
+
+  struct ctf_tid_and_type **slot, ids;
+  ids.tid = tid;
+  ids.type = typ;
+  slot = (struct ctf_tid_and_type **) htab_find_slot (htab, &ids, INSERT);
+  if (*slot)
+    complaint (_("An internal GDB problem: ctf_ id_t %ld type already set"),
+	       (tid));
+  *slot = XOBNEW (&of->objfile_obstack, struct ctf_tid_and_type);
+  **slot = ids;
+  return typ;
+}
+
+/* Look up the type for TID in tid_and_type hash, return NULL if hash is
+   empty or TID does not have a saved type.  */
+
+static struct type *
+get_tid_type (struct objfile *of, ctf_id_t tid)
+{
+  struct ctf_tid_and_type *slot, ids;
+  htab_t htab;
+
+  htab = (htab_t) ctf_tid_key.get (of);
+  if (htab == NULL)
+    return NULL;
+
+  ids.tid = tid;
+  ids.type = NULL;
+  slot = (struct ctf_tid_and_type *) htab_find (htab, &ids);
+  if (slot)
+    return slot->type;
+  else
+    return NULL;
+}
+
+/* Return the size of storage in bits for INTEGER, FLOAT, or ENUM.  */
+
+static int
+get_bitsize (ctf_file_t *fp, ctf_id_t tid, uint32_t kind)
+{
+  ctf_encoding_t cet;
+
+  if ((kind == CTF_K_INTEGER || kind == CTF_K_ENUM
+      || kind == CTF_K_FLOAT)
+      && ctf_type_reference (fp, tid) != CTF_ERR
+      && ctf_type_encoding (fp, tid, &cet) != CTF_ERR)
+    return cet.cte_bits;
+
+  return 0;
+}
+
+/* Set SYM's address, with NAME, from its minimal symbol entry.  */
+
+static void
+set_symbol_address (struct objfile *of, struct symbol *sym, const char *name)
+{
+  struct bound_minimal_symbol msym;
+
+  msym = lookup_minimal_symbol (name, NULL, of);
+  if (msym.minsym != NULL)
+    {
+      SET_SYMBOL_VALUE_ADDRESS (sym, BMSYMBOL_VALUE_ADDRESS (msym));
+      SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
+      SYMBOL_SECTION (sym) = MSYMBOL_SECTION (msym.minsym);
+    }
+}
+
+/* Create the vector of fields, and attach it to TYPE.  */
+
+static void
+attach_fields_to_type (struct ctf_field_info *fip, struct type *type)
+{
+  int nfields = fip->fields.size ();
+
+  if (nfields == 0)
+    return;
+
+  /* Record the field count, allocate space for the array of fields.  */
+  TYPE_NFIELDS (type) = nfields;
+  TYPE_FIELDS (type)
+    = (struct field *) TYPE_ZALLOC (type, sizeof (struct field) * nfields);
+
+  /* Copy the saved-up fields into the field vector.  */
+  for (int i = 0; i < nfields; ++i)
+    {
+      struct ctf_nextfield &field = fip->fields[i];
+      TYPE_FIELD (type, i) = field.field;
+    }
+}
+
+/* Allocate a floating-point type of size BITS and name NAME.  Pass NAME_HINT
+   (which may be different from NAME) to the architecture back-end to allow
+   it to guess the correct format if necessary.  */
+
+static struct type *
+ctf_init_float_type (struct objfile *objfile,
+		     int bits,
+		     const char *name,
+		     const char *name_hint)
+{
+  struct gdbarch *gdbarch = get_objfile_arch (objfile);
+  const struct floatformat **format;
+  struct type *type;
+
+  format = gdbarch_floatformat_for_type (gdbarch, name_hint, bits);
+  if (format != NULL)
+    type = init_float_type (objfile, bits, name, format);
+  else
+    type = init_type (objfile, TYPE_CODE_ERROR, bits, name);
+
+  return type;
+}
+
+/* Callback to add member NAME to a struct/union type. TID is the type
+   of struct/union member, OFFSET is the offset of member in bits,
+   and ARG contains the ctf_field_info.  */
+
+static int
+ctf_add_member_cb (const char *name,
+		   ctf_id_t tid,
+		   unsigned long offset,
+		   void *arg)
+{
+  struct ctf_field_info *fip = (struct ctf_field_info *) arg;
+  ctf_context_t *ccp = fip->cur_context;
+  struct ctf_nextfield new_field;
+  struct field *fp;
+  struct type *t;
+  uint32_t kind;
+
+  fp = &new_field.field;
+  FIELD_NAME (*fp) = name;
+
+  kind = ctf_type_kind (ccp->fp, tid);
+  t = get_tid_type (ccp->of, tid);
+  if (t == NULL)
+    {
+      t = read_type_record (ccp, tid);
+      if (t == NULL)
+	{
+	  complaint (_("ctf_add_member_cb: %s has NO type (%ld)"), name, tid);
+	  t = objfile_type (ccp->of)->builtin_error;
+	  set_tid_type (ccp->of, tid, t);
+	}
+    }
+
+  if (kind == CTF_K_STRUCT || kind == CTF_K_UNION)
+    process_struct_members (ccp, tid, t);
+
+  FIELD_TYPE (*fp) = t;
+  SET_FIELD_BITPOS (*fp, offset / TARGET_CHAR_BIT);
+  FIELD_BITSIZE (*fp) = get_bitsize (ccp->fp, tid, kind);
+
+  fip->fields.emplace_back (new_field);
+
+  return 0;
+}
+
+/* Callback to add member NAME of EVAL to an enumeration type.
+   ARG contains the ctf_field_info.  */
+
+static int
+ctf_add_enum_member_cb (const char *name, int enum_value, void *arg)
+{
+  struct ctf_field_info *fip = (struct ctf_field_info *) arg;
+  struct ctf_nextfield new_field;
+  struct field *fp;
+  ctf_context_t *ccp = fip->cur_context;
+
+  fp = &new_field.field;
+  FIELD_NAME (*fp) = name;
+  FIELD_TYPE (*fp) = NULL;
+  SET_FIELD_ENUMVAL (*fp, enum_value);
+  FIELD_BITSIZE (*fp) = 0;
+
+  if (name != NULL)
+    {
+      struct symbol *sym = allocate_symbol (ccp->of);
+      OBJSTAT (ccp->of, n_syms++);
+
+      SYMBOL_SET_LANGUAGE (sym, language_c, &ccp->of->objfile_obstack);
+      SYMBOL_SET_NAMES (sym, name, strlen (name), 0, ccp->of);
+      SYMBOL_ACLASS_INDEX (sym) = LOC_CONST;
+      SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
+      SYMBOL_TYPE (sym) = fip->ptype;
+      add_symbol_to_list (sym, ccp->builder->get_global_symbols ());
+    }
+
+  fip->fields.emplace_back (new_field);
+
+  return 0;
+}
+
+/* Add a new symbol entry, with its name from TID, its access index and
+   domain from TID's kind, and its type from TYPE.  */
+
+static struct symbol *
+new_symbol (ctf_context_t *ccp, struct type *type, ctf_id_t tid)
+{
+  struct objfile *objfile = ccp->of;
+  ctf_file_t *fp = ccp->fp;
+  struct symbol *sym = NULL;
+
+  gdb::unique_xmalloc_ptr<char> name (ctf_type_aname_raw (fp, tid));
+  if (name != NULL)
+    {
+      sym = allocate_symbol (objfile);
+      OBJSTAT (objfile, n_syms++);
+
+      SYMBOL_SET_LANGUAGE (sym, language_c, &objfile->objfile_obstack);
+      SYMBOL_SET_NAMES (sym, name.get (), strlen (name.get ()), 1, objfile);
+      SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
+      SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT;
+
+      if (type != NULL)
+	SYMBOL_TYPE (sym) = type;
+
+      uint32_t kind = ctf_type_kind (fp, tid);
+      switch (kind)
+	{
+	  case CTF_K_STRUCT:
+	  case CTF_K_UNION:
+	  case CTF_K_ENUM:
+	    SYMBOL_ACLASS_INDEX (sym) = LOC_TYPEDEF;
+	    SYMBOL_DOMAIN (sym) = STRUCT_DOMAIN;
+	    break;
+	  case CTF_K_FUNCTION:
+	    SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
+	    break;
+	  case CTF_K_CONST:
+	    if (TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_VOID)
+	      SYMBOL_TYPE (sym) = objfile_type (objfile)->builtin_int;
+	    break;
+	  case CTF_K_TYPEDEF:
+	  case CTF_K_INTEGER:
+	  case CTF_K_FLOAT:
+	    SYMBOL_ACLASS_INDEX (sym) = LOC_TYPEDEF;
+	    SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
+	    break;
+	  case CTF_K_POINTER:
+	    break;
+	  case CTF_K_VOLATILE:
+	  case CTF_K_RESTRICT:
+	    break;
+	  case CTF_K_SLICE:
+	  case CTF_K_ARRAY:
+	  case CTF_K_UNKNOWN:
+	    break;
+	}
+
+      add_symbol_to_list (sym, ccp->builder->get_global_symbols ());
+    }
+
+  return sym;
+}
+
+/* Given a TID of kind CTF_K_INTEGER or CTF_K_FLOAT, find a representation
+   and create the symbol for it.  */
+
+static struct type *
+read_base_type (ctf_context_t *ccp, ctf_id_t tid)
+{
+  struct objfile *of = ccp->of;
+  ctf_file_t *fp = ccp->fp;
+  ctf_encoding_t cet;
+  struct type *type = NULL;
+  char *name;
+  uint32_t kind;
+
+  if (ctf_type_encoding (fp, tid, &cet))
+    {
+      complaint (_("ctf_type_encoding read_base_type failed - %s"),
+		 ctf_errmsg (ctf_errno (fp)));
+      return NULL;
+    }
+
+  gdb::unique_xmalloc_ptr<char> copied_name (ctf_type_aname_raw (fp, tid));
+  if (copied_name == NULL || strlen (copied_name.get ()) == 0)
+    {
+      name = ctf_type_aname (fp, tid);
+      if (name == NULL)
+	complaint (_("ctf_type_aname read_base_type failed - %s"),
+		   ctf_errmsg (ctf_errno (fp)));
+    }
+  else
+    name = obstack_strdup (&of->objfile_obstack, copied_name.get ());
+
+  kind = ctf_type_kind (fp, tid);
+  if (kind == CTF_K_INTEGER)
+    {
+      uint32_t issigned, ischar, isbool;
+      struct gdbarch *gdbarch = get_objfile_arch (of);
+
+      issigned = cet.cte_format & CTF_INT_SIGNED;
+      ischar = cet.cte_format & CTF_INT_CHAR;
+      isbool = cet.cte_format & CTF_INT_BOOL;
+      if (ischar)
+	type = init_character_type (of, TARGET_CHAR_BIT, !issigned, name);
+      else if (isbool)
+	type = init_boolean_type (of, gdbarch_int_bit (gdbarch),
+				  !issigned, name);
+      else
+	{
+	  int bits;
+	  if (cet.cte_bits && ((cet.cte_bits % TARGET_CHAR_BIT) == 0))
+	    bits = cet.cte_bits;
+	  else
+	    bits = gdbarch_int_bit (gdbarch);
+	  type = init_integer_type (of, bits, !issigned, name);
+	}
+    }
+  else if (kind == CTF_K_FLOAT)
+    {
+      uint32_t isflt;
+      isflt = !((cet.cte_format & CTF_FP_IMAGRY) == CTF_FP_IMAGRY
+		 || (cet.cte_format & CTF_FP_DIMAGRY) == CTF_FP_DIMAGRY
+		 || (cet.cte_format & CTF_FP_LDIMAGRY) == CTF_FP_LDIMAGRY);
+      if (isflt)
+	type = ctf_init_float_type (of, cet.cte_bits, name, name);
+      else
+	{
+	  struct type *t
+	    = ctf_init_float_type (of, cet.cte_bits / 2, NULL, name);
+	  type = init_complex_type (of, name, t);
+	}
+    }
+  else
+    {
+      complaint (_("read_base_type: unsupported base kind (%d)"), kind);
+      type = init_type (of, TYPE_CODE_ERROR, cet.cte_bits, name);
+    }
+
+  if (name != NULL && strcmp (name, "char") == 0)
+    TYPE_NOSIGN (type) = 1;
+
+  return set_tid_type (of, tid, type);
+}
+
+static void
+process_base_type (ctf_context_t *ccp, ctf_id_t tid)
+{
+  struct type *type;
+
+  type = read_base_type (ccp, tid);
+  new_symbol (ccp, type, tid);
+}
+
+/* Start a structure or union scope (definition) with TID to create a type
+   for the structure or union.
+
+   Fill in the type's name and general properties. The members will not be
+   processed, nor a symbol table entry be done until process_structure_type
+   (assuming the type has a name).  */
+
+static struct type *
+read_structure_type (ctf_context_t *ccp, ctf_id_t tid)
+{
+  struct objfile *of = ccp->of;
+  ctf_file_t *fp = ccp->fp;
+  struct type *type;
+  uint32_t kind;
+
+  type = alloc_type (of);
+
+  gdb::unique_xmalloc_ptr<char> name (ctf_type_aname_raw (fp, tid));
+  if (name != NULL && strlen (name.get() ) != 0)
+    TYPE_NAME (type) = obstack_strdup (&of->objfile_obstack, name.get ());
+
+  kind = ctf_type_kind (fp, tid);
+  if (kind == CTF_K_UNION)
+    TYPE_CODE (type) = TYPE_CODE_UNION;
+  else
+    TYPE_CODE (type) = TYPE_CODE_STRUCT;
+
+  TYPE_LENGTH (type) = ctf_type_size (fp, tid);
+  set_type_align (type, ctf_type_align (fp, tid));
+
+  return set_tid_type (ccp->of, tid, type);
+}
+
+/* Given a tid of CTF_K_STRUCT or CTF_K_UNION, process all its members
+   and create the symbol for it.  */
+
+static void
+process_struct_members (ctf_context_t *ccp,
+			ctf_id_t tid,
+			struct type *type)
+{
+  struct ctf_field_info fi;
+
+  fi.cur_context = ccp;
+  if (ctf_member_iter (ccp->fp, tid, ctf_add_member_cb, &fi) == CTF_ERR)
+    complaint (_("ctf_member_iter process_struct_members failed - %s"),
+	       ctf_errmsg (ctf_errno (ccp->fp)));
+
+  /* Attach fields to the type.  */
+  attach_fields_to_type (&fi, type);
+
+  new_symbol (ccp, type, tid);
+}
+
+static void
+process_structure_type (ctf_context_t *ccp, ctf_id_t tid)
+{
+  struct type *type;
+
+  type = read_structure_type (ccp, tid);
+  process_struct_members (ccp, tid, type);
+}
+
+/* Create a function type for TID and set its return type.  */
+
+static struct type *
+read_func_kind_type (ctf_context_t *ccp, ctf_id_t tid)
+{
+  struct objfile *of = ccp->of;
+  ctf_file_t *fp = ccp->fp;
+  struct type *type, *rettype;
+  ctf_funcinfo_t cfi;
+
+  type = alloc_type (of);
+
+  gdb::unique_xmalloc_ptr<char> name (ctf_type_aname_raw (fp, tid));
+  if (name != NULL && strlen (name.get ()) != 0)
+    TYPE_NAME (type) = obstack_strdup (&of->objfile_obstack, name.get ());
+
+  TYPE_CODE (type) = TYPE_CODE_FUNC;
+  ctf_func_type_info (fp, tid, &cfi);
+  rettype = get_tid_type (of, cfi.ctc_return);
+  TYPE_TARGET_TYPE (type) = rettype;
+  set_type_align (type, ctf_type_align (fp, tid));
+
+  return set_tid_type (of, tid, type);
+}
+
+/* Given a TID of CTF_K_ENUM, process all the members of the
+   enumeration, and create the symbol for the enumeration type.  */
+
+static struct type *
+read_enum_type (ctf_context_t *ccp, ctf_id_t tid)
+{
+  struct objfile *of = ccp->of;
+  ctf_file_t *fp = ccp->fp;
+  struct type *type, *target_type;
+  ctf_funcinfo_t fi;
+
+  type = alloc_type (of);
+
+  gdb::unique_xmalloc_ptr<char> name (ctf_type_aname_raw (fp, tid));
+  if (name != NULL && strlen (name.get ()) != 0)
+    TYPE_NAME (type) = obstack_strdup (&of->objfile_obstack, name.get ());
+
+  TYPE_CODE (type) = TYPE_CODE_ENUM;
+  TYPE_LENGTH (type) = ctf_type_size (fp, tid);
+  ctf_func_type_info (fp, tid, &fi);
+  target_type = get_tid_type (of, fi.ctc_return);
+  TYPE_TARGET_TYPE (type) = target_type;
+  set_type_align (type, ctf_type_align (fp, tid));
+
+  return set_tid_type (of, tid, type);
+}
+
+static void
+process_enum_type (ctf_context_t *ccp, ctf_id_t tid)
+{
+  struct type *type;
+  struct ctf_field_info fi;
+
+  type = read_enum_type (ccp, tid);
+
+  fi.cur_context = ccp;
+  fi.ptype = type;
+  if (ctf_enum_iter (ccp->fp, tid, ctf_add_enum_member_cb, &fi) == CTF_ERR)
+    complaint (_("ctf_enum_iter process_enum_type failed - %s"),
+	       ctf_errmsg (ctf_errno (ccp->fp)));
+
+  /* Attach fields to the type.  */
+  attach_fields_to_type (&fi, type);
+
+  new_symbol (ccp, type, tid);
+}
+
+/* Add given cv-qualifiers CNST+VOLTL to the BASE_TYPE of array TID.  */
+
+static struct type *
+add_array_cv_type (ctf_context_t *ccp,
+		   ctf_id_t tid,
+		   struct type *base_type,
+		   int cnst,
+		   int voltl)
+{
+  struct type *el_type, *inner_array;
+
+  base_type = copy_type (base_type);
+  inner_array = base_type;
+
+  while (TYPE_CODE (TYPE_TARGET_TYPE (inner_array)) == TYPE_CODE_ARRAY)
+    {
+      TYPE_TARGET_TYPE (inner_array)
+	= copy_type (TYPE_TARGET_TYPE (inner_array));
+      inner_array = TYPE_TARGET_TYPE (inner_array);
+    }
+
+  el_type = TYPE_TARGET_TYPE (inner_array);
+  cnst |= TYPE_CONST (el_type);
+  voltl |= TYPE_VOLATILE (el_type);
+  TYPE_TARGET_TYPE (inner_array) = make_cv_type (cnst, voltl, el_type, NULL);
+
+  return set_tid_type (ccp->of, tid, base_type);
+}
+
+/* Read all information from a TID of CTF_K_ARRAY.  */
+
+static struct type *
+read_array_type (ctf_context_t *ccp, ctf_id_t tid)
+{
+  struct objfile *objfile = ccp->of;
+  ctf_file_t *fp = ccp->fp;
+  struct type *element_type, *range_type, *idx_type;
+  struct type *type;
+  ctf_arinfo_t ar;
+
+  if (ctf_array_info (fp, tid, &ar) == CTF_ERR)
+    {
+      complaint (_("ctf_array_info read_array_type failed - %s"),
+		 ctf_errmsg (ctf_errno (fp)));
+      return NULL;
+    }
+
+  element_type = get_tid_type (objfile, ar.ctr_contents);
+  if (element_type == NULL)
+    return NULL;
+
+  idx_type = get_tid_type (objfile, ar.ctr_index);
+  if (idx_type == NULL)
+    idx_type = objfile_type (objfile)->builtin_int;
+
+  range_type = create_static_range_type (NULL, idx_type, 0, ar.ctr_nelems - 1);
+  type = create_array_type (NULL, element_type, range_type);
+  if (ar.ctr_nelems <= 1)	/* Check if undefined upper bound.  */
+    {
+      TYPE_HIGH_BOUND_KIND (range_type) = PROP_UNDEFINED;
+      TYPE_LENGTH (type) = 0;
+      TYPE_TARGET_STUB (type) = 1;
+    }
+  else
+    TYPE_LENGTH (type) = ctf_type_size (fp, tid);
+
+  set_type_align (type, ctf_type_align (fp, tid));
+
+  return set_tid_type (objfile, tid, type);
+}
+
+/* Read TID of kind CTF_K_CONST with base type BTID.  */
+
+static struct type *
+read_const_type (ctf_context_t *ccp, ctf_id_t tid, ctf_id_t btid)
+{
+  struct objfile *objfile = ccp->of;
+  struct type *base_type, *cv_type;
+
+  base_type = get_tid_type (objfile, btid);
+  if (base_type == NULL)
+    {
+      base_type = read_type_record (ccp, btid);
+      if (base_type == NULL)
+	{
+	  complaint (_("read_const_type: NULL base type (%ld)"), btid);
+	  base_type = objfile_type (objfile)->builtin_error;
+	}
+    }
+  cv_type = make_cv_type (1, TYPE_VOLATILE (base_type), base_type, 0);
+
+  return set_tid_type (objfile, tid, cv_type);
+}
+
+/* Read TID of kind CTF_K_VOLATILE with base type BTID.  */
+
+static struct type *
+read_volatile_type (ctf_context_t *ccp, ctf_id_t tid, ctf_id_t btid)
+{
+  struct objfile *objfile = ccp->of;
+  ctf_file_t *fp = ccp->fp;
+  struct type *base_type, *cv_type;
+
+  base_type = get_tid_type (objfile, btid);
+  if (base_type == NULL)
+    {
+      base_type = read_type_record (ccp, btid);
+      if (base_type == NULL)
+	{
+	  complaint (_("read_volatile_type: NULL base type (%ld)"), btid);
+	  base_type = objfile_type (objfile)->builtin_error;
+	}
+    }
+
+  if (ctf_type_kind (fp, btid) == CTF_K_ARRAY)
+    return add_array_cv_type (ccp, tid, base_type, 0, 1);
+  cv_type = make_cv_type (TYPE_CONST (base_type), 1, base_type, 0);
+
+  return set_tid_type (objfile, tid, cv_type);
+}
+
+/* Read TID of kind CTF_K_RESTRICT with base type BTID.  */
+
+static struct type *
+read_restrict_type (ctf_context_t *ccp, ctf_id_t tid, ctf_id_t btid)
+{
+  struct objfile *objfile = ccp->of;
+  struct type *base_type, *cv_type;
+
+  base_type = get_tid_type (objfile, btid);
+  if (base_type == NULL)
+    {
+      base_type = read_type_record (ccp, btid);
+      if (base_type == NULL)
+	{
+	  complaint (_("read_restrict_type: NULL base type (%ld)"), btid);
+	  base_type = objfile_type (objfile)->builtin_error;
+	}
+    }
+  cv_type = make_restrict_type (base_type);
+
+  return set_tid_type (objfile, tid, cv_type);
+}
+
+/* Read TID of kind CTF_K_TYPEDEF with its NAME and base type BTID.  */
+
+static struct type *
+read_typedef_type (ctf_context_t *ccp, ctf_id_t tid,
+		   ctf_id_t btid, const char *name)
+{
+  struct objfile *objfile = ccp->of;
+  struct type *this_type, *target_type;
+
+  char *aname = obstack_strdup (&objfile->objfile_obstack, name);
+  this_type = init_type (objfile, TYPE_CODE_TYPEDEF, 0, aname);
+  set_tid_type (objfile, tid, this_type);
+  target_type = get_tid_type (objfile, btid);
+  if (target_type != this_type)
+    TYPE_TARGET_TYPE (this_type) = target_type;
+  else
+    TYPE_TARGET_TYPE (this_type) = NULL;
+  TYPE_TARGET_STUB (this_type) = TYPE_TARGET_TYPE (this_type) ? 1 : 0;
+
+  return set_tid_type (objfile, tid, this_type);
+}
+
+/* Read TID of kind CTF_K_POINTER with base type BTID.  */
+
+static struct type *
+read_pointer_type (ctf_context_t *ccp, ctf_id_t tid, ctf_id_t btid)
+{
+  struct objfile *of = ccp->of;
+  struct type *target_type, *type;
+
+  target_type = get_tid_type (of, btid);
+  if (target_type == NULL)
+    {
+      target_type = read_type_record (ccp, btid);
+      if (target_type == NULL)
+	{
+	  complaint (_("read_pointer_type: NULL target type (%ld)"), btid);
+	  target_type = objfile_type (ccp->of)->builtin_error;
+	}
+    }
+
+  type = lookup_pointer_type (target_type);
+  set_type_align (type, ctf_type_align (ccp->fp, tid));
+
+  return set_tid_type (of, tid, type);
+}
+
+/* Read information associated with type TID.  */
+
+static struct type *
+read_type_record (ctf_context_t *ccp, ctf_id_t tid)
+{
+  ctf_file_t *fp = ccp->fp;
+  uint32_t kind;
+  struct type *type = NULL;
+  ctf_id_t btid;
+
+  kind = ctf_type_kind (fp, tid);
+  switch (kind)
+    {
+      case CTF_K_STRUCT:
+      case CTF_K_UNION:
+	type = read_structure_type (ccp, tid);
+	break;
+      case CTF_K_ENUM:
+	type = read_enum_type (ccp, tid);
+	break;
+      case CTF_K_FUNCTION:
+	type = read_func_kind_type (ccp, tid);
+	break;
+      case CTF_K_CONST:
+	btid = ctf_type_reference (fp, tid);
+	type = read_const_type (ccp, tid, btid);
+	break;
+      case CTF_K_TYPEDEF:
+	{
+	  gdb::unique_xmalloc_ptr<char> name (ctf_type_aname_raw (fp, tid));
+	  btid = ctf_type_reference (fp, tid);
+	  type = read_typedef_type (ccp, tid, btid, name.get ());
+	}
+	break;
+      case CTF_K_VOLATILE:
+	btid = ctf_type_reference (fp, tid);
+	type = read_volatile_type (ccp, tid, btid);
+	break;
+      case CTF_K_RESTRICT:
+	btid = ctf_type_reference (fp, tid);
+	type = read_restrict_type (ccp, tid, btid);
+	break;
+      case CTF_K_POINTER:
+	btid = ctf_type_reference (fp, tid);
+	type = read_pointer_type (ccp, tid, btid);
+	break;
+      case CTF_K_INTEGER:
+      case CTF_K_FLOAT:
+	type = read_base_type (ccp, tid);
+	break;
+      case CTF_K_ARRAY:
+	type = read_array_type (ccp, tid);
+	break;
+      case CTF_K_UNKNOWN:
+	break;
+      default:
+	break;
+    }
+
+  return type;
+}
+
+/* Callback to add type TID to the symbol table.  */
+
+static int
+ctf_add_type_cb (ctf_id_t tid, void *arg)
+{
+  ctf_context_t *ccp = (ctf_context_t *) arg;
+  struct type *type;
+  uint32_t kind;
+
+  /* Check if tid's type has already been defined.  */
+  type = get_tid_type (ccp->of, tid);
+  if (type != NULL)
+    return 0;
+
+  ctf_id_t btid = ctf_type_reference (ccp->fp, tid);
+  kind = ctf_type_kind (ccp->fp, tid);
+  switch (kind)
+    {
+      case CTF_K_STRUCT:
+      case CTF_K_UNION:
+	process_structure_type (ccp, tid);
+	break;
+      case CTF_K_ENUM:
+	process_enum_type (ccp, tid);
+	break;
+      case CTF_K_FUNCTION:
+	type = read_func_kind_type (ccp, tid);
+	new_symbol (ccp, type, tid);
+	break;
+      case CTF_K_INTEGER:
+      case CTF_K_FLOAT:
+	process_base_type (ccp, tid);
+	break;
+      case CTF_K_TYPEDEF:
+	new_symbol (ccp, read_type_record (ccp, tid), tid);
+	break;
+      case CTF_K_CONST:
+	type = read_const_type (ccp, tid, btid);
+	new_symbol (ccp, type, tid);
+	break;
+      case CTF_K_VOLATILE:
+	type = read_volatile_type (ccp, tid, btid);
+	new_symbol (ccp, type, tid);
+	break;
+      case CTF_K_RESTRICT:
+	type = read_restrict_type (ccp, tid, btid);
+	new_symbol (ccp, type, tid);
+	break;
+      case CTF_K_POINTER:
+	type = read_pointer_type (ccp, tid, btid);
+	new_symbol (ccp, type, tid);
+	break;
+      case CTF_K_ARRAY:
+	type = read_array_type (ccp, tid);
+	new_symbol (ccp, type, tid);
+	break;
+      case CTF_K_UNKNOWN:
+	break;
+      default:
+	break;
+    }
+
+  return 0;
+}
+
+/* Callback to add variable NAME with TID to the symbol table.  */
+
+static int
+ctf_add_var_cb (const char *name, ctf_id_t id, void *arg)
+{
+  ctf_context_t *ccp = (ctf_context_t *) arg;
+  struct symbol *sym = NULL;
+  struct type *type;
+  uint32_t kind;
+
+  type = get_tid_type (ccp->of, id);
+
+  kind = ctf_type_kind (ccp->fp, id);
+  switch (kind)
+    {
+      case CTF_K_FUNCTION:
+	if (name && !strcmp(name, "main"))
+	  set_objfile_main_name (ccp->of, name, language_c);
+	break;
+      case CTF_K_INTEGER:
+      case CTF_K_FLOAT:
+      case CTF_K_VOLATILE:
+      case CTF_K_RESTRICT:
+      case CTF_K_TYPEDEF:
+      case CTF_K_CONST:
+      case CTF_K_POINTER:
+      case CTF_K_ARRAY:
+	if (type)
+	  {
+	    sym = new_symbol (ccp, type, id);
+	    SYMBOL_SET_NAMES (sym, name, strlen (name), 0, ccp->of);
+	  }
+	break;
+      case CTF_K_STRUCT:
+      case CTF_K_UNION:
+      case CTF_K_ENUM:
+	if (type == NULL)
+	{
+	  complaint (_("ctf_add_var_cb: %s has NO type (%ld)"), name, id);
+	  type = objfile_type (ccp->of)->builtin_error;
+	}
+	sym = allocate_symbol (ccp->of);
+	OBJSTAT (ccp->of, n_syms++);
+	SYMBOL_TYPE (sym) = type;
+	SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
+	SYMBOL_ACLASS_INDEX (sym) = LOC_OPTIMIZED_OUT;
+	SYMBOL_SET_NAMES (sym, name, strlen (name), 0, ccp->of);
+	add_symbol_to_list (sym, ccp->builder->get_global_symbols ());
+	break;
+      default:
+	complaint (_("ctf_add_var_cb: kind unsupported (%d)"), kind);
+	break;
+    }
+
+  if (sym)
+    set_symbol_address (ccp->of, sym, name);
+
+  return 0;
+}
+
+/* Add an ELF STT_OBJ symbol with index IDX to the symbol table.  */
+
+static struct symbol *
+add_stt_obj (ctf_context_t *ccp, unsigned long idx)
+{
+  struct symbol *sym;
+  struct type *type;
+  ctf_id_t tid;
+
+  if ((tid = ctf_lookup_by_symbol (ccp->fp, idx)) == CTF_ERR)
+    return NULL;
+
+  type = get_tid_type (ccp->of, tid);
+  if (type == NULL)
+    return NULL;
+
+  sym = new_symbol (ccp, type, tid);
+
+  return sym;
+}
+
+/* Add an ELF STT_FUNC symbol with index IDX to the symbol table.  */
+
+static struct symbol *
+add_stt_func (ctf_context_t *ccp, unsigned long idx)
+{
+  struct type *ftype, *atyp, *rettyp;
+  struct symbol *sym;
+  ctf_funcinfo_t finfo;
+  ctf_id_t argv[32];
+  uint32_t argc;
+  ctf_id_t tid;
+  struct type *void_type = objfile_type (ccp->of)->builtin_void;
+
+  if (ctf_func_info (ccp->fp, idx, &finfo) == CTF_ERR)
+    return NULL;
+
+  argc = finfo.ctc_argc;
+  if (ctf_func_args (ccp->fp, idx, argc, argv) == CTF_ERR)
+    return NULL;
+
+  gdb::unique_xmalloc_ptr<char> name (ctf_type_aname_raw (ccp->fp, idx));
+  if (name == NULL)
+    return NULL;
+
+  tid = ctf_lookup_by_symbol (ccp->fp, idx);
+  ftype = get_tid_type (ccp->of, tid);
+  if (finfo.ctc_flags & CTF_FUNC_VARARG)
+    TYPE_VARARGS (ftype) = 1;
+  TYPE_NFIELDS (ftype) = argc;
+
+  /* If argc is 0, it has a "void" type.  */
+  if (argc != 0)
+    TYPE_FIELDS (ftype)
+      = (struct field *) TYPE_ZALLOC (ftype, argc * sizeof (struct field));
+
+  /* TYPE_FIELD_TYPE must never be NULL.  Fill it with void_type, if failed
+     to find the argument type.  */
+  for (int iparam = 0; iparam < argc; iparam++)
+    {
+      atyp = get_tid_type (ccp->of, argv[iparam]);
+      if (atyp)
+	TYPE_FIELD_TYPE (ftype, iparam) = atyp;
+      else
+	TYPE_FIELD_TYPE (ftype, iparam) = void_type;
+    }
+
+  sym = new_symbol (ccp, ftype, tid);
+  rettyp = get_tid_type (ccp->of, finfo.ctc_return);
+  if (rettyp != NULL)
+    SYMBOL_TYPE (sym) = rettyp;
+  else
+    SYMBOL_TYPE (sym) = void_type;
+
+  return sym;
+}
+
+/* Get text segment base for OBJFILE, TSIZE contains the segment size.  */
+
+static CORE_ADDR
+get_objfile_text_range (struct objfile *of, int *tsize)
+{
+  CORE_ADDR text_base;
+  bfd *abfd = of->obfd;
+  const asection *codes;
+
+  codes = bfd_get_section_by_name (abfd, ".text");
+  if (codes == NULL)
+    {
+      text_base = 0;
+      *tsize = 0;
+    }
+  else
+    {
+      text_base = bfd_section_vma (codes);
+      *tsize = codes->size;
+    }
+
+  return text_base;
+}
+
+/* Start a symtab for OBJFILE in CTF format.  */
+
+static void
+ctf_start_symtab (struct partial_symtab *pst,
+		  struct objfile *of, CORE_ADDR text_offset)
+{
+  ctf_context_t *ccp;
+
+  ccp = (ctf_context_t *) pst->read_symtab_private;
+  ccp->builder = new buildsym_compunit
+		       (of, of->original_name, NULL,
+		       language_c, text_offset);
+  ccp->builder->record_debugformat ("ctf");
+}
+
+/* Finish reading symbol/type definitions in CTF format.
+   END_ADDR is the end address of the file's text.  SECTION is
+   the .text section number.  */
+
+static struct compunit_symtab *
+ctf_end_symtab (struct partial_symtab *pst,
+		CORE_ADDR end_addr, int section)
+{
+  ctf_context_t *ccp;
+
+  ccp = (ctf_context_t *) pst->read_symtab_private;
+  struct compunit_symtab *result
+    = ccp->builder->end_symtab (end_addr, section);
+  delete ccp->builder;
+  ccp->builder = NULL;
+  return result;
+}
+
+/* Read in full symbols for PST, and anything it depends on.  */
+
+static void
+psymtab_to_symtab (struct partial_symtab *pst)
+{
+  struct symbol *sym;
+  ctf_context_t *ccp;
+
+  gdb_assert (!pst->readin);
+
+  ccp = (ctf_context_t *) pst->read_symtab_private;
+
+  /* Iterate over entries in data types section.  */
+  if (ctf_type_iter (ccp->fp, ctf_add_type_cb, ccp) == CTF_ERR)
+    complaint (_("ctf_type_iter psymtab_to_symtab failed - %s"),
+	       ctf_errmsg (ctf_errno (ccp->fp)));
+
+
+  /* Iterate over entries in variable info section.  */
+  if (ctf_variable_iter (ccp->fp, ctf_add_var_cb, ccp) == CTF_ERR)
+    complaint (_("ctf_variable_iter psymtab_to_symtab failed - %s"),
+	       ctf_errmsg (ctf_errno (ccp->fp)));
+
+  /* Add entries in data objects and function info sections.  */
+  for (unsigned long i = 0; ; i++)
+    {
+      sym = add_stt_obj (ccp, i);
+      if (sym == NULL)
+	{
+	  if (ctf_errno (ccp->fp) == EINVAL
+	      || ctf_errno (ccp->fp) == ECTF_NOSYMTAB)
+	    break;
+	  sym = add_stt_func (ccp, i);
+	}
+      if (sym == NULL)
+	continue;
+
+      set_symbol_address (ccp->of, sym, SYMBOL_LINKAGE_NAME (sym));
+    }
+
+  pst->readin = 1;
+}
+
+/* Expand partial symbol table PST into a full symbol table.
+   PST is not NULL.  */
+
+static void
+ctf_read_symtab (struct partial_symtab *pst, struct objfile *objfile)
+{
+  if (pst->readin)
+    warning (_("bug: psymtab for %s is already read in."), pst->filename);
+  else
+    {
+      if (info_verbose)
+	{
+	  printf_filtered (_("Reading in CTF data for %s..."), pst->filename);
+	  gdb_flush (gdb_stdout);
+	}
+
+      /* Start a symtab.  */
+      CORE_ADDR text_offset;        /* Start of text segment.  */
+      int tsize;
+
+      text_offset = get_objfile_text_range (objfile, &tsize);
+      ctf_start_symtab (pst, objfile, text_offset);
+      psymtab_to_symtab (pst);
+
+      pst->set_text_low (text_offset);
+      pst->set_text_high (text_offset + tsize);
+      pst->compunit_symtab = ctf_end_symtab (pst, text_offset + tsize,
+					     SECT_OFF_TEXT (objfile));
+
+      /* Finish up the debug error message.  */
+      if (info_verbose)
+	printf_filtered (_("done.\n"));
+    }
+}
+
+/* Cleanup function for the ctf_file_key data.  */
+
+static void
+ctf_close_objfile (struct objfile *of, void *datum)
+{
+  ctf_file_t *fp = static_cast<ctf_file_t *> (datum);
+  ctf_archive_t *arc = ctf_get_arc (fp);
+  ctf_file_close (fp);
+  ctf_close (arc);
+}
+
+/* Allocate a new partial_symtab NAME.
+
+   Each source file that has not been fully read in is represented by
+   a partial_symtab.  This contains the information on where in the
+   executable the debugging symbols for a specific file are, and a
+   list of names of global symbols which are located in this file.
+   They are all chained on partial symtab lists.
+
+   Even after the source file has been read into a symtab, the
+   partial_symtab remains around.  They are allocated on an obstack,
+   objfile_obstack.  */
+
+static struct partial_symtab *
+create_partial_symtab (const char *name,
+		       ctf_file_t *cfp,
+		       struct objfile *objfile)
+{
+  struct partial_symtab *pst;
+  ctf_context_t *ccx;
+
+  pst = start_psymtab_common (objfile, name, 0);
+
+  ccx = XOBNEW (&objfile->objfile_obstack, ctf_context_t);
+  ccx->fp = cfp;
+  ccx->of = objfile;
+  pst->read_symtab_private = (void *) ccx;
+  pst->read_symtab = ctf_read_symtab;
+
+  return pst;
+}
+
+/* Callback to add type TID to partial symbol table.  */
+
+static int
+ctf_psymtab_type_cb (ctf_id_t tid, void *arg)
+{
+  ctf_context_t *ccp;
+  uint32_t kind;
+  short section = -1;
+
+  ccp = (ctf_context_t *) arg;
+  gdb::unique_xmalloc_ptr<char> name (ctf_type_aname_raw (ccp->fp, tid));
+  if (name == NULL || strlen (name.get ()) == 0)
+    return 0;
+
+  domain_enum domain = UNDEF_DOMAIN;
+  enum address_class aclass = LOC_UNDEF;
+  kind = ctf_type_kind (ccp->fp, tid);
+  switch (kind)
+    {
+      case CTF_K_STRUCT:
+      case CTF_K_UNION:
+      case CTF_K_ENUM:
+	domain = STRUCT_DOMAIN;
+	aclass = LOC_TYPEDEF;
+	break;
+      case CTF_K_FUNCTION:
+      case CTF_K_FORWARD:
+	domain = VAR_DOMAIN;
+	aclass = LOC_STATIC;
+	section = SECT_OFF_TEXT (ccp->of);
+	break;
+      case CTF_K_CONST:
+	domain = VAR_DOMAIN;
+	aclass = LOC_STATIC;
+	break;
+      case CTF_K_TYPEDEF:
+      case CTF_K_POINTER:
+      case CTF_K_VOLATILE:
+      case CTF_K_RESTRICT:
+	domain = VAR_DOMAIN;
+	aclass = LOC_TYPEDEF;
+	break;
+      case CTF_K_INTEGER:
+      case CTF_K_FLOAT:
+	domain = VAR_DOMAIN;
+	aclass = LOC_TYPEDEF;
+	break;
+      case CTF_K_ARRAY:
+      case CTF_K_UNKNOWN:
+	return 0;
+    }
+
+    add_psymbol_to_list (name.get (), strlen (name.get ()), true,
+			 domain, aclass, section,
+			 psymbol_placement::GLOBAL,
+			 0, language_c, ccp->of);
+
+  return 0;
+}
+
+/* Callback to add variable NAME with ID to partial symbol table.  */
+
+static int
+ctf_psymtab_var_cb (const char *name, ctf_id_t id, void *arg)
+{
+  ctf_context_t *ccp = (ctf_context_t *) arg;
+
+  add_psymbol_to_list (name, strlen (name), true,
+		       VAR_DOMAIN, LOC_STATIC, -1,
+		       psymbol_placement::GLOBAL,
+		       0, language_c, ccp->of);
+  return 0;
+}
+
+/* Setup partial_symtab's describing each source file for which
+   debugging information is available.  */
+
+static void
+scan_partial_symbols (ctf_file_t *cfp, struct objfile *of)
+{
+  ctf_context_t ccx;
+  bfd *abfd = of->obfd;
+  const char *name = bfd_get_filename (abfd);
+  struct partial_symtab *pst = create_partial_symtab (name, cfp, of);
+
+  ccx.fp = cfp;
+  ccx.of = of;
+
+  if (ctf_type_iter (cfp, ctf_psymtab_type_cb, &ccx) == CTF_ERR)
+    complaint (_("ctf_type_iter scan_partial_symbols failed - %s"),
+	       ctf_errmsg (ctf_errno (cfp)));
+
+  if (ctf_variable_iter (cfp, ctf_psymtab_var_cb, &ccx) == CTF_ERR)
+    complaint (_("ctf_variable_iter scan_partial_symbols failed - %s"),
+	       ctf_errmsg (ctf_errno (cfp)));
+
+  /* Scan CTF object and function sections which correspond to each
+     STT_FUNC or STT_OBJECT entry in the symbol table,
+     pick up what init_symtab has done.  */
+  for (unsigned long idx = 0; ; idx++)
+    {
+      ctf_id_t tid;
+      if ((tid = ctf_lookup_by_symbol (cfp, idx)) == CTF_ERR)
+	{
+	if (ctf_errno (cfp) == EINVAL || ctf_errno (cfp) == ECTF_NOSYMTAB)
+	  break;	// Done, reach end of the section.
+	else
+	  continue;
+	}
+      gdb::unique_xmalloc_ptr<char> tname (ctf_type_aname_raw (cfp, tid));
+      uint32_t kind = ctf_type_kind (cfp, tid);
+      address_class aclass;
+      domain_enum tdomain;
+      switch (kind)
+	{
+	  case CTF_K_STRUCT:
+	  case CTF_K_UNION:
+	  case CTF_K_ENUM:
+	    tdomain = STRUCT_DOMAIN;
+	    break;
+	  default:
+	    tdomain = VAR_DOMAIN;
+	    break;
+	}
+
+      if (kind == CTF_K_FUNCTION)
+	aclass = LOC_STATIC;
+      else if (kind == CTF_K_CONST)
+	aclass = LOC_CONST;
+      else
+	aclass = LOC_TYPEDEF;
+
+      add_psymbol_to_list (tname.get (), strlen (tname.get ()), true,
+			   tdomain, aclass, -1,
+			   psymbol_placement::STATIC,
+			   0, language_c, of);
+    }
+
+  end_psymtab_common (of, pst);
+}
+
+/* Read CTF debugging information from a BFD section.  This is
+   called from elfread.c.  It does a quick pass through the
+   .ctf section to set up the partial symbol table.  */
+
+void
+elfctf_build_psymtabs (struct objfile *of)
+{
+  bfd *abfd = of->obfd;
+  int err;
+
+  ctf_archive_t *arc = ctf_bfdopen (abfd, &err);
+  if (arc == NULL)
+    error (_("ctf_bfdopen failed on %s - %s"),
+	   bfd_get_filename (abfd), ctf_errmsg (err));
+
+  ctf_file_t *fp = ctf_arc_open_by_name (arc, NULL, &err);
+  if (fp == NULL)
+    error (_("ctf_arc_open_by_name failed on %s - %s"),
+	   bfd_get_filename (abfd), ctf_errmsg (err));
+  set_objfile_data (of, ctf_file_key, fp);
+
+  scan_partial_symbols (fp, of);
+}
+
+void
+_initialize_ctfread (void)
+{
+  ctf_file_key
+    = register_objfile_data_with_cleanup (NULL, ctf_close_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.3.50.20191001/gdb/ctfread.h ./gdb/ctfread.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ctfread.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/ctfread.h	2019-10-08 01:49:30.000000000 +0000
@@ -0,0 +1,25 @@
+/* CTF debugging format support for GDB.
+
+   Copyright (C) 2019 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/>.  */
+
+#ifndef CTFREAD_H
+#define CTFREAD_H
+
+extern void elfctf_build_psymtabs (struct objfile *objfile);
+
+#endif /* CTFREAD_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/c-typeprint.c ./gdb/c-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/c-typeprint.c	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/c-typeprint.c	2019-10-08 01:49:30.000000000 +0000
@@ -1116,10 +1116,12 @@ c_type_print_base_struct_union (struct t
 	{
 	  if (TYPE_STUB (type))
 	    fprintfi_filtered (level + 4, stream,
-			       _("<incomplete type>\n"));
+			       _("%p[<incomplete type>%p]\n"),
+			       metadata_style.style ().ptr (), nullptr);
 	  else
 	    fprintfi_filtered (level + 4, stream,
-			       _("<no data fields>\n"));
+			       _("%p[<no data fields>%p]\n"),
+			       metadata_style.style ().ptr (), nullptr);
 	}
 
       /* Start off with no specific section type, so we can print
@@ -1277,7 +1279,8 @@ c_type_print_base_struct_union (struct t
 		{
 		  /* Keep GDB from crashing here.  */
 		  fprintf_filtered (stream,
-				    _("<undefined type> %s;\n"),
+				    _("%p[<undefined type>%p] %s;\n"),
+				    metadata_style.style ().ptr (), nullptr,
 				    TYPE_FN_FIELD_PHYSNAME (f, j));
 		  break;
 		}
@@ -1325,9 +1328,9 @@ c_type_print_base_struct_union (struct t
 						 &local_flags);
 		    }
 		  else
-		    fprintf_filtered (stream,
-				      _("<badly mangled name '%s'>"),
-				      mangled_name);
+		    fprintf_styled (stream, metadata_style.style (),
+				    _("<badly mangled name '%s'>"),
+				    mangled_name);
 		}
 	      else
 		{
@@ -1465,7 +1468,7 @@ c_type_print_base_1 (struct type *type, 
 
   if (type == NULL)
     {
-      fputs_filtered (_("<type unknown>"), stream);
+      fputs_styled (_("<type unknown>"), metadata_style.style (), stream);
       return;
     }
 
@@ -1511,7 +1514,8 @@ c_type_print_base_1 (struct type *type, 
 	 couldn't resolve TYPE_TARGET_TYPE.  Not much we can do.  */
       gdb_assert (TYPE_NAME (type) == NULL);
       gdb_assert (TYPE_TARGET_TYPE (type) == NULL);
-      fprintf_filtered (stream, _("<unnamed typedef>"));
+      fprintf_styled (stream, metadata_style.style (),
+		      _("<unnamed typedef>"));
       break;
 
     case TYPE_CODE_FUNC:
@@ -1622,10 +1626,12 @@ c_type_print_base_1 (struct type *type, 
 	      {
 		if (TYPE_STUB (type))
 		  fprintfi_filtered (level + 4, stream,
-				     _("<incomplete type>\n"));
+				     _("%p[<incomplete type>%p]\n"),
+				     metadata_style.style ().ptr (), nullptr);
 		else
 		  fprintfi_filtered (level + 4, stream,
-				     _("<no data fields>\n"));
+				     _("%p[<no data fields>%p]\n"),
+				     metadata_style.style ().ptr (), nullptr);
 	      }
 	    len = TYPE_NFIELDS (type);
 	    for (i = 0; i < len; i++)
@@ -1668,7 +1674,7 @@ c_type_print_base_1 (struct type *type, 
 
     case TYPE_CODE_RANGE:
       /* This should not occur.  */
-      fprintf_filtered (stream, _("<range type>"));
+      fprintf_styled (stream, metadata_style.style (), _("<range type>"));
       break;
 
     case TYPE_CODE_NAMESPACE:
@@ -1690,8 +1696,8 @@ c_type_print_base_1 (struct type *type, 
 	{
 	  /* At least for dump_symtab, it is important that this not
 	     be an error ().  */
-	  fprintf_filtered (stream, _("<invalid type code %d>"),
-			    TYPE_CODE (type));
+	  fprintf_styled (stream, metadata_style.style (),
+			  _("<invalid type code %d>"), TYPE_CODE (type));
 	}
       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.3.50.20191001/gdb/disasm.c ./gdb/disasm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/disasm.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/disasm.c	2019-10-08 01:49:30.000000000 +0000
@@ -31,6 +31,7 @@
 #include <algorithm>
 #include "gdbsupport/gdb_optional.h"
 #include "valprint.h"
+#include "cli/cli-style.h"
 
 /* Disassemble functions.
    FIXME: We should get rid of all the duplicate code in gdb that does
@@ -245,7 +246,7 @@ gdb_pretty_print_disassembler::pretty_pr
 	m_uiout->text (" <");
 	if (!omit_fname)
 	  m_uiout->field_string ("func-name", name.c_str (),
-				 ui_out_style_kind::FUNCTION);
+				 function_name_style.style ());
 	/* For negative offsets, avoid displaying them as +-N; the sign of
 	   the offset takes the place of the "+" here.  */
 	if (offset >= 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.3.50.20191001/gdb/doc/ChangeLog ./gdb/doc/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/ChangeLog	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/doc/ChangeLog	2019-10-08 01:49:30.000000000 +0000
@@ -1,3 +1,18 @@
+2019-10-07  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.texinfo: Fix typo.
+	* guile.texi: Same.
+	* python.texi: Same.
+
+2019-10-03  Bernhard Heckel  <bernhard.heckel@intel.com>
+
+	* doc/gdb.texinfo (Fortran Operators): Describe scope operator.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* gdb.texinfo (Set Catchpoints, Convenience Vars): Document
+	$_ada_exception.
+
 2019-09-20  Ulrich Weigand  <uweigand@de.ibm.com>
 
 	* doc/gdb.texinfo (Remote Configuration): Remove documentation for
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gcore.1 ./gdb/doc/gcore.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gcore.1	2019-10-01 01:53:04.000000000 +0000
+++ ./gdb/doc/gcore.1	2019-10-08 01:53:37.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2019-10-01" "gdb-8.3.50.20191001-git" "GNU Development Tools"
+.TH GCORE 1 "2019-10-08" "gdb-9.0.50.20191008-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.3.50.20191001/gdb/doc/gdb.1 ./gdb/doc/gdb.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.1	2019-10-01 01:53:04.000000000 +0000
+++ ./gdb/doc/gdb.1	2019-10-08 01:53:36.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2019-10-01" "gdb-8.3.50.20191001-git" "GNU Development Tools"
+.TH GDB 1 "2019-10-08" "gdb-9.0.50.20191008-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.3.50.20191001/gdb/doc/gdb-add-index.1 ./gdb/doc/gdb-add-index.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb-add-index.1	2019-10-01 01:53:04.000000000 +0000
+++ ./gdb/doc/gdb-add-index.1	2019-10-08 01:53:37.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB-ADD-INDEX 1"
-.TH GDB-ADD-INDEX 1 "2019-10-01" "gdb-8.3.50.20191001-git" "GNU Development Tools"
+.TH GDB-ADD-INDEX 1 "2019-10-08" "gdb-9.0.50.20191008-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.3.50.20191001/gdb/doc/gdb.info ./gdb/doc/gdb.info
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info	2019-10-01 01:53:01.000000000 +0000
+++ ./gdb/doc/gdb.info	2019-10-08 01:53:33.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.3.50.20191001-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -39,13 +39,13 @@ developing GNU and promoting software fr
 
 Indirect:
 gdb.info-1: 1716
-gdb.info-2: 305398
-gdb.info-3: 603988
-gdb.info-4: 902552
-gdb.info-5: 1201774
-gdb.info-6: 1511566
-gdb.info-7: 1807309
-gdb.info-8: 2195964
+gdb.info-2: 305870
+gdb.info-3: 601844
+gdb.info-4: 903406
+gdb.info-5: 1202630
+gdb.info-6: 1512422
+gdb.info-7: 1808165
+gdb.info-8: 2196820
 
 Tag Table:
 (Indirect)
@@ -109,712 +109,712 @@ Node: Breakpoints135738
 Node: Set Breaks138995
 Node: Set Watchpoints157954
 Node: Set Catchpoints167336
-Ref: catch syscall172362
-Node: Delete Breaks180127
-Node: Disabling182063
-Node: Conditions185443
-Node: Break Commands191090
-Node: Dynamic Printf194310
-Node: Save Breakpoints198614
-Node: Static Probe Points199789
-Ref: Static Probe Points-Footnote-1203967
-Ref: Static Probe Points-Footnote-2204127
-Node: Error in Breakpoints204267
-Node: Breakpoint-related Warnings205003
-Node: Continuing and Stepping207330
-Ref: range stepping217110
-Node: Skipping Over Functions and Files218190
-Node: Signals224039
-Ref: stepping and signal handlers228473
-Ref: stepping into signal handlers229269
-Ref: extra signal information230502
-Node: Thread Stops232968
-Node: All-Stop Mode234067
-Node: Non-Stop Mode238034
-Node: Background Execution241447
-Node: Thread-Specific Breakpoints243663
-Node: Interrupted System Calls245679
-Node: Observer Mode247193
-Node: Reverse Execution250629
-Ref: Reverse Execution-Footnote-1255547
-Ref: Reverse Execution-Footnote-2256174
-Node: Process Record and Replay256224
-Node: Stack277612
-Node: Frames279229
-Node: Backtrace281567
-Ref: backtrace-command281904
-Ref: set backtrace past-main288351
-Ref: set backtrace past-entry288679
-Ref: set backtrace limit289246
-Ref: Backtrace-Footnote-1289870
-Node: Selection290058
-Node: Frame Info294841
-Node: Frame Apply299263
-Ref: frame apply299449
-Node: Frame Filter Management305398
-Ref: disable frame-filter all305926
-Node: Source310234
-Node: List311300
-Node: Specify Location314002
-Node: Linespec Locations314623
-Node: Explicit Locations318022
-Node: Address Locations321234
-Node: Edit322985
-Ref: Edit-Footnote-1324461
-Node: Search324696
-Node: Source Path325504
-Ref: set substitute-path334444
-Node: Machine Code336664
-Node: Data347008
-Ref: print options347847
-Node: Expressions357651
-Node: Ambiguous Expressions359754
-Node: Variables362984
-Node: Arrays369582
-Node: Output Formats372113
-Ref: Output Formats-Footnote-1375486
-Node: Memory375643
-Ref: addressable memory unit381828
-Node: Auto Display383322
-Node: Print Settings387864
-Ref: set print address388162
-Ref: set print symbol391824
-Ref: set print array392312
-Ref: set print array-indexes392640
-Ref: set print elements393126
-Ref: set print frame-arguments393791
-Ref: set print raw-frame-arguments395960
-Ref: set print entry-values396376
-Ref: set print frame-info400755
-Ref: set print repeats402421
-Ref: set print max-depth403063
-Ref: set print null-stop404755
-Ref: set print pretty405079
-Ref: set print union406271
-Ref: set print object408577
-Ref: set print static-members409371
-Ref: set print vtbl410048
-Node: Pretty Printing410432
-Node: Pretty-Printer Introduction410946
-Node: Pretty-Printer Example412701
-Node: Pretty-Printer Commands413479
-Node: Value History415903
-Node: Convenience Vars418325
-Node: Convenience Funs425774
-Node: Registers431583
-Ref: standard registers432790
-Ref: Registers-Footnote-1437741
-Node: Floating Point Hardware438136
-Node: Vector Unit438668
-Node: OS Information439055
-Ref: linux info os infotypes441079
-Node: Memory Region Attributes445670
-Node: Dump/Restore Files450334
-Node: Core File Generation452737
-Ref: set use-coredump-filter454297
-Ref: set dump-excluded-mappings455745
-Node: Character Sets456027
-Node: Caching Target Data462392
-Ref: Caching Target Data-Footnote-1465120
-Node: Searching Memory465358
-Node: Value Sizes468501
-Node: Optimized Code470154
-Node: Inline Functions471831
-Node: Tail Call Frames474458
-Ref: set debug entry-values476595
-Node: Macros480657
-Ref: Macros-Footnote-1488233
-Node: Tracepoints488386
-Node: Set Tracepoints490448
-Node: Create and Delete Tracepoints493386
-Node: Enable and Disable Tracepoints499733
-Node: Tracepoint Passcounts500973
-Node: Tracepoint Conditions502384
-Node: Trace State Variables504078
-Node: Tracepoint Actions506273
-Node: Listing Tracepoints513056
-Node: Listing Static Tracepoint Markers514758
-Node: Starting and Stopping Trace Experiments516606
-Ref: disconnected tracing518351
-Node: Tracepoint Restrictions522771
-Node: Analyze Collected Data526540
-Node: tfind527846
-Node: tdump532328
-Node: save tracepoints534843
-Node: Tracepoint Variables535339
-Node: Trace Files536467
-Node: Overlays538843
-Node: How Overlays Work539563
-Ref: A code overlay542118
-Node: Overlay Commands545531
-Node: Automatic Overlay Debugging549713
-Node: Overlay Sample Program551852
-Node: Languages553589
-Node: Setting554752
-Node: Filenames556453
-Node: Manually557264
-Node: Automatically558473
-Node: Show559534
-Ref: show language559822
-Node: Checks560856
-Node: Type Checking561861
-Node: Range Checking563690
-Node: Supported Languages566091
-Node: C567428
-Node: C Operators568392
-Node: C Constants572731
-Node: C Plus Plus Expressions575610
-Node: C Defaults578970
-Node: C Checks579638
-Node: Debugging C580198
-Node: Debugging C Plus Plus580682
-Node: Decimal Floating Point585569
-Node: D586839
-Node: Go587097
-Node: Objective-C588191
-Node: Method Names in Commands588654
-Node: The Print Command with Objective-C590345
-Node: OpenCL C590996
-Node: OpenCL C Datatypes591271
-Node: OpenCL C Expressions591646
-Node: OpenCL C Operators592003
-Node: Fortran592235
-Node: Fortran Operators592956
-Node: Fortran Defaults593812
-Node: Special Fortran Commands594197
-Node: Pascal594703
-Node: Rust595214
-Node: Modula-2598301
-Node: M2 Operators599274
-Node: Built-In Func/Proc603988
-Node: M2 Constants606902
-Node: M2 Types608503
-Node: M2 Defaults611721
-Node: Deviations612322
-Node: M2 Checks613423
-Node: M2 Scope614240
-Node: GDB/M2615264
-Node: Ada616177
-Node: Ada Mode Intro617483
-Node: Omissions from Ada618985
-Node: Additions to Ada623340
-Node: Overloading support for Ada627268
-Node: Stopping Before Main Program628908
-Node: Ada Exceptions629455
-Node: Ada Tasks630654
-Node: Ada Tasks and Core Files637146
-Node: Ravenscar Profile637993
-Node: Ada Settings639064
-Node: Ada Glitches640486
-Node: Unsupported Languages644494
-Node: Symbols645184
-Ref: quoting names645787
-Node: Altering675539
-Node: Assignment676577
-Node: Jumping679683
-Node: Signaling681757
-Node: Returning684686
-Node: Calling688037
-Node: Patching693522
-Node: Compiling and Injecting Code694636
-Ref: set debug compile698263
-Ref: set debug compile-cplus-types698513
-Node: GDB Files708534
-Node: Files709323
-Ref: Shared Libraries723040
-Ref: Files-Footnote-1735238
-Node: File Caching735367
-Node: Separate Debug Files736501
-Ref: debug-file-directory739854
-Node: MiniDebugInfo748469
-Node: Index Files750920
-Node: Symbol Errors755091
-Node: Data Files758707
-Node: Targets759663
-Node: Active Targets761143
-Node: Target Commands762217
-Ref: load766606
-Ref: flash-erase767799
-Node: Byte Order767859
-Node: Remote Debugging769298
-Node: Connecting770560
-Ref: --multi Option in Types of Remote Connnections772786
-Ref: Attaching in Types of Remote Connections774201
-Ref: Host and target files774702
-Node: File Transfer783324
-Node: Server784263
-Ref: Running gdbserver785839
-Ref: Attaching to a program788057
-Ref: Other Command-Line Arguments for gdbserver790582
-Ref: Monitor Commands for gdbserver793901
-Ref: Server-Footnote-1799277
-Node: Remote Configuration799397
-Ref: set remotebreak800657
-Ref: set remote hardware-watchpoint-limit802119
-Ref: set remote hardware-breakpoint-limit802119
-Ref: set remote hardware-watchpoint-length-limit802621
-Ref: set remote exec-file803076
-Node: Remote Stub814881
-Node: Stub Contents817776
-Node: Bootstrapping819883
-Node: Debug Session823698
-Node: Configurations825739
-Node: Native826508
-Node: BSD libkvm Interface827077
-Node: Process Information828129
-Node: DJGPP Native833677
-Node: Cygwin Native840231
-Node: Non-debug DLL Symbols845152
-Node: Hurd Native849391
-Node: Darwin854647
-Node: FreeBSD855924
-Node: Embedded OS856644
-Node: Embedded Processors857055
-Node: ARC858045
-Node: ARM858592
-Node: M68K861139
-Node: MicroBlaze861312
-Node: MIPS Embedded862761
-Node: OpenRISC 1000864058
-Node: PowerPC Embedded864964
-Node: AVR868193
-Node: CRIS868565
-Node: Super-H869541
-Node: Architectures870600
-Node: AArch64870996
-Node: i386872569
-Ref: i386-Footnote-1876779
-Node: Alpha876865
-Node: MIPS876998
-Node: HPPA880892
-Node: PowerPC881414
-Node: Nios II882150
-Node: Sparc64882555
-Node: S12Z884923
-Node: Controlling GDB885216
-Node: Prompt886159
-Node: Editing887877
-Node: Command History888919
-Node: Screen Size893225
-Node: Output Styling895241
-Node: Numbers898854
-Node: ABI902552
-Node: Auto-loading905725
-Ref: set auto-load off907100
-Ref: show auto-load907736
-Ref: info auto-load908515
-Node: Init File in the Current Directory911482
-Ref: set auto-load local-gdbinit912057
-Ref: show auto-load local-gdbinit912239
-Ref: info auto-load local-gdbinit912403
-Node: libthread_db.so.1 file912551
-Ref: set auto-load libthread-db913490
-Ref: show auto-load libthread-db913621
-Ref: info auto-load libthread-db913758
-Node: Auto-loading safe path913942
-Ref: set auto-load safe-path915248
-Ref: show auto-load safe-path915987
-Ref: add-auto-load-safe-path916110
-Node: Auto-loading verbose mode919012
-Ref: set debug auto-load920175
-Ref: show debug auto-load920276
-Node: Messages/Warnings920398
-Ref: confirmation requests921832
-Node: Debugging Output923036
-Node: Other Misc Settings932856
-Node: Extending GDB933880
-Node: Sequences935733
-Node: Define936394
-Node: Hooks940474
-Node: Command Files942840
-Node: Output947913
-Ref: eval952715
-Node: Auto-loading sequences952877
-Ref: set auto-load gdb-scripts953372
-Ref: show auto-load gdb-scripts953496
-Ref: info auto-load gdb-scripts953626
-Node: Python953857
-Node: Python Commands955143
-Node: Python API957257
-Node: Basic Python959862
-Ref: prompt_hook970899
-Node: Exception Handling971497
-Node: Values From Inferior974399
-Node: Types In Python991734
-Node: Pretty Printing API1001726
-Node: Selecting Pretty-Printers1006169
-Node: Writing a Pretty-Printer1008896
-Node: Type Printing API1014218
-Node: Frame Filter API1016834
-Node: Frame Decorator API1024146
-Ref: frame_args1027887
-Node: Writing a Frame Filter1031217
-Node: Unwinding Frames in Python1042691
-Node: Xmethods In Python1050329
-Node: Xmethod API1053225
-Node: Writing an Xmethod1057037
-Node: Inferiors In Python1062872
-Node: Events In Python1066631
-Node: Threads In Python1075839
-Node: Recordings In Python1079069
-Node: Commands In Python1086403
-Node: Parameters In Python1095816
-Node: Functions In Python1102754
-Node: Progspaces In Python1104971
-Node: Objfiles In Python1109876
-Node: Frames In Python1116538
-Node: Blocks In Python1123544
-Node: Symbols In Python1128211
-Node: Symbol Tables In Python1136238
-Node: Line Tables In Python1139459
-Node: Breakpoints In Python1142296
-Ref: python_breakpoint_thread1148619
-Node: Finish Breakpoints in Python1151652
-Node: Lazy Strings In Python1153758
-Node: Architectures In Python1155986
-Node: Python Auto-loading1158175
-Ref: set auto-load python-scripts1158804
-Ref: show auto-load python-scripts1158904
-Ref: info auto-load python-scripts1159010
-Node: Python modules1160144
-Node: gdb.printing1160530
-Node: gdb.types1161957
-Node: gdb.prompt1164969
-Node: Guile1166618
-Node: Guile Introduction1167277
-Node: Guile Commands1168148
-Node: Guile API1170002
-Node: Basic Guile1171999
-Node: Guile Configuration1177681
-Node: GDB Scheme Data Types1178657
-Node: Guile Exception Handling1180489
-Node: Values From Inferior In Guile1184523
-Node: Arithmetic In Guile1201774
-Node: Types In Guile1203405
-Ref: Fields of a type in Guile1211346
-Node: Guile Pretty Printing API1212734
-Node: Selecting Guile Pretty-Printers1218463
-Node: Writing a Guile Pretty-Printer1220839
-Node: Commands In Guile1226024
-Node: Parameters In Guile1236804
-Ref: Parameters In Guile-Footnote-11243685
-Node: Progspaces In Guile1243801
-Node: Objfiles In Guile1246389
-Node: Frames In Guile1248670
-Node: Blocks In Guile1255248
-Node: Symbols In Guile1260056
-Node: Symbol Tables In Guile1267391
-Node: Breakpoints In Guile1270354
-Node: Lazy Strings In Guile1280615
-Node: Architectures In Guile1282906
-Node: Disassembly In Guile1287213
-Node: I/O Ports in Guile1290415
-Node: Memory Ports in Guile1290971
-Node: Iterators In Guile1294237
-Node: Guile Auto-loading1298526
-Ref: set auto-load guile-scripts1299149
-Ref: show auto-load guile-scripts1299247
-Ref: info auto-load guile-scripts1299351
-Node: Guile Modules1300310
-Node: Guile Printing Module1300632
-Node: Guile Types Module1301451
-Node: Auto-loading extensions1302744
-Node: objfile-gdbdotext file1303942
-Ref: set auto-load scripts-directory1305378
-Ref: with-auto-load-dir1305754
-Ref: show auto-load scripts-directory1306572
-Ref: add-auto-load-scripts-directory1306652
-Node: dotdebug_gdb_scripts section1307128
-Node: Which flavor to choose?1310878
-Node: Multiple Extension Languages1312699
-Node: Aliases1313763
-Node: Interpreters1316628
-Node: TUI1319779
-Node: TUI Overview1320777
-Node: TUI Keys1323210
-Node: TUI Single Key Mode1325514
-Node: TUI Commands1326697
-Node: TUI Configuration1330464
-Node: Emacs1331953
-Node: GDB/MI1337390
-Node: GDB/MI General Design1339364
-Node: Context management1341884
-Node: Asynchronous and non-stop modes1345671
-Node: Thread groups1348645
-Node: GDB/MI Command Syntax1350923
-Node: GDB/MI Input Syntax1351166
-Node: GDB/MI Output Syntax1352716
-Node: GDB/MI Compatibility with CLI1356301
-Node: GDB/MI Development and Front Ends1357038
-Node: GDB/MI Output Records1360557
-Node: GDB/MI Result Records1360963
-Node: GDB/MI Stream Records1362313
-Node: GDB/MI Async Records1363578
-Node: GDB/MI Breakpoint Information1374015
-Node: GDB/MI Frame Information1379650
-Node: GDB/MI Thread Information1380932
-Node: GDB/MI Ada Exception Information1382402
-Node: GDB/MI Simple Examples1382952
-Node: GDB/MI Command Description Format1385188
-Node: GDB/MI Breakpoint Commands1386068
-Ref: -break-insert1393176
-Node: GDB/MI Catchpoint Commands1406750
-Node: Shared Library GDB/MI Catchpoint Commands1407163
-Node: Ada Exception GDB/MI Catchpoint Commands1408821
-Node: C++ Exception GDB/MI Catchpoint Commands1412371
-Node: GDB/MI Program Context1416387
-Node: GDB/MI Thread Commands1420655
-Node: GDB/MI Ada Tasking Commands1423956
-Node: GDB/MI Program Execution1426228
-Node: GDB/MI Stack Manipulation1438495
-Ref: -stack-list-arguments1440419
-Ref: -stack-list-frames1444249
-Ref: -stack-list-locals1448578
-Ref: -stack-list-variables1450068
-Node: GDB/MI Variable Objects1451602
-Ref: -var-set-format1461567
-Ref: -var-list-children1462948
-Ref: -var-update1471756
-Ref: -var-set-frozen1474754
-Ref: -var-set-update-range1475551
-Ref: -var-set-visualizer1476080
-Node: GDB/MI Data Manipulation1477570
-Node: GDB/MI Tracepoint Commands1498059
-Node: GDB/MI Symbol Query1511566
-Node: GDB/MI File Commands1512255
-Node: GDB/MI Target Manipulation1516689
-Node: GDB/MI File Transfer Commands1523347
-Node: GDB/MI Ada Exceptions Commands1524670
-Node: GDB/MI Support Commands1526023
-Node: GDB/MI Miscellaneous Commands1530742
-Ref: -interpreter-exec1541095
-Node: Annotations1545067
-Node: Annotations Overview1545986
-Node: Server Prefix1548449
-Node: Prompting1549183
-Node: Errors1550700
-Node: Invalidation1551596
-Node: Annotations for Running1552075
-Node: Source Annotations1553609
-Node: JIT Interface1554538
-Node: Declarations1556337
-Node: Registering Code1557724
-Node: Unregistering Code1558696
-Node: Custom Debug Info1559323
-Node: Using JIT Debug Info Readers1560619
-Node: Writing JIT Debug Info Readers1561631
-Node: In-Process Agent1563826
-Ref: Control Agent1565769
-Node: In-Process Agent Protocol1566636
-Node: IPA Protocol Objects1567427
-Ref: agent expression object1568425
-Ref: tracepoint action object1568630
-Ref: tracepoint object1568710
-Node: IPA Protocol Commands1571240
-Node: GDB Bugs1572710
-Node: Bug Criteria1573442
-Node: Bug Reporting1574319
-Node: Command Line Editing1582148
-Node: Introduction and Notation1582800
-Node: Readline Interaction1584421
-Node: Readline Bare Essentials1585610
-Node: Readline Movement Commands1587391
-Node: Readline Killing Commands1588349
-Node: Readline Arguments1590265
-Node: Searching1591307
-Node: Readline Init File1593457
-Node: Readline Init File Syntax1594608
-Node: Conditional Init Constructs1614764
-Node: Sample Init File1618958
-Node: Bindable Readline Commands1622073
-Node: Commands For Moving1623125
-Node: Commands For History1624689
-Node: Commands For Text1628951
-Node: Commands For Killing1632390
-Node: Numeric Arguments1634554
-Node: Commands For Completion1635691
-Node: Keyboard Macros1637657
-Node: Miscellaneous Commands1638342
-Node: Readline vi Mode1642261
-Node: Using History Interactively1643171
-Node: History Interaction1643686
-Node: Event Designators1645582
-Node: Word Designators1646719
-Node: Modifiers1648354
-Node: In Memoriam1649575
-Node: Formatting Documentation1650458
-Ref: Formatting Documentation-Footnote-11653834
-Node: Installing GDB1653930
-Node: Requirements1654502
-Ref: Expat1655203
-Ref: MPFR1658496
-Node: Running Configure1660117
-Node: Separate Objdir1662988
-Node: Config Names1665962
-Node: Configure Options1667439
-Node: System-wide configuration1676405
-Node: System-wide Configuration Scripts1678365
-Node: Maintenance Commands1679549
-Ref: maint info breakpoints1681204
-Ref: maint check libthread-db1689669
-Node: Remote Protocol1705156
-Node: Overview1705848
-Ref: Binary Data1708393
-Node: Packets1710918
-Ref: thread-id syntax1711818
-Ref: extended mode1713263
-Ref: ? packet1713521
-Ref: bc1714987
-Ref: bs1715197
-Ref: read registers packet1716814
-Ref: cycle step packet1718669
-Ref: write register packet1721380
-Ref: step with signal packet1722359
-Ref: vCont packet1723835
-Ref: vCtrlC packet1727068
-Ref: vKill packet1729486
-Ref: X packet1731019
-Ref: insert breakpoint or watchpoint packet1731388
-Node: Stop Reply Packets1735714
-Ref: swbreak stop reason1738965
-Ref: thread create event1742562
-Ref: thread exit event1743765
-Node: General Query Packets1745974
-Ref: qCRC packet1748804
-Ref: QEnvironmentHexEncoded1751957
-Ref: QEnvironmentUnset1753187
-Ref: QEnvironmentReset1754131
-Ref: QSetWorkingDir packet1755075
-Ref: QNonStop1761526
-Ref: QCatchSyscalls1762202
-Ref: QPassSignals1763739
-Ref: QProgramSignals1764946
-Ref: QThreadEvents1766513
-Ref: qSearch memory1768531
-Ref: QStartNoAckMode1769039
-Ref: qSupported1769570
-Ref: multiprocess extensions1785090
-Ref: install tracepoint in tracing1787120
-Ref: qXfer read1791643
-Ref: qXfer auxiliary vector read1793250
-Ref: qXfer btrace read1793598
-Ref: qXfer btrace-conf read1794663
-Ref: qXfer executable filename read1795014
-Ref: qXfer target description read1795629
-Ref: qXfer library list read1796063
-Ref: qXfer svr4 library list read1796719
-Ref: qXfer memory map read1798572
-Ref: qXfer sdata read1798959
-Ref: qXfer siginfo read1799425
-Ref: qXfer threads read1799821
-Ref: qXfer traceframe info read1800224
-Ref: qXfer unwind info block1800642
-Ref: qXfer fdpic loadmap read1800876
-Ref: qXfer osdata read1801292
-Ref: qXfer write1801446
-Ref: qXfer siginfo write1802538
-Ref: General Query Packets-Footnote-11805266
-Node: Architecture-Specific Protocol Details1807309
-Node: ARM-Specific Protocol Details1807818
-Node: ARM Breakpoint Kinds1808066
-Node: MIPS-Specific Protocol Details1808397
-Node: MIPS Register packet Format1808680
-Node: MIPS Breakpoint Kinds1809607
-Node: Tracepoint Packets1810025
-Ref: QTEnable1819339
-Ref: QTDisable1819535
-Ref: qTfSTM1825072
-Ref: qTsSTM1825072
-Ref: qTSTMat1826149
-Ref: QTBuffer-size1827300
-Node: Host I/O Packets1829273
-Node: Interrupts1834853
-Ref: interrupting remote targets1834997
-Node: Notification Packets1837165
-Node: Remote Non-Stop1842590
-Node: Packet Acknowledgment1845706
-Node: Examples1847821
-Node: File-I/O Remote Protocol Extension1848415
-Node: File-I/O Overview1848877
-Node: Protocol Basics1851076
-Node: The F Request Packet1853305
-Node: The F Reply Packet1854206
-Node: The Ctrl-C Message1855124
-Node: Console I/O1856750
-Node: List of Supported Calls1857966
-Node: open1858328
-Node: close1860836
-Node: read1861219
-Node: write1861828
-Node: lseek1862599
-Node: rename1863483
-Node: unlink1864890
-Node: stat/fstat1865837
-Node: gettimeofday1866730
-Node: isatty1867166
-Node: system1867762
-Node: Protocol-specific Representation of Datatypes1869304
-Node: Integral Datatypes1869681
-Node: Pointer Values1870488
-Node: Memory Transfer1871192
-Node: struct stat1871812
-Node: struct timeval1874014
-Node: Constants1874531
-Node: Open Flags1874980
-Node: mode_t Values1875321
-Node: Errno Values1875813
-Node: Lseek Flags1876623
-Node: Limits1876808
-Node: File-I/O Examples1877168
-Node: Library List Format1878256
-Node: Library List Format for SVR4 Targets1881038
-Node: Memory Map Format1883505
-Node: Thread List Format1886029
-Node: Traceframe Info Format1887033
-Node: Branch Trace Format1888719
-Node: Branch Trace Configuration Format1890419
-Node: Agent Expressions1891593
-Node: General Bytecode Design1894414
-Node: Bytecode Descriptions1899208
-Node: Using Agent Expressions1912675
-Node: Varying Target Capabilities1914652
-Node: Rationale1915813
-Node: Target Descriptions1923202
-Node: Retrieving Descriptions1925145
-Node: Target Description Format1926230
-Node: Predefined Target Types1936105
-Node: Enum Target Types1937550
-Node: Standard Target Features1938545
-Node: AArch64 Features1940545
-Node: ARC Features1941251
-Node: ARM Features1943312
-Node: i386 Features1944826
-Node: MicroBlaze Features1947041
-Node: MIPS Features1947618
-Node: M68K Features1948809
-Node: NDS32 Features1949470
-Node: Nios II Features1950494
-Node: OpenRISC 1000 Features1950899
-Node: PowerPC Features1951265
-Node: RISC-V Features1955235
-Node: RX Features1956925
-Node: S/390 and System z Features1957287
-Node: Sparc Features1959427
-Node: TIC6x Features1960332
-Node: Operating System Information1960881
-Node: Process list1961716
-Node: Trace File Format1962779
-Node: Index Section Format1965993
-Node: Man Pages1973919
-Node: gdb man1974389
-Node: gdbserver man1980363
-Node: gcore man1987760
-Node: gdbinit man1988882
-Node: gdb-add-index man1989791
-Ref: gdb-add-index1989900
-Node: Copying1990774
-Node: GNU Free Documentation License2028335
-Node: Concept Index2053482
-Node: Command and Variable Index2195964
+Ref: catch syscall172834
+Node: Delete Breaks180599
+Node: Disabling182535
+Node: Conditions185915
+Node: Break Commands191562
+Node: Dynamic Printf194782
+Node: Save Breakpoints199086
+Node: Static Probe Points200261
+Ref: Static Probe Points-Footnote-1204439
+Ref: Static Probe Points-Footnote-2204599
+Node: Error in Breakpoints204739
+Node: Breakpoint-related Warnings205475
+Node: Continuing and Stepping207802
+Ref: range stepping217582
+Node: Skipping Over Functions and Files218662
+Node: Signals224511
+Ref: stepping and signal handlers228945
+Ref: stepping into signal handlers229741
+Ref: extra signal information230974
+Node: Thread Stops233440
+Node: All-Stop Mode234539
+Node: Non-Stop Mode238506
+Node: Background Execution241919
+Node: Thread-Specific Breakpoints244135
+Node: Interrupted System Calls246151
+Node: Observer Mode247665
+Node: Reverse Execution251101
+Ref: Reverse Execution-Footnote-1256019
+Ref: Reverse Execution-Footnote-2256646
+Node: Process Record and Replay256696
+Node: Stack278084
+Node: Frames279701
+Node: Backtrace282039
+Ref: backtrace-command282376
+Ref: set backtrace past-main288823
+Ref: set backtrace past-entry289151
+Ref: set backtrace limit289718
+Ref: Backtrace-Footnote-1290342
+Node: Selection290530
+Node: Frame Info295313
+Node: Frame Apply299735
+Ref: frame apply299921
+Node: Frame Filter Management305870
+Ref: disable frame-filter all306398
+Node: Source310706
+Node: List311772
+Node: Specify Location314474
+Node: Linespec Locations315095
+Node: Explicit Locations318494
+Node: Address Locations321706
+Node: Edit323457
+Ref: Edit-Footnote-1324933
+Node: Search325168
+Node: Source Path325976
+Ref: set substitute-path334916
+Node: Machine Code337136
+Node: Data347480
+Ref: print options348319
+Node: Expressions358123
+Node: Ambiguous Expressions360226
+Node: Variables363456
+Node: Arrays370054
+Node: Output Formats372585
+Ref: Output Formats-Footnote-1375958
+Node: Memory376115
+Ref: addressable memory unit382300
+Node: Auto Display383794
+Node: Print Settings388336
+Ref: set print address388634
+Ref: set print symbol392296
+Ref: set print array392784
+Ref: set print array-indexes393112
+Ref: set print elements393598
+Ref: set print frame-arguments394263
+Ref: set print raw-frame-arguments396432
+Ref: set print entry-values396848
+Ref: set print frame-info401227
+Ref: set print repeats402893
+Ref: set print max-depth403535
+Ref: set print null-stop405227
+Ref: set print pretty405551
+Ref: set print union406743
+Ref: set print object409049
+Ref: set print static-members409843
+Ref: set print vtbl410520
+Node: Pretty Printing410904
+Node: Pretty-Printer Introduction411418
+Node: Pretty-Printer Example413173
+Node: Pretty-Printer Commands413951
+Node: Value History416375
+Node: Convenience Vars418797
+Node: Convenience Funs426439
+Node: Registers432248
+Ref: standard registers433455
+Ref: Registers-Footnote-1438406
+Node: Floating Point Hardware438801
+Node: Vector Unit439333
+Node: OS Information439720
+Ref: linux info os infotypes441744
+Node: Memory Region Attributes446335
+Node: Dump/Restore Files450999
+Node: Core File Generation453402
+Ref: set use-coredump-filter454962
+Ref: set dump-excluded-mappings456410
+Node: Character Sets456692
+Node: Caching Target Data463057
+Ref: Caching Target Data-Footnote-1465785
+Node: Searching Memory466023
+Node: Value Sizes469166
+Node: Optimized Code470819
+Node: Inline Functions472496
+Node: Tail Call Frames475123
+Ref: set debug entry-values477260
+Node: Macros481322
+Ref: Macros-Footnote-1488898
+Node: Tracepoints489051
+Node: Set Tracepoints491113
+Node: Create and Delete Tracepoints494051
+Node: Enable and Disable Tracepoints500398
+Node: Tracepoint Passcounts501638
+Node: Tracepoint Conditions503049
+Node: Trace State Variables504743
+Node: Tracepoint Actions506938
+Node: Listing Tracepoints513721
+Node: Listing Static Tracepoint Markers515423
+Node: Starting and Stopping Trace Experiments517271
+Ref: disconnected tracing519016
+Node: Tracepoint Restrictions523436
+Node: Analyze Collected Data527205
+Node: tfind528511
+Node: tdump532993
+Node: save tracepoints535508
+Node: Tracepoint Variables536004
+Node: Trace Files537132
+Node: Overlays539508
+Node: How Overlays Work540228
+Ref: A code overlay542783
+Node: Overlay Commands546196
+Node: Automatic Overlay Debugging550378
+Node: Overlay Sample Program552517
+Node: Languages554254
+Node: Setting555417
+Node: Filenames557118
+Node: Manually557929
+Node: Automatically559138
+Node: Show560199
+Ref: show language560487
+Node: Checks561521
+Node: Type Checking562526
+Node: Range Checking564355
+Node: Supported Languages566756
+Node: C568093
+Node: C Operators569057
+Node: C Constants573396
+Node: C Plus Plus Expressions576275
+Node: C Defaults579635
+Node: C Checks580303
+Node: Debugging C580863
+Node: Debugging C Plus Plus581347
+Node: Decimal Floating Point586234
+Node: D587504
+Node: Go587762
+Node: Objective-C588856
+Node: Method Names in Commands589319
+Node: The Print Command with Objective-C591010
+Node: OpenCL C591661
+Node: OpenCL C Datatypes591936
+Node: OpenCL C Expressions592311
+Node: OpenCL C Operators592668
+Node: Fortran592900
+Node: Fortran Operators593621
+Node: Fortran Defaults594666
+Node: Special Fortran Commands595051
+Node: Pascal595557
+Node: Rust596068
+Node: Modula-2599155
+Node: M2 Operators601844
+Node: Built-In Func/Proc604842
+Node: M2 Constants607756
+Node: M2 Types609357
+Node: M2 Defaults612575
+Node: Deviations613176
+Node: M2 Checks614277
+Node: M2 Scope615094
+Node: GDB/M2616118
+Node: Ada617031
+Node: Ada Mode Intro618337
+Node: Omissions from Ada619839
+Node: Additions to Ada624194
+Node: Overloading support for Ada628122
+Node: Stopping Before Main Program629762
+Node: Ada Exceptions630309
+Node: Ada Tasks631508
+Node: Ada Tasks and Core Files638000
+Node: Ravenscar Profile638847
+Node: Ada Settings639918
+Node: Ada Glitches641340
+Node: Unsupported Languages645348
+Node: Symbols646038
+Ref: quoting names646641
+Node: Altering676393
+Node: Assignment677431
+Node: Jumping680537
+Node: Signaling682611
+Node: Returning685540
+Node: Calling688891
+Node: Patching694376
+Node: Compiling and Injecting Code695490
+Ref: set debug compile699117
+Ref: set debug compile-cplus-types699367
+Node: GDB Files709388
+Node: Files710177
+Ref: Shared Libraries723894
+Ref: Files-Footnote-1736092
+Node: File Caching736221
+Node: Separate Debug Files737355
+Ref: debug-file-directory740708
+Node: MiniDebugInfo749323
+Node: Index Files751774
+Node: Symbol Errors755945
+Node: Data Files759561
+Node: Targets760517
+Node: Active Targets761997
+Node: Target Commands763071
+Ref: load767460
+Ref: flash-erase768653
+Node: Byte Order768713
+Node: Remote Debugging770152
+Node: Connecting771414
+Ref: --multi Option in Types of Remote Connnections773640
+Ref: Attaching in Types of Remote Connections775055
+Ref: Host and target files775556
+Node: File Transfer784178
+Node: Server785117
+Ref: Running gdbserver786693
+Ref: Attaching to a program788911
+Ref: Other Command-Line Arguments for gdbserver791436
+Ref: Monitor Commands for gdbserver794755
+Ref: Server-Footnote-1800131
+Node: Remote Configuration800251
+Ref: set remotebreak801511
+Ref: set remote hardware-watchpoint-limit802973
+Ref: set remote hardware-breakpoint-limit802973
+Ref: set remote hardware-watchpoint-length-limit803475
+Ref: set remote exec-file803930
+Node: Remote Stub815735
+Node: Stub Contents818630
+Node: Bootstrapping820737
+Node: Debug Session824552
+Node: Configurations826593
+Node: Native827362
+Node: BSD libkvm Interface827931
+Node: Process Information828983
+Node: DJGPP Native834531
+Node: Cygwin Native841085
+Node: Non-debug DLL Symbols846006
+Node: Hurd Native850245
+Node: Darwin855501
+Node: FreeBSD856778
+Node: Embedded OS857498
+Node: Embedded Processors857909
+Node: ARC858899
+Node: ARM859446
+Node: M68K861993
+Node: MicroBlaze862166
+Node: MIPS Embedded863615
+Node: OpenRISC 1000864912
+Node: PowerPC Embedded865818
+Node: AVR869047
+Node: CRIS869419
+Node: Super-H870395
+Node: Architectures871454
+Node: AArch64871850
+Node: i386873423
+Ref: i386-Footnote-1877633
+Node: Alpha877719
+Node: MIPS877852
+Node: HPPA881746
+Node: PowerPC882268
+Node: Nios II883004
+Node: Sparc64883409
+Node: S12Z885777
+Node: Controlling GDB886070
+Node: Prompt887013
+Node: Editing888731
+Node: Command History889773
+Node: Screen Size894079
+Node: Output Styling896095
+Node: Numbers899708
+Node: ABI903406
+Node: Auto-loading906579
+Ref: set auto-load off907954
+Ref: show auto-load908590
+Ref: info auto-load909369
+Node: Init File in the Current Directory912336
+Ref: set auto-load local-gdbinit912911
+Ref: show auto-load local-gdbinit913093
+Ref: info auto-load local-gdbinit913257
+Node: libthread_db.so.1 file913405
+Ref: set auto-load libthread-db914344
+Ref: show auto-load libthread-db914475
+Ref: info auto-load libthread-db914612
+Node: Auto-loading safe path914796
+Ref: set auto-load safe-path916102
+Ref: show auto-load safe-path916841
+Ref: add-auto-load-safe-path916964
+Node: Auto-loading verbose mode919866
+Ref: set debug auto-load921029
+Ref: show debug auto-load921130
+Node: Messages/Warnings921252
+Ref: confirmation requests922686
+Node: Debugging Output923890
+Node: Other Misc Settings933710
+Node: Extending GDB934734
+Node: Sequences936587
+Node: Define937248
+Node: Hooks941328
+Node: Command Files943694
+Node: Output948767
+Ref: eval953569
+Node: Auto-loading sequences953731
+Ref: set auto-load gdb-scripts954226
+Ref: show auto-load gdb-scripts954350
+Ref: info auto-load gdb-scripts954480
+Node: Python954711
+Node: Python Commands955997
+Node: Python API958111
+Node: Basic Python960716
+Ref: prompt_hook971753
+Node: Exception Handling972351
+Node: Values From Inferior975253
+Node: Types In Python992589
+Node: Pretty Printing API1002581
+Node: Selecting Pretty-Printers1007024
+Node: Writing a Pretty-Printer1009751
+Node: Type Printing API1015073
+Node: Frame Filter API1017689
+Node: Frame Decorator API1025001
+Ref: frame_args1028742
+Node: Writing a Frame Filter1032072
+Node: Unwinding Frames in Python1043546
+Node: Xmethods In Python1051184
+Node: Xmethod API1054080
+Node: Writing an Xmethod1057892
+Node: Inferiors In Python1063727
+Node: Events In Python1067486
+Node: Threads In Python1076694
+Node: Recordings In Python1079924
+Node: Commands In Python1087258
+Node: Parameters In Python1096671
+Node: Functions In Python1103609
+Node: Progspaces In Python1105826
+Node: Objfiles In Python1110731
+Node: Frames In Python1117393
+Node: Blocks In Python1124399
+Node: Symbols In Python1129066
+Node: Symbol Tables In Python1137093
+Node: Line Tables In Python1140314
+Node: Breakpoints In Python1143151
+Ref: python_breakpoint_thread1149474
+Node: Finish Breakpoints in Python1152507
+Node: Lazy Strings In Python1154613
+Node: Architectures In Python1156841
+Node: Python Auto-loading1159030
+Ref: set auto-load python-scripts1159659
+Ref: show auto-load python-scripts1159759
+Ref: info auto-load python-scripts1159865
+Node: Python modules1160999
+Node: gdb.printing1161385
+Node: gdb.types1162812
+Node: gdb.prompt1165824
+Node: Guile1167473
+Node: Guile Introduction1168132
+Node: Guile Commands1169003
+Node: Guile API1170857
+Node: Basic Guile1172854
+Node: Guile Configuration1178536
+Node: GDB Scheme Data Types1179512
+Node: Guile Exception Handling1181344
+Node: Values From Inferior In Guile1185378
+Node: Arithmetic In Guile1202630
+Node: Types In Guile1204261
+Ref: Fields of a type in Guile1212202
+Node: Guile Pretty Printing API1213590
+Node: Selecting Guile Pretty-Printers1219319
+Node: Writing a Guile Pretty-Printer1221695
+Node: Commands In Guile1226880
+Node: Parameters In Guile1237660
+Ref: Parameters In Guile-Footnote-11244541
+Node: Progspaces In Guile1244657
+Node: Objfiles In Guile1247245
+Node: Frames In Guile1249526
+Node: Blocks In Guile1256104
+Node: Symbols In Guile1260912
+Node: Symbol Tables In Guile1268247
+Node: Breakpoints In Guile1271210
+Node: Lazy Strings In Guile1281471
+Node: Architectures In Guile1283762
+Node: Disassembly In Guile1288069
+Node: I/O Ports in Guile1291271
+Node: Memory Ports in Guile1291827
+Node: Iterators In Guile1295093
+Node: Guile Auto-loading1299382
+Ref: set auto-load guile-scripts1300005
+Ref: show auto-load guile-scripts1300103
+Ref: info auto-load guile-scripts1300207
+Node: Guile Modules1301166
+Node: Guile Printing Module1301488
+Node: Guile Types Module1302307
+Node: Auto-loading extensions1303600
+Node: objfile-gdbdotext file1304798
+Ref: set auto-load scripts-directory1306234
+Ref: with-auto-load-dir1306610
+Ref: show auto-load scripts-directory1307428
+Ref: add-auto-load-scripts-directory1307508
+Node: dotdebug_gdb_scripts section1307984
+Node: Which flavor to choose?1311734
+Node: Multiple Extension Languages1313555
+Node: Aliases1314619
+Node: Interpreters1317484
+Node: TUI1320635
+Node: TUI Overview1321633
+Node: TUI Keys1324066
+Node: TUI Single Key Mode1326370
+Node: TUI Commands1327553
+Node: TUI Configuration1331320
+Node: Emacs1332809
+Node: GDB/MI1338246
+Node: GDB/MI General Design1340220
+Node: Context management1342740
+Node: Asynchronous and non-stop modes1346527
+Node: Thread groups1349501
+Node: GDB/MI Command Syntax1351779
+Node: GDB/MI Input Syntax1352022
+Node: GDB/MI Output Syntax1353572
+Node: GDB/MI Compatibility with CLI1357157
+Node: GDB/MI Development and Front Ends1357894
+Node: GDB/MI Output Records1361413
+Node: GDB/MI Result Records1361819
+Node: GDB/MI Stream Records1363169
+Node: GDB/MI Async Records1364434
+Node: GDB/MI Breakpoint Information1374871
+Node: GDB/MI Frame Information1380506
+Node: GDB/MI Thread Information1381788
+Node: GDB/MI Ada Exception Information1383258
+Node: GDB/MI Simple Examples1383808
+Node: GDB/MI Command Description Format1386044
+Node: GDB/MI Breakpoint Commands1386924
+Ref: -break-insert1394032
+Node: GDB/MI Catchpoint Commands1407606
+Node: Shared Library GDB/MI Catchpoint Commands1408019
+Node: Ada Exception GDB/MI Catchpoint Commands1409677
+Node: C++ Exception GDB/MI Catchpoint Commands1413227
+Node: GDB/MI Program Context1417243
+Node: GDB/MI Thread Commands1421511
+Node: GDB/MI Ada Tasking Commands1424812
+Node: GDB/MI Program Execution1427084
+Node: GDB/MI Stack Manipulation1439351
+Ref: -stack-list-arguments1441275
+Ref: -stack-list-frames1445105
+Ref: -stack-list-locals1449434
+Ref: -stack-list-variables1450924
+Node: GDB/MI Variable Objects1452458
+Ref: -var-set-format1462423
+Ref: -var-list-children1463804
+Ref: -var-update1472612
+Ref: -var-set-frozen1475610
+Ref: -var-set-update-range1476407
+Ref: -var-set-visualizer1476936
+Node: GDB/MI Data Manipulation1478426
+Node: GDB/MI Tracepoint Commands1498915
+Node: GDB/MI Symbol Query1512422
+Node: GDB/MI File Commands1513111
+Node: GDB/MI Target Manipulation1517545
+Node: GDB/MI File Transfer Commands1524203
+Node: GDB/MI Ada Exceptions Commands1525526
+Node: GDB/MI Support Commands1526879
+Node: GDB/MI Miscellaneous Commands1531598
+Ref: -interpreter-exec1541951
+Node: Annotations1545923
+Node: Annotations Overview1546842
+Node: Server Prefix1549305
+Node: Prompting1550039
+Node: Errors1551556
+Node: Invalidation1552452
+Node: Annotations for Running1552931
+Node: Source Annotations1554465
+Node: JIT Interface1555394
+Node: Declarations1557193
+Node: Registering Code1558580
+Node: Unregistering Code1559552
+Node: Custom Debug Info1560179
+Node: Using JIT Debug Info Readers1561475
+Node: Writing JIT Debug Info Readers1562487
+Node: In-Process Agent1564682
+Ref: Control Agent1566625
+Node: In-Process Agent Protocol1567492
+Node: IPA Protocol Objects1568283
+Ref: agent expression object1569281
+Ref: tracepoint action object1569486
+Ref: tracepoint object1569566
+Node: IPA Protocol Commands1572096
+Node: GDB Bugs1573566
+Node: Bug Criteria1574298
+Node: Bug Reporting1575175
+Node: Command Line Editing1583004
+Node: Introduction and Notation1583656
+Node: Readline Interaction1585277
+Node: Readline Bare Essentials1586466
+Node: Readline Movement Commands1588247
+Node: Readline Killing Commands1589205
+Node: Readline Arguments1591121
+Node: Searching1592163
+Node: Readline Init File1594313
+Node: Readline Init File Syntax1595464
+Node: Conditional Init Constructs1615620
+Node: Sample Init File1619814
+Node: Bindable Readline Commands1622929
+Node: Commands For Moving1623981
+Node: Commands For History1625545
+Node: Commands For Text1629807
+Node: Commands For Killing1633246
+Node: Numeric Arguments1635410
+Node: Commands For Completion1636547
+Node: Keyboard Macros1638513
+Node: Miscellaneous Commands1639198
+Node: Readline vi Mode1643117
+Node: Using History Interactively1644027
+Node: History Interaction1644542
+Node: Event Designators1646438
+Node: Word Designators1647575
+Node: Modifiers1649210
+Node: In Memoriam1650431
+Node: Formatting Documentation1651314
+Ref: Formatting Documentation-Footnote-11654690
+Node: Installing GDB1654786
+Node: Requirements1655358
+Ref: Expat1656059
+Ref: MPFR1659352
+Node: Running Configure1660973
+Node: Separate Objdir1663844
+Node: Config Names1666818
+Node: Configure Options1668295
+Node: System-wide configuration1677261
+Node: System-wide Configuration Scripts1679221
+Node: Maintenance Commands1680405
+Ref: maint info breakpoints1682060
+Ref: maint check libthread-db1690525
+Node: Remote Protocol1706012
+Node: Overview1706704
+Ref: Binary Data1709249
+Node: Packets1711774
+Ref: thread-id syntax1712674
+Ref: extended mode1714119
+Ref: ? packet1714377
+Ref: bc1715843
+Ref: bs1716053
+Ref: read registers packet1717670
+Ref: cycle step packet1719525
+Ref: write register packet1722236
+Ref: step with signal packet1723215
+Ref: vCont packet1724691
+Ref: vCtrlC packet1727924
+Ref: vKill packet1730342
+Ref: X packet1731875
+Ref: insert breakpoint or watchpoint packet1732244
+Node: Stop Reply Packets1736570
+Ref: swbreak stop reason1739821
+Ref: thread create event1743418
+Ref: thread exit event1744621
+Node: General Query Packets1746830
+Ref: qCRC packet1749660
+Ref: QEnvironmentHexEncoded1752813
+Ref: QEnvironmentUnset1754043
+Ref: QEnvironmentReset1754987
+Ref: QSetWorkingDir packet1755931
+Ref: QNonStop1762382
+Ref: QCatchSyscalls1763058
+Ref: QPassSignals1764595
+Ref: QProgramSignals1765802
+Ref: QThreadEvents1767369
+Ref: qSearch memory1769387
+Ref: QStartNoAckMode1769895
+Ref: qSupported1770426
+Ref: multiprocess extensions1785946
+Ref: install tracepoint in tracing1787976
+Ref: qXfer read1792499
+Ref: qXfer auxiliary vector read1794106
+Ref: qXfer btrace read1794454
+Ref: qXfer btrace-conf read1795519
+Ref: qXfer executable filename read1795870
+Ref: qXfer target description read1796485
+Ref: qXfer library list read1796919
+Ref: qXfer svr4 library list read1797575
+Ref: qXfer memory map read1799428
+Ref: qXfer sdata read1799815
+Ref: qXfer siginfo read1800281
+Ref: qXfer threads read1800677
+Ref: qXfer traceframe info read1801080
+Ref: qXfer unwind info block1801498
+Ref: qXfer fdpic loadmap read1801732
+Ref: qXfer osdata read1802148
+Ref: qXfer write1802302
+Ref: qXfer siginfo write1803394
+Ref: General Query Packets-Footnote-11806122
+Node: Architecture-Specific Protocol Details1808165
+Node: ARM-Specific Protocol Details1808674
+Node: ARM Breakpoint Kinds1808922
+Node: MIPS-Specific Protocol Details1809253
+Node: MIPS Register packet Format1809536
+Node: MIPS Breakpoint Kinds1810463
+Node: Tracepoint Packets1810881
+Ref: QTEnable1820195
+Ref: QTDisable1820391
+Ref: qTfSTM1825928
+Ref: qTsSTM1825928
+Ref: qTSTMat1827005
+Ref: QTBuffer-size1828156
+Node: Host I/O Packets1830129
+Node: Interrupts1835709
+Ref: interrupting remote targets1835853
+Node: Notification Packets1838021
+Node: Remote Non-Stop1843446
+Node: Packet Acknowledgment1846562
+Node: Examples1848677
+Node: File-I/O Remote Protocol Extension1849271
+Node: File-I/O Overview1849733
+Node: Protocol Basics1851932
+Node: The F Request Packet1854161
+Node: The F Reply Packet1855062
+Node: The Ctrl-C Message1855980
+Node: Console I/O1857606
+Node: List of Supported Calls1858822
+Node: open1859184
+Node: close1861692
+Node: read1862075
+Node: write1862684
+Node: lseek1863455
+Node: rename1864339
+Node: unlink1865746
+Node: stat/fstat1866693
+Node: gettimeofday1867586
+Node: isatty1868022
+Node: system1868618
+Node: Protocol-specific Representation of Datatypes1870160
+Node: Integral Datatypes1870537
+Node: Pointer Values1871344
+Node: Memory Transfer1872048
+Node: struct stat1872668
+Node: struct timeval1874870
+Node: Constants1875387
+Node: Open Flags1875836
+Node: mode_t Values1876177
+Node: Errno Values1876669
+Node: Lseek Flags1877479
+Node: Limits1877664
+Node: File-I/O Examples1878024
+Node: Library List Format1879112
+Node: Library List Format for SVR4 Targets1881894
+Node: Memory Map Format1884361
+Node: Thread List Format1886885
+Node: Traceframe Info Format1887889
+Node: Branch Trace Format1889575
+Node: Branch Trace Configuration Format1891275
+Node: Agent Expressions1892449
+Node: General Bytecode Design1895270
+Node: Bytecode Descriptions1900064
+Node: Using Agent Expressions1913531
+Node: Varying Target Capabilities1915508
+Node: Rationale1916669
+Node: Target Descriptions1924058
+Node: Retrieving Descriptions1926001
+Node: Target Description Format1927086
+Node: Predefined Target Types1936961
+Node: Enum Target Types1938406
+Node: Standard Target Features1939401
+Node: AArch64 Features1941401
+Node: ARC Features1942107
+Node: ARM Features1944168
+Node: i386 Features1945682
+Node: MicroBlaze Features1947897
+Node: MIPS Features1948474
+Node: M68K Features1949665
+Node: NDS32 Features1950326
+Node: Nios II Features1951350
+Node: OpenRISC 1000 Features1951755
+Node: PowerPC Features1952121
+Node: RISC-V Features1956091
+Node: RX Features1957781
+Node: S/390 and System z Features1958143
+Node: Sparc Features1960283
+Node: TIC6x Features1961188
+Node: Operating System Information1961737
+Node: Process list1962572
+Node: Trace File Format1963635
+Node: Index Section Format1966849
+Node: Man Pages1974775
+Node: gdb man1975245
+Node: gdbserver man1981219
+Node: gcore man1988616
+Node: gdbinit man1989738
+Node: gdb-add-index man1990647
+Ref: gdb-add-index1990756
+Node: Copying1991630
+Node: GNU Free Documentation License2029191
+Node: Concept Index2054338
+Node: Command and Variable Index2196820
 
 End Tag Table
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-1 ./gdb/doc/gdb.info-1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-1	2019-10-01 01:52:48.000000000 +0000
+++ ./gdb/doc/gdb.info-1	2019-10-08 01:53:20.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.3.50.20191001-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 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.3.50.20191001-git.
+   This is the Tenth Edition, for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -507,7 +507,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.3.50.20191001-git, Copyright 1999 Free Software Foundation, Inc...
+     GDB 9.0.50.20191008-git, Copyright 1999 Free Software Foundation, Inc...
      (gdb)
 
 GDB reads only enough symbol data to know where to find the rest when
@@ -3956,9 +3956,14 @@ shared library.  Use the 'catch' command
           command to use to catch such exceptions is 'catch exception
           Pck.Constraint_Error'.
 
+          The convenience variable '$_ada_exception' holds the address
+          of the exception being thrown.  This can be useful when
+          setting a condition for such a catchpoint.
+
      'exception unhandled'
           An exception that was raised but is not handled by the
-          program.
+          program.  The convenience variable '$_ada_exception' is set as
+          for 'catch exception'.
 
      'handlers [NAME]'
           An Ada exception being handled.  If an exception name is
@@ -3977,8 +3982,12 @@ shared library.  Use the 'catch' command
           command to use to catch such exceptions handling is 'catch
           handlers Pck.Constraint_Error'.
 
+          The convenience variable '$_ada_exception' is set as for
+          'catch exception'.
+
      'assert'
-          A failed Ada assertion.
+          A failed Ada assertion.  Note that the convenience variable
+          '$_ada_exception' is _not_ set by this catchpoint.
 
      'exec'
           A call to 'exec'.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-2 ./gdb/doc/gdb.info-2
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-2	2019-10-01 01:52:50.000000000 +0000
+++ ./gdb/doc/gdb.info-2	2019-10-08 01:53:22.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.3.50.20191001-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -2992,6 +2992,11 @@ values likely to be useful.
      thrown at an exception-related catchpoint.  *Note Set
      Catchpoints::.
 
+'$_ada_exception'
+     The variable '$_ada_exception' is set to the address of the
+     exception being caught or thrown at an Ada exception-related
+     catchpoint.  *Note Set Catchpoints::.
+
 '$_probe_argc'
 '$_probe_arg0...$_probe_arg11'
      Arguments to a static probe.  *Note Static Probe Points::.
@@ -7134,6 +7139,10 @@ arithmetic types.  Operators are often d
      derived types.  Also suitable for unions.  As unions aren't part of
      regular Fortran, this can only happen when accessing a register
      that uses a gdbarch-defined union type.
+'::'
+     The scope operator.  Normally used to access variables in modules
+     or to set breakpoints on subroutines nested in modules or in other
+     subroutines (internal subroutines).
 
 
 File: gdb.info,  Node: Fortran Defaults,  Next: Special Fortran Commands,  Prev: Fortran Operators,  Up: Fortran
@@ -7272,112 +7281,3 @@ reads in the executable's symbol table.
 * M2 Scope::                    The scope operators '::' and '.'
 * GDB/M2::                      GDB and Modula-2
 
-
-File: gdb.info,  Node: M2 Operators,  Next: Built-In Func/Proc,  Up: Modula-2
-
-15.4.9.1 Operators
-..................
-
-Operators must be defined on values of specific types.  For instance,
-'+' is defined on numbers, but not on structures.  Operators are often
-defined on groups of types.  For the purposes of Modula-2, the following
-definitions hold:
-
-   * _Integral types_ consist of 'INTEGER', 'CARDINAL', and their
-     subranges.
-
-   * _Character types_ consist of 'CHAR' and its subranges.
-
-   * _Floating-point types_ consist of 'REAL'.
-
-   * _Pointer types_ consist of anything declared as 'POINTER TO TYPE'.
-
-   * _Scalar types_ consist of all of the above.
-
-   * _Set types_ consist of 'SET' and 'BITSET' types.
-
-   * _Boolean types_ consist of 'BOOLEAN'.
-
-The following operators are supported, and appear in order of increasing
-precedence:
-
-','
-     Function argument or array index separator.
-
-':='
-     Assignment.  The value of VAR ':=' VALUE is VALUE.
-
-'<, >'
-     Less than, greater than on integral, floating-point, or enumerated
-     types.
-
-'<=, >='
-     Less than or equal to, greater than or equal to on integral,
-     floating-point and enumerated types, or set inclusion on set types.
-     Same precedence as '<'.
-
-'=, <>, #'
-     Equality and two ways of expressing inequality, valid on scalar
-     types.  Same precedence as '<'.  In GDB scripts, only '<>' is
-     available for inequality, since '#' conflicts with the script
-     comment character.
-
-'IN'
-     Set membership.  Defined on set types and the types of their
-     members.  Same precedence as '<'.
-
-'OR'
-     Boolean disjunction.  Defined on boolean types.
-
-'AND, &'
-     Boolean conjunction.  Defined on boolean types.
-
-'@'
-     The GDB "artificial array" operator (*note Expressions:
-     Expressions.).
-
-'+, -'
-     Addition and subtraction on integral and floating-point types, or
-     union and difference on set types.
-
-'*'
-     Multiplication on integral and floating-point types, or set
-     intersection on set types.
-
-'/'
-     Division on floating-point types, or symmetric set difference on
-     set types.  Same precedence as '*'.
-
-'DIV, MOD'
-     Integer division and remainder.  Defined on integral types.  Same
-     precedence as '*'.
-
-'-'
-     Negative.  Defined on 'INTEGER' and 'REAL' data.
-
-'^'
-     Pointer dereferencing.  Defined on pointer types.
-
-'NOT'
-     Boolean negation.  Defined on boolean types.  Same precedence as
-     '^'.
-
-'.'
-     'RECORD' field selector.  Defined on 'RECORD' data.  Same
-     precedence as '^'.
-
-'[]'
-     Array indexing.  Defined on 'ARRAY' data.  Same precedence as '^'.
-
-'()'
-     Procedure argument list.  Defined on 'PROCEDURE' objects.  Same
-     precedence as '^'.
-
-'::, .'
-     GDB and Modula-2 scope operators.
-
-     _Warning:_ Set expressions and their operations are not yet
-     supported, so GDB treats the use of the operator 'IN', or the use
-     of operators '+', '-', '*', '/', '=', , '<>', '#', '<=', and '>='
-     on sets as an error.
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-3 ./gdb/doc/gdb.info-3
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-3	2019-10-01 01:52:52.000000000 +0000
+++ ./gdb/doc/gdb.info-3	2019-10-08 01:53: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.3.50.20191001-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -37,6 +37,115 @@ this GNU Manual.  Buying copies from GNU
 developing GNU and promoting software freedom."
 
 
+File: gdb.info,  Node: M2 Operators,  Next: Built-In Func/Proc,  Up: Modula-2
+
+15.4.9.1 Operators
+..................
+
+Operators must be defined on values of specific types.  For instance,
+'+' is defined on numbers, but not on structures.  Operators are often
+defined on groups of types.  For the purposes of Modula-2, the following
+definitions hold:
+
+   * _Integral types_ consist of 'INTEGER', 'CARDINAL', and their
+     subranges.
+
+   * _Character types_ consist of 'CHAR' and its subranges.
+
+   * _Floating-point types_ consist of 'REAL'.
+
+   * _Pointer types_ consist of anything declared as 'POINTER TO TYPE'.
+
+   * _Scalar types_ consist of all of the above.
+
+   * _Set types_ consist of 'SET' and 'BITSET' types.
+
+   * _Boolean types_ consist of 'BOOLEAN'.
+
+The following operators are supported, and appear in order of increasing
+precedence:
+
+','
+     Function argument or array index separator.
+
+':='
+     Assignment.  The value of VAR ':=' VALUE is VALUE.
+
+'<, >'
+     Less than, greater than on integral, floating-point, or enumerated
+     types.
+
+'<=, >='
+     Less than or equal to, greater than or equal to on integral,
+     floating-point and enumerated types, or set inclusion on set types.
+     Same precedence as '<'.
+
+'=, <>, #'
+     Equality and two ways of expressing inequality, valid on scalar
+     types.  Same precedence as '<'.  In GDB scripts, only '<>' is
+     available for inequality, since '#' conflicts with the script
+     comment character.
+
+'IN'
+     Set membership.  Defined on set types and the types of their
+     members.  Same precedence as '<'.
+
+'OR'
+     Boolean disjunction.  Defined on boolean types.
+
+'AND, &'
+     Boolean conjunction.  Defined on boolean types.
+
+'@'
+     The GDB "artificial array" operator (*note Expressions:
+     Expressions.).
+
+'+, -'
+     Addition and subtraction on integral and floating-point types, or
+     union and difference on set types.
+
+'*'
+     Multiplication on integral and floating-point types, or set
+     intersection on set types.
+
+'/'
+     Division on floating-point types, or symmetric set difference on
+     set types.  Same precedence as '*'.
+
+'DIV, MOD'
+     Integer division and remainder.  Defined on integral types.  Same
+     precedence as '*'.
+
+'-'
+     Negative.  Defined on 'INTEGER' and 'REAL' data.
+
+'^'
+     Pointer dereferencing.  Defined on pointer types.
+
+'NOT'
+     Boolean negation.  Defined on boolean types.  Same precedence as
+     '^'.
+
+'.'
+     'RECORD' field selector.  Defined on 'RECORD' data.  Same
+     precedence as '^'.
+
+'[]'
+     Array indexing.  Defined on 'ARRAY' data.  Same precedence as '^'.
+
+'()'
+     Procedure argument list.  Defined on 'PROCEDURE' objects.  Same
+     precedence as '^'.
+
+'::, .'
+     GDB and Modula-2 scope operators.
+
+     _Warning:_ Set expressions and their operations are not yet
+     supported, so GDB treats the use of the operator 'IN', or the use
+     of operators '+', '-', '*', '/', '=', , '<>', '#', '<=', and '>='
+     on sets as an error.
+
+
 File: gdb.info,  Node: Built-In Func/Proc,  Next: M2 Constants,  Prev: M2 Operators,  Up: Modula-2
 
 15.4.9.2 Built-in Functions and Procedures
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-4 ./gdb/doc/gdb.info-4
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-4	2019-10-01 01:52:54.000000000 +0000
+++ ./gdb/doc/gdb.info-4	2019-10-08 01:53:26.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.3.50.20191001-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -1898,7 +1898,7 @@ function, call it like so:
      pointed to by 'foo'.
 
      A similar function 'Value.referenced_value' exists which also
-     returns 'gdb.Value' objects corresonding to the values pointed to
+     returns 'gdb.Value' objects corresponding to the values pointed to
      by pointer values (and additionally, values referenced by reference
      values).  However, the behavior of 'Value.dereference' differs from
      'Value.referenced_value' by the fact that the behavior of
@@ -7060,13 +7060,13 @@ module.
      pointed to by 'foo'.
 
      A similar function 'value-referenced-value' exists which also
-     returns '<gdb:value>' objects corresonding to the values pointed to
-     by pointer values (and additionally, values referenced by reference
-     values).  However, the behavior of 'value-dereference' differs from
-     'value-referenced-value' by the fact that the behavior of
-     'value-dereference' is identical to applying the C unary operator
-     '*' on a given value.  For example, consider a reference to a
-     pointer 'ptrref', declared in your C++ program as
+     returns '<gdb:value>' objects corresponding to the values pointed
+     to by pointer values (and additionally, values referenced by
+     reference values).  However, the behavior of 'value-dereference'
+     differs from 'value-referenced-value' by the fact that the behavior
+     of 'value-dereference' is identical to applying the C unary
+     operator '*' on a given value.  For example, consider a reference
+     to a pointer 'ptrref', declared in your C++ program as
 
           typedef int *intptr;
           ...
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-5 ./gdb/doc/gdb.info-5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-5	2019-10-01 01:52:57.000000000 +0000
+++ ./gdb/doc/gdb.info-5	2019-10-08 01:53:29.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.3.50.20191001-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -3281,7 +3281,7 @@ window management.
 
 'tui enable'
      Activate TUI mode.  The last active TUI window layout will be used
-     if TUI mode has prevsiouly been used in the current debugging
+     if TUI mode has previously been used in the current debugging
      session, otherwise a default layout is used.
 
 'tui disable'
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-6 ./gdb/doc/gdb.info-6
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-6	2019-10-01 01:52:59.000000000 +0000
+++ ./gdb/doc/gdb.info-6	2019-10-08 01:53:30.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.3.50.20191001-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -3888,7 +3888,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.3.50.20191001-git/gdb/gdb.info', and it refers to subordinate
+'gdb-9.0.50.20191008-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'
@@ -3898,8 +3898,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.3.50.20191001-git', in the case of version
-8.3.50.20191001-git), you can make the Info file by typing:
+directory ('gdb-9.0.50.20191008-git', in the case of version
+9.0.50.20191008-git), you can make the Info file by typing:
 
      cd gdb
      make gdb.info
@@ -3924,7 +3924,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.3.50.20191001-git/gdb')
+main source directory (for example, to 'gdb-9.0.50.20191008-git/gdb')
 and type:
 
      make gdb.dvi
@@ -3933,8 +3933,8 @@ and type:
 
    ---------- Footnotes ----------
 
-   (1) In 'gdb-8.3.50.20191001-git/gdb/refcard.ps' of the version
-8.3.50.20191001-git release.
+   (1) In 'gdb-9.0.50.20191008-git/gdb/refcard.ps' of the version
+9.0.50.20191008-git release.
 
 
 File: gdb.info,  Node: Installing GDB,  Next: Maintenance Commands,  Prev: Formatting Documentation,  Up: Top
@@ -4085,35 +4085,35 @@ 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.3.50.20191001-git distribution is in
-the 'gdb-8.3.50.20191001-git' directory.  That directory contains:
+   For example, the GDB version 9.0.50.20191008-git distribution is in
+the 'gdb-9.0.50.20191008-git' directory.  That directory contains:
 
-'gdb-8.3.50.20191001-git/configure (and supporting files)'
+'gdb-9.0.50.20191008-git/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-'gdb-8.3.50.20191001-git/gdb'
+'gdb-9.0.50.20191008-git/gdb'
      the source specific to GDB itself
 
-'gdb-8.3.50.20191001-git/bfd'
+'gdb-9.0.50.20191008-git/bfd'
      source for the Binary File Descriptor library
 
-'gdb-8.3.50.20191001-git/include'
+'gdb-9.0.50.20191008-git/include'
      GNU include files
 
-'gdb-8.3.50.20191001-git/libiberty'
+'gdb-9.0.50.20191008-git/libiberty'
      source for the '-liberty' free software library
 
-'gdb-8.3.50.20191001-git/opcodes'
+'gdb-9.0.50.20191008-git/opcodes'
      source for the library of opcode tables and disassemblers
 
-'gdb-8.3.50.20191001-git/readline'
+'gdb-9.0.50.20191008-git/readline'
      source for the GNU command-line interface
 
    There may be other subdirectories as well.
 
    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.3.50.20191001-git' directory.
+the 'gdb-9.0.50.20191008-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
@@ -4121,7 +4121,7 @@ platform on which GDB will run as an arg
 
    For example:
 
-     cd gdb-8.3.50.20191001-git
+     cd gdb-9.0.50.20191008-git
      ./configure
      make
 
@@ -4169,13 +4169,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.3.50.20191001-git, you can build GDB in a
+   For example, with version 9.0.50.20191008-git, you can build GDB in a
 separate directory for a Sun 4 like this:
 
-     cd gdb-8.3.50.20191001-git
+     cd gdb-9.0.50.20191008-git
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-8.3.50.20191001-git/configure
+     ../gdb-9.0.50.20191008-git/configure
      make
 
    When 'configure' builds a configuration using a remote source
@@ -4186,7 +4186,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.3.50.20191001-git/gdb/configure', you are configuring only one
+'../gdb-9.0.50.20191008-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'.
 
@@ -4202,8 +4202,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.3.50.20191001-git' (or in a separate configured directory
-configured with '--srcdir=DIRNAME/gdb-8.3.50.20191001-git'), you will
+'gdb-9.0.50.20191008-git' (or in a separate configured directory
+configured with '--srcdir=DIRNAME/gdb-9.0.50.20191008-git'), you will
 build all the required libraries, and then build GDB.
 
    When you have multiple hosts or targets configured in separate
@@ -4248,7 +4248,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.3.50.20191001-git', for version 8.3.50.20191001-git).
+('gdb-9.0.50.20191008-git', for version 9.0.50.20191008-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.3.50.20191001/gdb/doc/gdb.info-7 ./gdb/doc/gdb.info-7
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-7	2019-10-01 01:53:01.000000000 +0000
+++ ./gdb/doc/gdb.info-7	2019-10-08 01:53:33.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.3.50.20191001-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -6204,7 +6204,7 @@ Concept Index
 * active targets:                        Active Targets.     (line    6)
 * Ada:                                   Ada.                (line    6)
 * Ada exception catching:                Set Catchpoints.    (line   66)
-* Ada exception handlers catching:       Set Catchpoints.    (line   87)
+* Ada exception handlers catching:       Set Catchpoints.    (line   92)
 * Ada mode, general:                     Ada Mode Intro.     (line    6)
 * Ada settings:                          Ada Settings.       (line    6)
 * Ada task switching:                    Ada Tasks.          (line  115)
@@ -6323,8 +6323,8 @@ Concept Index
                                                              (line   70)
 * break in overloaded functions:         Debugging C Plus Plus.
                                                              (line    9)
-* break on a system call.:               Set Catchpoints.    (line  111)
-* break on fork/exec:                    Set Catchpoints.    (line  107)
+* break on a system call.:               Set Catchpoints.    (line  120)
+* break on fork/exec:                    Set Catchpoints.    (line  116)
 * BREAK signal instead of Ctrl-C:        Remote Configuration.
                                                              (line   36)
 * breakpoint address adjusted:           Breakpoint-related Warnings.
@@ -6412,7 +6412,7 @@ Concept Index
 * casts, in expressions:                 Expressions.        (line   26)
 * casts, to view memory:                 Expressions.        (line   41)
 * catch Ada exceptions:                  Set Catchpoints.    (line   66)
-* catch Ada exceptions when handled:     Set Catchpoints.    (line   87)
+* catch Ada exceptions when handled:     Set Catchpoints.    (line   92)
 * catch syscalls from inferior, remote request: General Query Packets.
                                                              (line  401)
 * catchpoints:                           Breakpoints.        (line   30)
@@ -6685,7 +6685,7 @@ Concept Index
                                                              (line  536)
 * execution, foreground, background and asynchronous: Background Execution.
                                                              (line    6)
-* exit status of shell commands:         Convenience Vars.   (line  182)
+* exit status of shell commands:         Convenience Vars.   (line  187)
 * exiting GDB:                           Quitting GDB.       (line    6)
 * expand macro once:                     Macros.             (line   38)
 * expanding preprocessor macros:         Macros.             (line   29)
@@ -7638,8 +7638,8 @@ Concept Index
 * sh-stub.c:                             Remote Stub.        (line   62)
 * shared libraries:                      Files.              (line  287)
 * shared library events, remote reply:   Stop Reply Packets. (line   65)
-* shell command, exit code:              Convenience Vars.   (line  182)
-* shell command, exit signal:            Convenience Vars.   (line  182)
+* shell command, exit code:              Convenience Vars.   (line  187)
+* shell command, exit signal:            Convenience Vars.   (line  187)
 * shell escape:                          Shell Commands.     (line   10)
 * show all convenience functions:        Convenience Funs.   (line  157)
 * show all user variables and functions: Convenience Vars.   (line   37)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-8 ./gdb/doc/gdb.info-8
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.info-8	2019-10-01 01:53:01.000000000 +0000
+++ ./gdb/doc/gdb.info-8	2019-10-08 01:53:33.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.3.50.20191001-git.
+Source-Level Debugger' for GDB (GDB) Version 9.0.50.20191008-git.
 
    Copyright (C) 1988-2019 Free Software Foundation, Inc.
 
@@ -63,6 +63,7 @@ Command, Variable, and Function Index
 * $trace_line:                           Tracepoint Variables.
                                                               (line  13)
 * $_, convenience variable:              Convenience Vars.    (line  65)
+* $_ada_exception, convenience variable: Set Catchpoints.     (line  82)
 * $_any_caller_is, convenience function: Convenience Funs.    (line 111)
 * $_any_caller_matches, convenience function: Convenience Funs.
                                                               (line 123)
@@ -74,8 +75,8 @@ Command, Variable, and Function Index
 * $_exception, convenience variable:     Set Catchpoints.     (line  21)
 * $_exitcode, convenience variable:      Convenience Vars.    (line  80)
 * $_exitsignal, convenience variable:    Convenience Vars.    (line  85)
-* $_gdb_major, convenience variable:     Convenience Vars.    (line 173)
-* $_gdb_minor, convenience variable:     Convenience Vars.    (line 173)
+* $_gdb_major, convenience variable:     Convenience Vars.    (line 178)
+* $_gdb_minor, convenience variable:     Convenience Vars.    (line 178)
 * $_gthread, convenience variable:       Threads.             (line  98)
 * $_inferior, convenience variable:      Inferiors and Programs.
                                                               (line  56)
@@ -84,14 +85,14 @@ Command, Variable, and Function Index
 * $_probe_arg, convenience variable:     Static Probe Points. (line  77)
 * $_regex, convenience function:         Convenience Funs.    (line  69)
 * $_sdata, collect:                      Tracepoint Actions.  (line  86)
-* $_sdata, inspect, convenience variable: Convenience Vars.   (line 142)
-* $_shell_exitcode, convenience variable: Convenience Vars.   (line 182)
-* $_shell_exitsignal, convenience variable: Convenience Vars. (line 182)
-* $_siginfo, convenience variable:       Convenience Vars.    (line 148)
+* $_sdata, inspect, convenience variable: Convenience Vars.   (line 147)
+* $_shell_exitcode, convenience variable: Convenience Vars.   (line 187)
+* $_shell_exitsignal, convenience variable: Convenience Vars. (line 187)
+* $_siginfo, convenience variable:       Convenience Vars.    (line 153)
 * $_streq, convenience function:         Convenience Funs.    (line  74)
 * $_strlen, convenience function:        Convenience Funs.    (line  78)
 * $_thread, convenience variable:        Threads.             (line  98)
-* $_tlb, convenience variable:           Convenience Vars.    (line 154)
+* $_tlb, convenience variable:           Convenience Vars.    (line 159)
 * $__, convenience variable:             Convenience Vars.    (line  74)
 * (make-command:                         Commands In Guile.   (line  15)
 * (make-parameter:                       Parameters In Guile. (line  22)
@@ -608,20 +609,20 @@ Command, Variable, and Function Index
 * call-last-kbd-macro (C-x e):           Keyboard Macros.     (line  13)
 * capitalize-word (M-c):                 Commands For Text.   (line  64)
 * catch:                                 Set Catchpoints.     (line  10)
-* catch assert:                          Set Catchpoints.     (line 104)
+* catch assert:                          Set Catchpoints.     (line 112)
 * catch catch:                           Set Catchpoints.     (line  16)
 * catch exception:                       Set Catchpoints.     (line  66)
-* catch exception unhandled:             Set Catchpoints.     (line  83)
-* catch exec:                            Set Catchpoints.     (line 107)
-* catch fork:                            Set Catchpoints.     (line 252)
-* catch handlers:                        Set Catchpoints.     (line  87)
-* catch load:                            Set Catchpoints.     (line 259)
+* catch exception unhandled:             Set Catchpoints.     (line  87)
+* catch exec:                            Set Catchpoints.     (line 116)
+* catch fork:                            Set Catchpoints.     (line 261)
+* catch handlers:                        Set Catchpoints.     (line  92)
+* catch load:                            Set Catchpoints.     (line 268)
 * catch rethrow:                         Set Catchpoints.     (line  16)
-* catch signal:                          Set Catchpoints.     (line 264)
-* catch syscall:                         Set Catchpoints.     (line 111)
+* catch signal:                          Set Catchpoints.     (line 273)
+* catch syscall:                         Set Catchpoints.     (line 120)
 * catch throw:                           Set Catchpoints.     (line  16)
-* catch unload:                          Set Catchpoints.     (line 259)
-* catch vfork:                           Set Catchpoints.     (line 255)
+* catch unload:                          Set Catchpoints.     (line 268)
+* catch vfork:                           Set Catchpoints.     (line 264)
 * cd:                                    Working Directory.   (line  32)
 * cdir:                                  Source Path.         (line  40)
 * character-search (C-]):                Miscellaneous Commands.
@@ -2781,7 +2782,7 @@ Command, Variable, and Function Index
 * target-config:                         Guile Configuration. (line  24)
 * task (Ada):                            Ada Tasks.           (line 105)
 * tbreak:                                Set Breaks.          (line  54)
-* tcatch:                                Set Catchpoints.     (line 289)
+* tcatch:                                Set Catchpoints.     (line 298)
 * tdump:                                 tdump.               (line   6)
 * teval (tracepoints):                   Tracepoint Actions.  (line 118)
 * tfaas:                                 Threads.             (line 229)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdbinit.5 ./gdb/doc/gdbinit.5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdbinit.5	2019-10-01 01:53:05.000000000 +0000
+++ ./gdb/doc/gdbinit.5	2019-10-08 01:53:37.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2019-10-01" "gdb-8.3.50.20191001-git" "GNU Development Tools"
+.TH GDBINIT 5 "2019-10-08" "gdb-9.0.50.20191008-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.3.50.20191001/gdb/doc/gdbserver.1 ./gdb/doc/gdbserver.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdbserver.1	2019-10-01 01:53:04.000000000 +0000
+++ ./gdb/doc/gdbserver.1	2019-10-08 01:53:36.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2019-10-01" "gdb-8.3.50.20191001-git" "GNU Development Tools"
+.TH GDBSERVER 1 "2019-10-08" "gdb-9.0.50.20191008-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.3.50.20191001/gdb/doc/gdb.texinfo ./gdb/doc/gdb.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/gdb.texinfo	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/doc/gdb.texinfo	2019-10-08 01:49:30.000000000 +0000
@@ -4788,9 +4788,16 @@ called @code{Constraint_Error} is define
 the command to use to catch such exceptions is @kbd{catch exception
 Pck.Constraint_Error}.
 
+@vindex $_ada_exception@r{, convenience variable}
+The convenience variable @code{$_ada_exception} holds the address of
+the exception being thrown.  This can be useful when setting a
+condition for such a catchpoint.
+
 @item exception unhandled
 @kindex catch exception unhandled
-An exception that was raised but is not handled by the program.
+An exception that was raised but is not handled by the program.  The
+convenience variable @code{$_ada_exception} is set as for @code{catch
+exception}.
 
 @item handlers @r{[}@var{name}@r{]}
 @kindex catch handlers
@@ -4812,9 +4819,13 @@ user-defined one.  For instance, assumin
 command to use to catch such exceptions handling is
 @kbd{catch handlers Pck.Constraint_Error}.
 
+The convenience variable @code{$_ada_exception} is set as for
+@code{catch exception}.
+
 @item assert
 @kindex catch assert
-A failed Ada assertion.
+A failed Ada assertion.  Note that the convenience variable
+@code{$_ada_exception} is @emph{not} set by this catchpoint.
 
 @item exec
 @kindex catch exec
@@ -11823,6 +11834,11 @@ The program has exited
 The variable @code{$_exception} is set to the exception object being
 thrown at an exception-related catchpoint.  @xref{Set Catchpoints}.
 
+@item $_ada_exception
+The variable @code{$_ada_exception} is set to the address of the
+exception being caught or thrown at an Ada exception-related
+catchpoint.  @xref{Set Catchpoints}.
+
 @item $_probe_argc
 @itemx $_probe_arg0@dots{}$_probe_arg11
 Arguments to a static probe.  @xref{Static Probe Points}.
@@ -16554,6 +16570,10 @@ The access component operator.  Normally
 types.  Also suitable for unions.  As unions aren't part of regular Fortran,
 this can only happen when accessing a register that uses a gdbarch-defined
 union type.
+@item ::
+The scope operator.  Normally used to access variables in modules or
+to set breakpoints on subroutines nested in modules or in other
+subroutines (internal subroutines).
 @end table
 
 @node Fortran Defaults
@@ -27614,7 +27634,7 @@ possible or desirable to enable curses w
 @item tui enable
 @kindex tui enable
 Activate TUI mode.  The last active TUI window layout will be used if
-TUI mode has prevsiouly been used in the current debugging session,
+TUI mode has previously been used in the current debugging session,
 otherwise a default layout is used.
 
 @item tui disable
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/guile.texi ./gdb/doc/guile.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/guile.texi	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/doc/guile.texi	2019-10-08 01:49:30.000000000 +0000
@@ -729,7 +729,7 @@ The result @code{bar} will be a @code{<g
 value pointed to by @code{foo}.
 
 A similar function @code{value-referenced-value} exists which also
-returns @code{<gdb:value>} objects corresonding to the values pointed to
+returns @code{<gdb:value>} objects corresponding to the values pointed to
 by pointer values (and additionally, values referenced by reference
 values).  However, the behavior of @code{value-dereference}
 differs from @code{value-referenced-value} by the fact that the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/python.texi ./gdb/doc/python.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/doc/python.texi	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/doc/python.texi	2019-10-08 01:49:30.000000000 +0000
@@ -769,7 +769,7 @@ The result @code{bar} will be a @code{gd
 value pointed to by @code{foo}.
 
 A similar function @code{Value.referenced_value} exists which also
-returns @code{gdb.Value} objects corresonding to the values pointed to
+returns @code{gdb.Value} objects corresponding to the values pointed to
 by pointer values (and additionally, values referenced by reference
 values).  However, the behavior of @code{Value.dereference}
 differs from @code{Value.referenced_value} by the fact that the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/dwarf2read.c ./gdb/dwarf2read.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/dwarf2read.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/dwarf2read.c	2019-10-08 01:49:30.000000000 +0000
@@ -620,7 +620,7 @@ struct type_unit_group
   /* The TUs that share this DW_AT_stmt_list entry.
      This is added to while parsing type units to build partial symtabs,
      and is deleted afterwards and not used again.  */
-  VEC (sig_type_ptr) *tus;
+  std::vector<signatured_type *> *tus;
 
   /* The compunit symtab.
      Type units in a group needn't all be defined in the same source file,
@@ -2138,8 +2138,10 @@ attr_value_as_address (struct attribute 
 /* See declaration.  */
 
 dwarf2_per_objfile::dwarf2_per_objfile (struct objfile *objfile_,
-					const dwarf2_debug_sections *names)
-  : objfile (objfile_)
+					const dwarf2_debug_sections *names,
+					bool can_copy_)
+  : objfile (objfile_),
+    can_copy (can_copy_)
 {
   if (names == NULL)
     names = &dwarf2_elf_names;
@@ -2214,11 +2216,14 @@ private:
 /* Try to locate the sections we need for DWARF 2 debugging
    information and return true if we have enough to do something.
    NAMES points to the dwarf2 section names, or is NULL if the standard
-   ELF names are used.  */
+   ELF names are used.  CAN_COPY is true for formats where symbol
+   interposition is possible and so symbol values must follow copy
+   relocation rules.  */
 
 int
 dwarf2_has_info (struct objfile *objfile,
-                 const struct dwarf2_debug_sections *names)
+                 const struct dwarf2_debug_sections *names,
+		 bool can_copy)
 {
   if (objfile->flags & OBJF_READNEVER)
     return 0;
@@ -2228,7 +2233,8 @@ dwarf2_has_info (struct objfile *objfile
 
   if (dwarf2_per_objfile == NULL)
     dwarf2_per_objfile = dwarf2_objfile_data_key.emplace (objfile, objfile,
-							  names);
+							  names,
+							  can_copy);
 
   return (!dwarf2_per_objfile->info.is_virtual
 	  && dwarf2_per_objfile->info.s.section != NULL
@@ -8184,7 +8190,9 @@ build_type_psymtabs_reader (const struct
   attr = dwarf2_attr_no_follow (type_unit_die, DW_AT_stmt_list);
   tu_group = get_type_unit_group (cu, attr);
 
-  VEC_safe_push (sig_type_ptr, tu_group->tus, sig_type);
+  if (tu_group->tus == nullptr)
+    tu_group->tus = new std::vector<signatured_type *>;
+  tu_group->tus->push_back (sig_type);
 
   prepare_one_comp_unit (cu, type_unit_die, language_minimal);
   pst = create_partial_symtab (per_cu, "");
@@ -8341,8 +8349,7 @@ build_type_psymtab_dependencies (void **
   struct type_unit_group *tu_group = (struct type_unit_group *) *slot;
   struct dwarf2_per_cu_data *per_cu = &tu_group->per_cu;
   struct partial_symtab *pst = per_cu->v.psymtab;
-  int len = VEC_length (sig_type_ptr, tu_group->tus);
-  struct signatured_type *iter;
+  int len = (tu_group->tus == nullptr) ? 0 : tu_group->tus->size ();
   int i;
 
   gdb_assert (len > 0);
@@ -8350,16 +8357,16 @@ build_type_psymtab_dependencies (void **
 
   pst->number_of_dependencies = len;
   pst->dependencies = objfile->partial_symtabs->allocate_dependencies (len);
-  for (i = 0;
-       VEC_iterate (sig_type_ptr, tu_group->tus, i, iter);
-       ++i)
+  for (i = 0; i < len; ++i)
     {
+      struct signatured_type *iter = tu_group->tus->at (i);
       gdb_assert (iter->per_cu.is_debug_types);
       pst->dependencies[i] = iter->per_cu.v.psymtab;
       iter->type_unit_group = tu_group;
     }
 
-  VEC_free (sig_type_ptr, tu_group->tus);
+  delete tu_group->tus;
+  tu_group->tus = nullptr;
 
   return 1;
 }
@@ -8816,6 +8823,7 @@ partial_die_parent_scope (struct partial
       return NULL;
     }
 
+  /* Nested subroutines in Fortran get a prefix.  */
   if (pdi->tag == DW_TAG_enumerator)
     /* Enumerators should not get the name of the enumeration as a prefix.  */
     parent->scope = grandparent_scope;
@@ -8825,7 +8833,10 @@ partial_die_parent_scope (struct partial
       || parent->tag == DW_TAG_class_type
       || parent->tag == DW_TAG_interface_type
       || parent->tag == DW_TAG_union_type
-      || parent->tag == DW_TAG_enumeration_type)
+      || parent->tag == DW_TAG_enumeration_type
+      || (cu->language == language_fortran
+	  && parent->tag == DW_TAG_subprogram
+	  && pdi->tag == DW_TAG_subprogram))
     {
       if (grandparent_scope == NULL)
 	parent->scope = parent->name;
@@ -8916,12 +8927,16 @@ add_partial_symbol (struct partial_die_i
     case DW_TAG_subprogram:
       addr = (gdbarch_adjust_dwarf2_addr (gdbarch, pdi->lowpc + baseaddr)
 	      - baseaddr);
-      if (pdi->is_external || cu->language == language_ada)
-	{
-          /* brobecker/2007-12-26: Normally, only "external" DIEs are part
-             of the global scope.  But in Ada, we want to be able to access
-             nested procedures globally.  So all Ada subprograms are stored
-             in the global scope.  */
+      if (pdi->is_external
+	  || cu->language == language_ada
+	  || (cu->language == language_fortran
+	      && pdi->die_parent != NULL
+	      && pdi->die_parent->tag == DW_TAG_subprogram))
+	{
+          /* Normally, only "external" DIEs are part of the global scope.
+             But in Ada and Fortran, we want to be able to access nested
+             procedures globally.  So all Ada and Fortran subprograms are
+             stored in the global scope.  */
 	  add_psymbol_to_list (actual_name, strlen (actual_name),
 			       built_actual_name != NULL,
 			       VAR_DOMAIN, LOC_BLOCK,
@@ -9177,7 +9192,7 @@ add_partial_subprogram (struct partial_d
   if (! pdi->has_children)
     return;
 
-  if (cu->language == language_ada)
+  if (cu->language == language_ada || cu->language == language_fortran)
     {
       pdi = pdi->die_child;
       while (pdi != NULL)
@@ -10061,10 +10076,10 @@ quirk_rust_enum (struct type *type, stru
       SET_FIELD_BITPOS (TYPE_FIELD (type, 0), 0);
       TYPE_FIELD_NAME (type, 0) = "<<variants>>";
     }
-  else if (TYPE_NFIELDS (type) == 1)
+  /* A union with a single anonymous field is probably an old-style
+     univariant enum.  */
+  else if (TYPE_NFIELDS (type) == 1 && streq (TYPE_FIELD_NAME (type, 0), ""))
     {
-      /* We assume that a union with a single field is a univariant
-	 enum.  */
       /* Smash this type to be a structure type.  We have to do this
 	 because the type has already been recorded.  */
       TYPE_CODE (type) = TYPE_CODE_STRUCT;
@@ -10619,6 +10634,12 @@ process_die (struct die_info *die, struc
       read_type_unit_scope (die, cu);
       break;
     case DW_TAG_subprogram:
+      /* Nested subprograms in Fortran get a prefix.  */
+      if (cu->language == language_fortran
+	  && die->parent != NULL
+	  && die->parent->tag == DW_TAG_subprogram)
+	cu->processing_has_namespace_info = true;
+      /* Fall through.  */
     case DW_TAG_inlined_subroutine:
       read_func_scope (die, cu);
       break;
@@ -18646,10 +18667,10 @@ load_partial_dies (const struct die_read
 	 inside functions to find template arguments (if the name of the
 	 function does not already contain the template arguments).
 
-	 For Ada, we need to scan the children of subprograms and lexical
-	 blocks as well because Ada allows the definition of nested
-	 entities that could be interesting for the debugger, such as
-	 nested subprograms for instance.  */
+	 For Ada and Fortran, we need to scan the children of subprograms
+	 and lexical blocks as well because these languages allow the
+	 definition of nested entities that could be interesting for the
+	 debugger, such as nested subprograms for instance.  */
       if (last_die->has_children
 	  && (load_all
 	      || last_die->tag == DW_TAG_namespace
@@ -18664,7 +18685,8 @@ load_partial_dies (const struct die_read
 		      || last_die->tag == DW_TAG_interface_type
 		      || last_die->tag == DW_TAG_structure_type
 		      || last_die->tag == DW_TAG_union_type))
-	      || (cu->language == language_ada
+	      || ((cu->language == language_ada
+		   || cu->language == language_fortran)
 		  && (last_die->tag == DW_TAG_subprogram
 		      || last_die->tag == DW_TAG_lexical_block))))
 	{
@@ -21494,15 +21516,20 @@ var_decode_location (struct attribute *a
       unsigned int dummy;
 
       if (DW_BLOCK (attr)->data[0] == DW_OP_addr)
-	SYMBOL_VALUE_ADDRESS (sym) =
-	  read_address (objfile->obfd, DW_BLOCK (attr)->data + 1, cu, &dummy);
+	SET_SYMBOL_VALUE_ADDRESS (sym,
+				  read_address (objfile->obfd,
+						DW_BLOCK (attr)->data + 1,
+						cu, &dummy));
       else
-	SYMBOL_VALUE_ADDRESS (sym) =
-	  read_addr_index_from_leb128 (cu, DW_BLOCK (attr)->data + 1, &dummy);
+	SET_SYMBOL_VALUE_ADDRESS
+	  (sym, read_addr_index_from_leb128 (cu, DW_BLOCK (attr)->data + 1,
+					     &dummy));
       SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
       fixup_symbol_section (sym, objfile);
-      SYMBOL_VALUE_ADDRESS (sym) += ANOFFSET (objfile->section_offsets,
-					      SYMBOL_SECTION (sym));
+      SET_SYMBOL_VALUE_ADDRESS (sym,
+				SYMBOL_VALUE_ADDRESS (sym)
+				+ ANOFFSET (objfile->section_offsets,
+					    SYMBOL_SECTION (sym)));
       return;
     }
 
@@ -21616,7 +21643,7 @@ new_symbol (struct die_info *die, struct
 
 	      addr = attr_value_as_address (attr);
 	      addr = gdbarch_adjust_dwarf2_addr (gdbarch, addr + baseaddr);
-	      SYMBOL_VALUE_ADDRESS (sym) = addr;
+	      SET_SYMBOL_VALUE_ADDRESS (sym, addr);
 	    }
 	  SYMBOL_TYPE (sym) = objfile_type (objfile)->builtin_core_addr;
 	  SYMBOL_DOMAIN (sym) = LABEL_DOMAIN;
@@ -21629,14 +21656,15 @@ new_symbol (struct die_info *die, struct
 	  SYMBOL_ACLASS_INDEX (sym) = LOC_BLOCK;
 	  attr2 = dwarf2_attr (die, DW_AT_external, cu);
 	  if ((attr2 && (DW_UNSND (attr2) != 0))
-              || cu->language == language_ada)
+	      || cu->language == language_ada
+	      || cu->language == language_fortran)
 	    {
               /* Subprograms marked external are stored as a global symbol.
-                 Ada subprograms, whether marked external or not, are always
-                 stored as a global symbol, because we want to be able to
-                 access them globally.  For instance, we want to be able
-                 to break on a nested subprogram without having to
-                 specify the context.  */
+                 Ada and Fortran subprograms, whether marked external or
+                 not, are always stored as a global symbol, because we want
+                 to be able to access them globally.  For instance, we want
+                 to be able to break on a nested subprogram without having
+                 to specify the context.  */
 	      list_to_add = cu->get_builder ()->get_global_symbols ();
 	    }
 	  else
@@ -21709,19 +21737,21 @@ new_symbol (struct die_info *die, struct
 		}
 	      else if (attr2 && (DW_UNSND (attr2) != 0))
 		{
-		  /* Workaround gfortran PR debug/40040 - it uses
-		     DW_AT_location for variables in -fPIC libraries which may
-		     get overriden by other libraries/executable and get
-		     a different address.  Resolve it by the minimal symbol
-		     which may come from inferior's executable using copy
-		     relocation.  Make this workaround only for gfortran as for
-		     other compilers GDB cannot guess the minimal symbol
-		     Fortran mangling kind.  */
-		  if (cu->language == language_fortran && die->parent
-		      && die->parent->tag == DW_TAG_module
-		      && cu->producer
-		      && startswith (cu->producer, "GNU Fortran"))
-		    SYMBOL_ACLASS_INDEX (sym) = LOC_UNRESOLVED;
+		  if (SYMBOL_CLASS (sym) == LOC_STATIC
+		      && (objfile->flags & OBJF_MAINLINE) == 0
+		      && dwarf2_per_objfile->can_copy)
+		    {
+		      /* A global static variable might be subject to
+			 copy relocation.  We first check for a local
+			 minsym, though, because maybe the symbol was
+			 marked hidden, in which case this would not
+			 apply.  */
+		      bound_minimal_symbol found
+			= (lookup_minimal_symbol_linkage
+			   (SYMBOL_LINKAGE_NAME (sym), objfile));
+		      if (found.minsym != nullptr)
+			sym->maybe_copied = 1;
+		    }
 
 		  /* A variable with DW_AT_external is never static,
 		     but it may be block-scoped.  */
@@ -22631,6 +22661,16 @@ determine_prefix (struct die_info *die, 
 	      return name;
 	  }
 	return "";
+      case DW_TAG_subprogram:
+	/* Nested subroutines in Fortran get a prefix with the name
+	   of the parent's subroutine.  */
+	if (cu->language == language_fortran)
+	  {
+	    if ((die->tag ==  DW_TAG_subprogram)
+		&& (dwarf2_name (parent, cu) != NULL))
+	      return dwarf2_name (parent, cu);
+	  }
+	return determine_prefix (parent, cu);
       case DW_TAG_enumeration_type:
 	parent_type = read_type_die (parent, cu);
 	if (TYPE_DECLARED_CLASS (parent_type))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/dwarf2read.h ./gdb/dwarf2read.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/dwarf2read.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/dwarf2read.h	2019-10-08 01:49:30.000000000 +0000
@@ -106,9 +106,12 @@ struct dwarf2_per_objfile
 {
   /* Construct a dwarf2_per_objfile for OBJFILE.  NAMES points to the
      dwarf2 section names, or is NULL if the standard ELF names are
-     used.  */
+     used.  CAN_COPY is true for formats where symbol
+     interposition is possible and so symbol values must follow copy
+     relocation rules.  */
   dwarf2_per_objfile (struct objfile *objfile,
-		      const dwarf2_debug_sections *names);
+		      const dwarf2_debug_sections *names,
+		      bool can_copy);
 
   ~dwarf2_per_objfile ();
 
@@ -208,6 +211,9 @@ public:
      original data was compressed using 'dwz -m'.  */
   std::unique_ptr<struct dwz_file> dwz_file;
 
+  /* Whether copy relocations are supported by this object format.  */
+  bool can_copy;
+
   /* A flag indicating whether this objfile has a section loaded at a
      VMA of 0.  */
   bool has_section_at_zero = false;
@@ -401,9 +407,6 @@ struct signatured_type
   struct dwo_unit *dwo_unit;
 };
 
-typedef struct signatured_type *sig_type_ptr;
-DEF_VEC_P (sig_type_ptr);
-
 ULONGEST read_unsigned_leb128 (bfd *, const gdb_byte *, unsigned int *);
 
 /* This represents a '.dwz' file.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/elfread.c ./gdb/elfread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/elfread.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/elfread.c	2019-10-08 01:49:30.000000000 +0000
@@ -47,6 +47,7 @@
 #include "location.h"
 #include "auxv.h"
 #include "mdebugread.h"
+#include "ctfread.h"
 
 /* Forward declarations.  */
 extern const struct sym_fns elf_sym_fns_gdb_index;
@@ -61,6 +62,7 @@ struct elfinfo
   {
     asection *stabsect;		/* Section pointer for .stab section */
     asection *mdebugsect;	/* Section pointer for .mdebug section */
+    asection *ctfsect;		/* Section pointer for .ctf section */
   };
 
 /* Type for per-BFD data.  */
@@ -188,6 +190,10 @@ elf_locate_sections (bfd *ignore_abfd, a
     {
       ei->mdebugsect = sectp;
     }
+  else if (strcmp (sectp->name, ".ctf") == 0)
+    {
+      ei->ctfsect = sectp;
+    }
 }
 
 static struct minimal_symbol *
@@ -203,10 +209,16 @@ record_minimal_symbol (minimal_symbol_re
       || ms_type == mst_text_gnu_ifunc)
     address = gdbarch_addr_bits_remove (gdbarch, address);
 
-  return reader.record_full (name, name_len, copy_name, address,
-			     ms_type,
-			     gdb_bfd_section_index (objfile->obfd,
-						    bfd_section));
+  struct minimal_symbol *result
+    = reader.record_full (name, name_len, copy_name, address,
+			  ms_type,
+			  gdb_bfd_section_index (objfile->obfd,
+						 bfd_section));
+  if ((objfile->flags & OBJF_MAINLINE) == 0
+      && (ms_type == mst_data || ms_type == mst_bss))
+    result->maybe_copied = 1;
+
+  return result;
 }
 
 /* Read the symbol table of an ELF file.
@@ -1053,7 +1065,8 @@ elf_read_minimal_symbols (struct objfile
      go away once all types of symbols are in the per-BFD object.  */
   if (objfile->per_bfd->minsyms_read
       && ei->stabsect == NULL
-      && ei->mdebugsect == NULL)
+      && ei->mdebugsect == NULL
+      && ei->ctfsect == NULL)
     {
       if (symtab_create_debug)
 	fprintf_unfiltered (gdb_stdlog,
@@ -1194,6 +1207,7 @@ elf_symfile_read (struct objfile *objfil
 {
   bfd *abfd = objfile->obfd;
   struct elfinfo ei;
+  bool has_dwarf2 = true;
 
   memset ((char *) &ei, 0, sizeof (ei));
   if (!(objfile->flags & OBJF_READNEVER))
@@ -1239,7 +1253,7 @@ elf_symfile_read (struct objfile *objfil
 				bfd_section_size (str_sect));
     }
 
-  if (dwarf2_has_info (objfile, NULL))
+  if (dwarf2_has_info (objfile, NULL, true))
     {
       dw_index_kind index_kind;
 
@@ -1296,6 +1310,14 @@ elf_symfile_read (struct objfile *objfil
 	  symbol_file_add_separate (debug_bfd.get (), debugfile.c_str (),
 				    symfile_flags, objfile);
 	}
+	else
+	  has_dwarf2 = false;
+    }
+
+  /* Read the CTF section only if there is no DWARF info.  */
+  if (!has_dwarf2 && ei.ctfsect)
+    {
+      elfctf_build_psymtabs (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.3.50.20191001/gdb/expprint.c ./gdb/expprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/expprint.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/expprint.c	2019-10-08 01:49:30.000000000 +0000
@@ -29,6 +29,7 @@
 #include "block.h"
 #include "objfiles.h"
 #include "valprint.h"
+#include "cli/cli-style.h"
 
 #include <ctype.h>
 
@@ -510,8 +511,9 @@ print_subexp_standard (struct expression
       if (exp->language_defn->la_name_of_this)
 	fputs_filtered (exp->language_defn->la_name_of_this, stream);
       else
-	fprintf_filtered (stream, _("<language %s has no 'this'>"),
-			  exp->language_defn->la_name);
+	fprintf_styled (stream, metadata_style.style (),
+			_("<language %s has no 'this'>"),
+			exp->language_defn->la_name);
       return;
 
       /* Modula-2 ops */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/f-lang.c ./gdb/f-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/f-lang.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/f-lang.c	2019-10-08 01:49:30.000000000 +0000
@@ -673,9 +673,9 @@ extern const struct language_defn f_lang
   default_pass_by_reference,
   default_get_string,
   c_watch_location_expression,
-  NULL,				/* la_get_symbol_name_matcher */
+  cp_get_symbol_name_matcher,	/* la_get_symbol_name_matcher */
   iterate_over_symbols,
-  default_search_name_hash,
+  cp_search_name_hash,
   &default_varobj_ops,
   NULL,
   NULL,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/f-typeprint.c ./gdb/f-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/f-typeprint.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/f-typeprint.c	2019-10-08 01:49:30.000000000 +0000
@@ -31,6 +31,7 @@
 #include "target.h"
 #include "f-lang.h"
 #include "typeprint.h"
+#include "cli/cli-style.h"
 
 #if 0				/* Currently unused.  */
 static void f_type_print_args (struct type *, struct ui_file *);
@@ -325,7 +326,7 @@ f_type_print_base (struct type *type, st
   wrap_here ("    ");
   if (type == NULL)
     {
-      fputs_filtered ("<type unknown>", stream);
+      fputs_styled ("<type unknown>", metadata_style.style (), stream);
       return;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/f-valprint.c ./gdb/f-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/f-valprint.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/f-valprint.c	2019-10-08 01:49:30.000000000 +0000
@@ -33,6 +33,7 @@
 #include "command.h"
 #include "block.h"
 #include "dictionary.h"
+#include "cli/cli-style.h"
 
 static void f77_get_dynamic_length_of_aggregate (struct type *);
 
@@ -415,8 +416,9 @@ info_common_command_for_block (const str
 
 	    catch (const gdb_exception_error &except)
 	      {
-		printf_filtered ("<error reading variable: %s>",
-				 except.what ());
+		fprintf_styled (gdb_stdout, metadata_style.style (),
+				"<error reading variable: %s>",
+				except.what ());
 	      }
 
 	    putchar_filtered ('\n');
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/ChangeLog ./gdb/gdbserver/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/ChangeLog	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbserver/ChangeLog	2019-10-08 01:49:31.000000000 +0000
@@ -1,3 +1,42 @@
+2019-10-02  Christian Biesinger  <cbiesinger@google.com>
+
+	* server.c (server_waiting): Change to bool.
+	(extended_protocol): Likewise.
+	(response_needed): Likewise.
+	(exit_requested): Likewise.
+	(run_once): Likewise.
+	(report_no_resumed): Likewise.
+	(non_stop): Likewise.
+	(disable_packet_vCont): Likewise.
+	(disable_packet_Tthread): Likewise.
+	(disable_packet_qC): Likewise.
+	(disable_packet_qfThreadInfo): Likewise.
+	(handle_general_set): Update.
+	(handle_detach): Update.
+	(handle_monitor_command): Update.
+	(handle_query): Update.
+	(captured_main): Update.
+	(process_serial_event): Update.
+	* server.h (server_waiting): Change to bool.
+	(disable_packet_vCont): Likewise.
+	(disable_packet_Tthread): Likewise.
+	(disable_packet_qC): Likewise.
+	(disable_packet_qfThreadInfo): Likewise.
+	(run_once): Likewise.
+	(non_stop): Likewise.
+	* target.c (target_stop_and_wait): Update.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* Makefile.in (SFILES): Add common-inferior.c.
+	(OBS): Add common-inferior.o.
+	* server.c (startup_with_shell): Don't define.
+
+2019-10-02  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* linux-low.c (linux_low_read_btrace): Update for change to
+	std::vector.
+
 2019-09-20  Christian Biesinger  <cbiesinger@google.com>
 
 	* debug.c (debug_threads): Remove comment in favor of the header.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/linux-low.c ./gdb/gdbserver/linux-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/linux-low.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbserver/linux-low.c	2019-10-08 01:49:31.000000000 +0000
@@ -7115,9 +7115,7 @@ linux_low_read_btrace (struct btrace_tar
 		       enum btrace_read_type type)
 {
   struct btrace_data btrace;
-  struct btrace_block *block;
   enum btrace_error err;
-  int i;
 
   err = linux_read_btrace (&btrace, tinfo, type);
   if (err != BTRACE_ERR_NONE)
@@ -7140,11 +7138,9 @@ linux_low_read_btrace (struct btrace_tar
       buffer_grow_str (buffer, "<!DOCTYPE btrace SYSTEM \"btrace.dtd\">\n");
       buffer_grow_str (buffer, "<btrace version=\"1.0\">\n");
 
-      for (i = 0;
-	   VEC_iterate (btrace_block_s, btrace.variant.bts.blocks, i, block);
-	   i++)
+      for (const btrace_block &block : *btrace.variant.bts.blocks)
 	buffer_xml_printf (buffer, "<block begin=\"0x%s\" end=\"0x%s\"/>\n",
-			   paddress (block->begin), paddress (block->end));
+			   paddress (block.begin), paddress (block.end));
 
       buffer_grow_str0 (buffer, "</btrace>\n");
       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.3.50.20191001/gdb/gdbserver/Makefile.in ./gdb/gdbserver/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/Makefile.in	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbserver/Makefile.in	2019-10-08 01:49:31.000000000 +0000
@@ -203,6 +203,7 @@ SFILES = \
 	$(srcdir)/gdbsupport/cleanups.c \
 	$(srcdir)/gdbsupport/common-debug.c \
 	$(srcdir)/gdbsupport/common-exceptions.c \
+	$(srcdir)/gdbsupport/common-inferior.c \
 	$(srcdir)/gdbsupport/common-regcache.c \
 	$(srcdir)/gdbsupport/common-utils.c \
 	$(srcdir)/gdbsupport/errors.c \
@@ -248,6 +249,7 @@ OBS = \
 	gdbsupport/cleanups.o \
 	gdbsupport/common-debug.o \
 	gdbsupport/common-exceptions.o \
+	gdbsupport/common-inferior.o \
 	gdbsupport/job-control.o \
 	gdbsupport/common-regcache.o \
 	gdbsupport/common-utils.o \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/server.c ./gdb/gdbserver/server.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/server.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbserver/server.c	2019-10-08 01:49:31.000000000 +0000
@@ -67,25 +67,19 @@ char *current_directory;
 
 static gdb_environ our_environ;
 
-/* Start the inferior using a shell.  */
+bool server_waiting;
 
-/* We always try to start the inferior using a shell.  */
-
-int startup_with_shell = 1;
-
-int server_waiting;
-
-static int extended_protocol;
-static int response_needed;
-static int exit_requested;
+static bool extended_protocol;
+static bool response_needed;
+static bool exit_requested;
 
 /* --once: Exit after the first connection has closed.  */
-int run_once;
+bool run_once;
 
 /* Whether to report TARGET_WAITKING_NO_RESUMED events.  */
-static int report_no_resumed;
+static bool report_no_resumed;
 
-int non_stop;
+bool non_stop;
 
 static struct {
   /* Set the PROGRAM_PATH.  Here we adjust the path of the provided
@@ -129,10 +123,10 @@ unsigned long signal_pid;
 /* Set if you want to disable optional thread related packets support
    in gdbserver, for the sake of testing GDB against stubs that don't
    support them.  */
-int disable_packet_vCont;
-int disable_packet_Tthread;
-int disable_packet_qC;
-int disable_packet_qfThreadInfo;
+bool disable_packet_vCont;
+bool disable_packet_Tthread;
+bool disable_packet_qC;
+bool disable_packet_qfThreadInfo;
 
 static unsigned char *mem_buf;
 
@@ -750,7 +744,7 @@ handle_general_set (char *own_buf)
 	  return;
 	}
 
-      non_stop = req;
+      non_stop = (req != 0);
 
       if (remote_debug)
 	debug_printf ("[%s mode enabled]\n", req_str);
@@ -1237,7 +1231,7 @@ handle_detach (char *own_buf)
 	  if (debug_threads)
 	    debug_printf ("Forcing non-stop mode\n");
 
-	  non_stop = 1;
+	  non_stop = true;
 	  start_non_stop (1);
 	}
 
@@ -1406,7 +1400,7 @@ handle_monitor_command (char *mon, char 
   else if (strcmp (mon, "help") == 0)
     monitor_show_help ();
   else if (strcmp (mon, "exit") == 0)
-    exit_requested = 1;
+    exit_requested = true;
   else
     {
       monitor_output ("Unknown monitor command.\n\n");
@@ -2337,7 +2331,7 @@ handle_query (char *own_buf, int packet_
 		{
 		  /* GDB supports and wants TARGET_WAITKIND_NO_RESUMED
 		     events.  */
-		  report_no_resumed = 1;
+		  report_no_resumed = true;
 		}
 	      else
 		{
@@ -3645,19 +3639,19 @@ captured_main (int argc, char *argv[])
 	       tok = strtok (NULL, ","))
 	    {
 	      if (strcmp ("vCont", tok) == 0)
-		disable_packet_vCont = 1;
+		disable_packet_vCont = true;
 	      else if (strcmp ("Tthread", tok) == 0)
-		disable_packet_Tthread = 1;
+		disable_packet_Tthread = true;
 	      else if (strcmp ("qC", tok) == 0)
-		disable_packet_qC = 1;
+		disable_packet_qC = true;
 	      else if (strcmp ("qfThreadInfo", tok) == 0)
-		disable_packet_qfThreadInfo = 1;
+		disable_packet_qfThreadInfo = true;
 	      else if (strcmp ("threads", tok) == 0)
 		{
-		  disable_packet_vCont = 1;
-		  disable_packet_Tthread = 1;
-		  disable_packet_qC = 1;
-		  disable_packet_qfThreadInfo = 1;
+		  disable_packet_vCont = true;
+		  disable_packet_Tthread = true;
+		  disable_packet_qC = true;
+		  disable_packet_qfThreadInfo = true;
 		}
 	      else
 		{
@@ -3685,7 +3679,7 @@ captured_main (int argc, char *argv[])
       else if (strcmp (*next_arg, "--no-startup-with-shell") == 0)
 	startup_with_shell = false;
       else if (strcmp (*next_arg, "--once") == 0)
-	run_once = 1;
+	run_once = true;
       else if (strcmp (*next_arg, "--selftest") == 0)
 	selftest = true;
       else if (startswith (*next_arg, "--selftest="))
@@ -4016,7 +4010,7 @@ process_serial_event (void)
 
   disable_async_io ();
 
-  response_needed = 0;
+  response_needed = false;
   packet_len = getpkt (cs.own_buf);
   if (packet_len <= 0)
     {
@@ -4024,7 +4018,7 @@ process_serial_event (void)
       /* Force an event loop break.  */
       return -1;
     }
-  response_needed = 1;
+  response_needed = true;
 
   char ch = cs.own_buf[0];
   switch (ch)
@@ -4039,7 +4033,7 @@ process_serial_event (void)
       handle_detach (cs.own_buf);
       break;
     case '!':
-      extended_protocol = 1;
+      extended_protocol = true;
       write_ok (cs.own_buf);
       break;
     case '?':
@@ -4254,7 +4248,7 @@ process_serial_event (void)
 	break;
       }
     case 'k':
-      response_needed = 0;
+      response_needed = false;
       if (!target_running ())
 	/* The packet we received doesn't make sense - but we can't
 	   reply to it, either.  */
@@ -4293,7 +4287,7 @@ process_serial_event (void)
       }
       break;
     case 'R':
-      response_needed = 0;
+      response_needed = false;
 
       /* Restarting the inferior is only supported in the extended
 	 protocol.  */
@@ -4354,7 +4348,7 @@ process_serial_event (void)
   else
     putpkt (cs.own_buf);
 
-  response_needed = 0;
+  response_needed = false;
 
   if (exit_requested)
     return -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.3.50.20191001/gdb/gdbserver/server.h ./gdb/gdbserver/server.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/server.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbserver/server.h	2019-10-08 01:49:31.000000000 +0000
@@ -68,15 +68,15 @@ void initialize_low ();
 
 /* Public variables in server.c */
 
-extern int server_waiting;
+extern bool server_waiting;
 
-extern int disable_packet_vCont;
-extern int disable_packet_Tthread;
-extern int disable_packet_qC;
-extern int disable_packet_qfThreadInfo;
+extern bool disable_packet_vCont;
+extern bool disable_packet_Tthread;
+extern bool disable_packet_qC;
+extern bool disable_packet_qfThreadInfo;
 
-extern int run_once;
-extern int non_stop;
+extern bool run_once;
+extern bool non_stop;
 
 #if USE_WIN32API
 #include <winsock2.h>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/target.c ./gdb/gdbserver/target.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbserver/target.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbserver/target.c	2019-10-08 01:49:31.000000000 +0000
@@ -205,7 +205,7 @@ void
 target_stop_and_wait (ptid_t ptid)
 {
   struct target_waitstatus status;
-  int was_non_stop = non_stop;
+  bool was_non_stop = non_stop;
   struct thread_resume resume_info;
 
   resume_info.thread = ptid;
@@ -213,7 +213,7 @@ target_stop_and_wait (ptid_t ptid)
   resume_info.sig = GDB_SIGNAL_0;
   (*the_target->resume) (&resume_info, 1);
 
-  non_stop = 1;
+  non_stop = true;
   mywait (ptid, &status, 0, 0);
   non_stop = was_non_stop;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/btrace-common.c ./gdb/gdbsupport/btrace-common.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/btrace-common.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbsupport/btrace-common.c	2019-10-08 01:49:31.000000000 +0000
@@ -73,7 +73,8 @@ btrace_data::fini ()
       return;
 
     case BTRACE_FORMAT_BTS:
-      VEC_free (btrace_block_s, variant.bts.blocks);
+      delete variant.bts.blocks;
+      variant.bts.blocks = nullptr;
       return;
 
     case BTRACE_FORMAT_PT:
@@ -95,7 +96,7 @@ btrace_data::empty () const
       return true;
 
     case BTRACE_FORMAT_BTS:
-      return VEC_empty (btrace_block_s, variant.bts.blocks);
+      return variant.bts.blocks->empty ();
 
     case BTRACE_FORMAT_PT:
       return (variant.pt.size == 0);
@@ -132,7 +133,7 @@ btrace_data_append (struct btrace_data *
 
 	case BTRACE_FORMAT_NONE:
 	  dst->format = BTRACE_FORMAT_BTS;
-	  dst->variant.bts.blocks = NULL;
+	  dst->variant.bts.blocks = new std::vector<btrace_block>;
 
 	  /* Fall-through.  */
 	case BTRACE_FORMAT_BTS:
@@ -141,15 +142,12 @@ btrace_data_append (struct btrace_data *
 
 	    /* We copy blocks in reverse order to have the oldest block at
 	       index zero.  */
-	    blk = VEC_length (btrace_block_s, src->variant.bts.blocks);
+	    blk = src->variant.bts.blocks->size ();
 	    while (blk != 0)
 	      {
-		btrace_block_s *block;
-
-		block = VEC_index (btrace_block_s, src->variant.bts.blocks,
-				   --blk);
-
-		VEC_safe_push (btrace_block_s, dst->variant.bts.blocks, block);
+		const btrace_block &block
+		  = src->variant.bts.blocks->at (--blk);
+		dst->variant.bts.blocks->push_back (block);
 	      }
 	  }
 	}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/btrace-common.h ./gdb/gdbsupport/btrace-common.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/btrace-common.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbsupport/btrace-common.h	2019-10-08 01:49:31.000000000 +0000
@@ -26,8 +26,6 @@
    inferior.  For presentation purposes, the branch trace is represented as a
    list of sequential control-flow blocks, one such list per thread.  */
 
-#include "vec.h"
-
 /* A branch trace block.
 
    This represents a block of sequential control-flow.  Adjacent blocks will be
@@ -43,11 +41,15 @@ struct btrace_block
 
   /* The address of the first byte of the last instruction in the block.  */
   CORE_ADDR end;
-};
 
-/* Define functions operating on a vector of branch trace blocks.  */
-typedef struct btrace_block btrace_block_s;
-DEF_VEC_O (btrace_block_s);
+  /* Simple constructor.  */
+  btrace_block (CORE_ADDR begin, CORE_ADDR end)
+    : begin (begin),
+      end (end)
+  {
+    /* Nothing.  */
+  }
+};
 
 /* Enumeration of btrace formats.  */
 
@@ -137,8 +139,9 @@ struct btrace_config
 struct btrace_data_bts
 {
   /* Branch trace is represented as a vector of branch trace blocks starting
-     with the most recent block.  */
-  VEC (btrace_block_s) *blocks;
+     with the most recent block.  This needs to be a pointer as we place
+     btrace_data_bts into a union.  */
+  std::vector<btrace_block> *blocks;
 };
 
 /* Configuration information to go with the trace data.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/common-inferior.c ./gdb/gdbsupport/common-inferior.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/common-inferior.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/gdbsupport/common-inferior.c	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,26 @@
+/* Functions to deal with the inferior being executed on GDB or
+   GDBserver.
+
+   Copyright (C) 2019 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/>.  */
+
+#include "gdbsupport/common-defs.h"
+#include "gdbsupport/common-inferior.h"
+
+/* See common-inferior.h.  */
+
+bool startup_with_shell = true;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/common-inferior.h ./gdb/gdbsupport/common-inferior.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/common-inferior.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbsupport/common-inferior.h	2019-10-08 01:49:31.000000000 +0000
@@ -38,4 +38,24 @@ extern const char *get_inferior_cwd ();
    the directory.  */
 extern void set_inferior_cwd (const char *cwd);
 
+/* Whether to start up the debuggee under a shell.
+
+   If startup-with-shell is set, GDB's "run" will attempt to start up
+   the debuggee under a shell.  This also happens when using GDBserver
+   under extended remote mode.
+
+   This is in order for argument-expansion to occur.  E.g.,
+
+   (gdb) run *
+
+   The "*" gets expanded by the shell into a list of files.
+
+   While this is a nice feature, it may be handy to bypass the shell
+   in some cases.  To disable this feature, do "set startup-with-shell
+   false".
+
+   The catch-exec traps expected during start-up will be one more if
+   the target is started up with a shell.  */
+extern bool startup_with_shell;
+
 #endif /* COMMON_COMMON_INFERIOR_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/format.c ./gdb/gdbsupport/format.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/format.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbsupport/format.c	2019-10-08 01:49:31.000000000 +0000
@@ -20,10 +20,10 @@
 #include "common-defs.h"
 #include "format.h"
 
-format_pieces::format_pieces (const char **arg)
+format_pieces::format_pieces (const char **arg, bool gdb_extensions)
 {
   const char *s;
-  char *f, *string;
+  const char *string;
   const char *prev_start;
   const char *percent_loc;
   char *sub_start, *current_substring;
@@ -31,70 +31,79 @@ format_pieces::format_pieces (const char
 
   s = *arg;
 
-  /* Parse the format-control string and copy it into the string STRING,
-     processing some kinds of escape sequence.  */
+  if (gdb_extensions)
+    {
+      string = *arg;
+      *arg += strlen (*arg);
+    }
+  else
+    {
+      /* Parse the format-control string and copy it into the string STRING,
+	 processing some kinds of escape sequence.  */
 
-  f = string = (char *) alloca (strlen (s) + 1);
+      char *f = (char *) alloca (strlen (s) + 1);
+      string = f;
 
-  while (*s != '"' && *s != '\0')
-    {
-      int c = *s++;
-      switch (c)
+      while ((gdb_extensions || *s != '"') && *s != '\0')
 	{
-	case '\0':
-	  continue;
-
-	case '\\':
-	  switch (c = *s++)
+	  int c = *s++;
+	  switch (c)
 	    {
+	    case '\0':
+	      continue;
+
 	    case '\\':
-	      *f++ = '\\';
-	      break;
-	    case 'a':
-	      *f++ = '\a';
-	      break;
-	    case 'b':
-	      *f++ = '\b';
-	      break;
-	    case 'e':
-	      *f++ = '\e';
-	      break;
-	    case 'f':
-	      *f++ = '\f';
-	      break;
-	    case 'n':
-	      *f++ = '\n';
-	      break;
-	    case 'r':
-	      *f++ = '\r';
-	      break;
-	    case 't':
-	      *f++ = '\t';
-	      break;
-	    case 'v':
-	      *f++ = '\v';
-	      break;
-	    case '"':
-	      *f++ = '"';
+	      switch (c = *s++)
+		{
+		case '\\':
+		  *f++ = '\\';
+		  break;
+		case 'a':
+		  *f++ = '\a';
+		  break;
+		case 'b':
+		  *f++ = '\b';
+		  break;
+		case 'e':
+		  *f++ = '\e';
+		  break;
+		case 'f':
+		  *f++ = '\f';
+		  break;
+		case 'n':
+		  *f++ = '\n';
+		  break;
+		case 'r':
+		  *f++ = '\r';
+		  break;
+		case 't':
+		  *f++ = '\t';
+		  break;
+		case 'v':
+		  *f++ = '\v';
+		  break;
+		case '"':
+		  *f++ = '"';
+		  break;
+		default:
+		  /* ??? TODO: handle other escape sequences.  */
+		  error (_("Unrecognized escape character \\%c in format string."),
+			 c);
+		}
 	      break;
+
 	    default:
-	      /* ??? TODO: handle other escape sequences.  */
-	      error (_("Unrecognized escape character \\%c in format string."),
-		     c);
+	      *f++ = c;
 	    }
-	  break;
-
-	default:
-	  *f++ = c;
 	}
-    }
 
-  /* Terminate our escape-processed copy.  */
-  *f++ = '\0';
+      /* Terminate our escape-processed copy.  */
+      *f++ = '\0';
 
-  /* Whether the format string ended with double-quote or zero, we're
-     done with it; it's up to callers to complain about syntax.  */
-  *arg = s;
+      /* Whether the format string ended with double-quote or zero, we're
+	 done with it; it's up to callers to complain about syntax.  */
+      *arg = s;
+    }
 
   /* Need extra space for the '\0's.  Doubling the size is sufficient.  */
 
@@ -105,7 +114,7 @@ format_pieces::format_pieces (const char
      argclass classifies the %-specs so we can give printf-type functions
      something of the right size.  */
 
-  f = string;
+  const char *f = string;
   prev_start = string;
   while (*f)
     if (*f++ == '%')
@@ -115,6 +124,7 @@ format_pieces::format_pieces (const char
 	int seen_big_l = 0, seen_h = 0, seen_big_h = 0;
 	int seen_big_d = 0, seen_double_big_d = 0;
 	int bad = 0;
+	int n_int_args = 0;
 
 	/* Skip over "%%", it will become part of a literal piece.  */
 	if (*f == '%')
@@ -129,7 +139,8 @@ format_pieces::format_pieces (const char
 	current_substring += f - 1 - prev_start;
 	*current_substring++ = '\0';
 
-	m_pieces.emplace_back (sub_start, literal_piece);
+	if (*sub_start != '\0')
+	  m_pieces.emplace_back (sub_start, literal_piece, 0);
 
 	percent_loc = f - 1;
 
@@ -154,16 +165,32 @@ format_pieces::format_pieces (const char
 	  }
 
 	/* The next part of a format specifier is a width.  */
-	while (*f != '\0' && strchr ("0123456789", *f))
-	  f++;
+	if (gdb_extensions && *f == '*')
+	  {
+	    ++f;
+	    ++n_int_args;
+	  }
+	else
+	  {
+	    while (*f != '\0' && strchr ("0123456789", *f))
+	      f++;
+	  }
 
 	/* The next part of a format specifier is a precision.  */
 	if (*f == '.')
 	  {
 	    seen_prec = 1;
 	    f++;
-	    while (*f != '\0' && strchr ("0123456789", *f))
-	      f++;
+	    if (gdb_extensions && *f == '*')
+	      {
+		++f;
+		++n_int_args;
+	      }
+	    else
+	      {
+		while (*f != '\0' && strchr ("0123456789", *f))
+		  f++;
+	      }
 	  }
 
 	/* The next part of a format specifier is a length modifier.  */
@@ -251,6 +278,20 @@ format_pieces::format_pieces (const char
 	      bad = 1;
 	    if (seen_hash || seen_zero || seen_space || seen_plus)
 	      bad = 1;
+
+	    if (gdb_extensions)
+	      {
+		switch (f[1])
+		  {
+		  case 's':
+		  case 'F':
+		  case '[':
+		  case ']':
+		    f++;
+		    break;
+		  }
+	      }
+
 	    break;
 
 	  case 's':
@@ -335,16 +376,19 @@ format_pieces::format_pieces (const char
 
 	prev_start = f;
 
-	m_pieces.emplace_back (sub_start, this_argclass);
+	m_pieces.emplace_back (sub_start, this_argclass, n_int_args);
       }
 
   /* Record the remainder of the string.  */
 
-  sub_start = current_substring;
+  if (f > prev_start)
+    {
+      sub_start = current_substring;
 
-  strncpy (current_substring, prev_start, f - prev_start);
-  current_substring += f - prev_start;
-  *current_substring++ = '\0';
+      strncpy (current_substring, prev_start, f - prev_start);
+      current_substring += f - prev_start;
+      *current_substring++ = '\0';
 
-  m_pieces.emplace_back (sub_start, literal_piece);
+      m_pieces.emplace_back (sub_start, literal_piece, 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.3.50.20191001/gdb/gdbsupport/format.h ./gdb/gdbsupport/format.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/format.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbsupport/format.h	2019-10-08 01:49:31.000000000 +0000
@@ -50,9 +50,10 @@ enum argclass
 
 struct format_piece
 {
-  format_piece (const char *str, enum argclass argc)
+  format_piece (const char *str, enum argclass argc, int n)
     : string (str),
-      argclass (argc)
+      argclass (argc),
+      n_int_args (n)
   {
   }
 
@@ -64,13 +65,17 @@ struct format_piece
 
   const char *string;
   enum argclass argclass;
+  /* Count the number of preceding 'int' arguments that must be passed
+     along.  This is used for a width or precision of '*'.  Note that
+     this feature is only available in "gdb_extensions" mode.  */
+  int n_int_args;
 };
 
 class format_pieces
 {
 public:
 
-  format_pieces (const char **arg);
+  format_pieces (const char **arg, bool gdb_extensions = false);
   ~format_pieces () = default;
 
   DISABLE_COPY_AND_ASSIGN (format_pieces);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/gdb_assert.h ./gdb/gdbsupport/gdb_assert.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/gdb_assert.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbsupport/gdb_assert.h	2019-10-08 01:49:31.000000000 +0000
@@ -19,6 +19,8 @@
 #ifndef COMMON_GDB_ASSERT_H
 #define COMMON_GDB_ASSERT_H
 
+#include "errors.h"
+
 /* A static assertion.  This will cause a compile-time error if EXPR,
    which must be a compile-time constant, is false.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/gdb_string_view.h ./gdb/gdbsupport/gdb_string_view.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gdbsupport/gdb_string_view.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gdbsupport/gdb_string_view.h	2019-10-08 01:49:31.000000000 +0000
@@ -46,6 +46,7 @@ namespace gdb {
 
 #include <string>
 #include <limits>
+#include "gdb_assert.h"
 
 namespace 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.3.50.20191001/gdb/gnu-v3-abi.c ./gdb/gnu-v3-abi.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/gnu-v3-abi.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/gnu-v3-abi.c	2019-10-08 01:49:31.000000000 +0000
@@ -28,6 +28,7 @@
 #include "c-lang.h"
 #include "typeprint.h"
 #include <algorithm>
+#include "cli/cli-style.h"
 
 static struct cp_abi_ops gnu_v3_abi_ops;
 
@@ -912,7 +913,8 @@ print_one_vtable (struct gdbarch *gdbarc
 	}
       catch (const gdb_exception_error &ex)
 	{
-	  printf_filtered (_("<error: %s>"), ex.what ());
+	  fprintf_styled (gdb_stdout, metadata_style.style (),
+			  _("<error: %s>"), ex.what ());
 	  got_error = 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.3.50.20191001/gdb/infcmd.c ./gdb/infcmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/infcmd.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/infcmd.c	2019-10-08 01:49:31.000000000 +0000
@@ -60,6 +60,7 @@
 #include "interps.h"
 #include "gdbsupport/gdb_optional.h"
 #include "source.h"
+#include "cli/cli-style.h"
 
 /* Local functions: */
 
@@ -103,10 +104,6 @@ enum stop_stack_kind stop_stack_dummy;
 
 int stopped_by_random_signal;
 
-/* See inferior.h.  */
-
-bool startup_with_shell = true;
-
 
 /* Accessor routines.  */
 
@@ -1628,7 +1625,8 @@ print_return_value_1 (struct ui_out *uio
 	  uiout->field_stream ("return-value", stb);
 	}
       else
-	uiout->field_string ("return-value", _("<not displayed>"));
+	uiout->field_string ("return-value", _("<not displayed>"),
+			     metadata_style.style ());
       uiout->text ("\n");
     }
   else
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/inferior.h ./gdb/inferior.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/inferior.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/inferior.h	2019-10-08 01:49:31.000000000 +0000
@@ -227,25 +227,6 @@ extern struct value *get_return_value (s
 extern void prepare_execution_command (struct target_ops *target,
 				       int background);
 
-/* Whether to start up the debuggee under a shell.
-
-   If startup-with-shell is set, GDB's "run" will attempt to start up
-   the debuggee under a shell.
-
-   This is in order for argument-expansion to occur.  E.g.,
-
-   (gdb) run *
-
-   The "*" gets expanded by the shell into a list of files.
-
-   While this is a nice feature, it may be handy to bypass the shell
-   in some cases.  To disable this feature, do "set startup-with-shell
-   false".
-
-   The catch-exec traps expected during start-up will be one more if
-   the target is started up with a shell.  */
-extern bool startup_with_shell;
-
 /* Nonzero if stopped due to completion of a stack dummy routine.  */
 
 extern enum stop_stack_kind stop_stack_dummy;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/infrun.c ./gdb/infrun.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/infrun.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/infrun.c	2019-10-08 01:49:31.000000000 +0000
@@ -7656,24 +7656,19 @@ print_exited_reason (struct ui_out *uiou
     {
       if (uiout->is_mi_like_p ())
 	uiout->field_string ("reason", async_reason_lookup (EXEC_ASYNC_EXITED));
-      uiout->text ("[Inferior ");
-      uiout->text (plongest (inf->num));
-      uiout->text (" (");
-      uiout->text (pidstr.c_str ());
-      uiout->text (") exited with code ");
-      uiout->field_fmt ("exit-code", "0%o", (unsigned int) exitstatus);
-      uiout->text ("]\n");
+      std::string exit_code_str
+	= string_printf ("0%o", (unsigned int) exitstatus);
+      uiout->message ("[Inferior %s (%s) exited with code %pF]\n",
+		      plongest (inf->num), pidstr.c_str (),
+		      string_field ("exit-code", exit_code_str.c_str ()));
     }
   else
     {
       if (uiout->is_mi_like_p ())
 	uiout->field_string
 	  ("reason", async_reason_lookup (EXEC_ASYNC_EXITED_NORMALLY));
-      uiout->text ("[Inferior ");
-      uiout->text (plongest (inf->num));
-      uiout->text (" (");
-      uiout->text (pidstr.c_str ());
-      uiout->text (") exited normally]\n");
+      uiout->message ("[Inferior %s (%s) exited normally]\n",
+		      plongest (inf->num), pidstr.c_str ());
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/linux-nat.c ./gdb/linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/linux-nat.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/linux-nat.c	2019-10-08 01:49:31.000000000 +0000
@@ -3146,9 +3146,12 @@ linux_nat_filter_event (int lwpid, int s
 
       /* When using hardware single-step, we need to report every signal.
 	 Otherwise, signals in pass_mask may be short-circuited
-	 except signals that might be caused by a breakpoint.  */
+	 except signals that might be caused by a breakpoint, or SIGSTOP
+	 if we sent the SIGSTOP and are waiting for it to arrive.  */
       if (!lp->step
 	  && WSTOPSIG (status) && sigismember (&pass_mask, WSTOPSIG (status))
+	  && (WSTOPSIG (status) != SIGSTOP
+	      || !find_thread_ptid (lp->ptid)->stop_requested)
 	  && !linux_wstatus_maybe_breakpoint (status))
 	{
 	  linux_resume_one_lwp (lp, lp->step, signo);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/linux-thread-db.c ./gdb/linux-thread-db.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/linux-thread-db.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/linux-thread-db.c	2019-10-08 01:49:31.000000000 +0000
@@ -48,6 +48,7 @@
 #include <algorithm>
 #include "gdbsupport/pathstuff.h"
 #include "valprint.h"
+#include "cli/cli-style.h"
 
 /* GNU/Linux libthread_db support.
 
@@ -933,8 +934,9 @@ try_thread_db_load_1 (struct thread_db_i
 	 enabled.  User visible output should not depend on debug
 	 settings.  */
       file = *libthread_db_search_path != '\0' ? gdb_stdout : gdb_stdlog;
-      fprintf_unfiltered (file, _("Using host libthread_db library \"%s\".\n"),
-			  library);
+      fprintf_unfiltered (file,
+			  _("Using host libthread_db library \"%ps\".\n"),
+			  styled_string (file_name_style.style (), library));
     }
 
   /* The thread library was detected.  Activate the thread_db target
@@ -1028,7 +1030,8 @@ try_thread_db_load_from_pdir_1 (struct o
   if (obj_name[0] != '/')
     {
       warning (_("Expected absolute pathname for libpthread in the"
-		 " inferior, but got %s."), obj_name);
+		 " inferior, but got %ps."),
+	       styled_string (file_name_style.style (), obj_name));
       return false;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/m2-typeprint.c ./gdb/m2-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/m2-typeprint.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/m2-typeprint.c	2019-10-08 01:49:31.000000000 +0000
@@ -31,6 +31,7 @@
 #include "c-lang.h"
 #include "typeprint.h"
 #include "cp-abi.h"
+#include "cli/cli-style.h"
 
 static void m2_print_bounds (struct type *type,
 			     struct ui_file *stream, int show, int level,
@@ -81,7 +82,7 @@ m2_print_type (struct type *type, const 
   wrap_here ("    ");
   if (type == NULL)
     {
-      fputs_filtered (_("<type unknown>"), stream);
+      fputs_styled (_("<type unknown>"), metadata_style.style (), stream);
       return;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/m2-valprint.c ./gdb/m2-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/m2-valprint.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/m2-valprint.c	2019-10-08 01:49:31.000000000 +0000
@@ -28,6 +28,7 @@
 #include "c-lang.h"
 #include "m2-lang.h"
 #include "target.h"
+#include "cli/cli-style.h"
 
 static int print_unpacked_pointer (struct type *type,
 				   CORE_ADDR address, CORE_ADDR addr,
@@ -92,7 +93,8 @@ m2_print_long_set (struct type *type, co
     }
   else
     {
-      fprintf_filtered (stream, " %s }", _("<unknown bounds of set>"));
+      fprintf_styled (stream, metadata_style.style (),
+		      " %s }", _("<unknown bounds of set>"));
       return;
     }
 
@@ -407,7 +409,8 @@ m2_val_print (struct type *type, int emb
       elttype = check_typedef (elttype);
       if (TYPE_STUB (elttype))
 	{
-	  fprintf_filtered (stream, _("<incomplete type>"));
+	  fprintf_styled (stream, metadata_style.style (),
+			  _("<incomplete type>"));
 	  break;
 	}
       else
@@ -423,7 +426,8 @@ m2_val_print (struct type *type, int emb
 	maybe_bad_bstring:
 	  if (i < 0)
 	    {
-	      fputs_filtered (_("<error value>"), stream);
+	      fputs_styled (_("<error value>"), metadata_style.style (),
+			    stream);
 	      goto done;
 	    }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/macrocmd.c ./gdb/macrocmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/macrocmd.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/macrocmd.c	2019-10-08 01:49:31.000000000 +0000
@@ -120,8 +120,10 @@ show_pp_source_pos (struct ui_file *stre
                     int line)
 {
   std::string fullname = macro_source_fullname (file);
-  fputs_styled (fullname.c_str (), file_name_style.style (), stream);
-  fprintf_filtered (stream, ":%d\n", line);
+  fprintf_filtered (stream, "%ps:%d\n",
+		    styled_string (file_name_style.style (),
+				   fullname.c_str ()),
+		    line);
 
   while (file->included_by)
     {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/main.c ./gdb/main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/main.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/main.c	2019-10-08 01:49:31.000000000 +0000
@@ -214,8 +214,7 @@ relocate_gdbinit_path_maybe_in_datadir (
       size_t start = datadir_len;
       for (; IS_DIR_SEPARATOR (file[start]); ++start)
 	;
-      relocated_path = (std::string (gdb_datadir) + SLASH_STRING
-			+ file.substr (start));
+      relocated_path = gdb_datadir + SLASH_STRING + file.substr (start);
     }
   else
     {
@@ -549,9 +548,8 @@ captured_main_1 (struct captured_main_ar
     = xstrdup (relocate_gdb_directory (DEBUGDIR,
 				     DEBUGDIR_RELOCATABLE).c_str ());
 
-  gdb_datadir
-    = xstrdup (relocate_gdb_directory (GDB_DATADIR,
-				     GDB_DATADIR_RELOCATABLE).c_str ());
+  gdb_datadir = relocate_gdb_directory (GDB_DATADIR,
+					GDB_DATADIR_RELOCATABLE);
 
 #ifdef WITH_PYTHON_PATH
   {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/MAINTAINERS ./gdb/MAINTAINERS
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/MAINTAINERS	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/MAINTAINERS	2019-10-08 01:49:30.000000000 +0000
@@ -311,7 +311,7 @@ the native maintainer when resolving ABI
 	rx		--target=rx-elf ,-Werror
 
 	s390		--target=s390-linux-gnu ,-Werror
-			Andreas Arnez		arnez@linux.vnet.ibm.com
+			Andreas Arnez		arnez@linux.ibm.com
 
 	score	--target=score-elf
 	sh		--target=sh-elf ,-Werror
@@ -441,7 +441,7 @@ FSF assignment and have submitted one go
 Pedro Alves					pedro_alves@portugalmail.pt
 David Anderson					davea@sgi.com
 John David Anglin				dave.anglin@nrc-cnrc.gc.ca
-Andreas Arnez					arnez@linux.vnet.ibm.com
+Andreas Arnez					arnez@linux.ibm.com
 Shrinivas Atre					shrinivasa@kpitcummins.com
 Sterling Augustine				saugustine@google.com
 John Baldwin					jhb@freebsd.org
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/Makefile.in ./gdb/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/Makefile.in	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/Makefile.in	2019-10-08 01:49:30.000000000 +0000
@@ -153,6 +153,9 @@ INCLUDE_CFLAGS = -I$(INCLUDE_DIR)
 # Where is the "-liberty" library?  Typically in ../libiberty.
 LIBIBERTY = ../libiberty/libiberty.a
 
+# Where is the CTF library?  Typically in ../libctf.
+LIBCTF = ../libctf/.libs/libctf.a
+
 # Where is the BFD library?  Typically in ../bfd.
 BFD_DIR = ../bfd
 BFD = $(BFD_DIR)/libbfd.a
@@ -588,13 +591,14 @@ INTERNAL_LDFLAGS = \
 # Libraries and corresponding dependencies for compiling gdb.
 # XM_CLIBS, defined in *config files, have host-dependent libs.
 # LIBIBERTY appears twice on purpose.
-CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(ZLIB) $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \
+CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(LIBCTF) $(ZLIB) \
+        $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \
 	$(XM_CLIBS) $(GDBTKLIBS) \
 	@LIBS@ @GUILE_LIBS@ @PYTHON_LIBS@ \
 	$(LIBEXPAT) $(LIBLZMA) $(LIBBABELTRACE) $(LIBIPT) \
 	$(LIBIBERTY) $(WIN32LIBS) $(LIBGNU) $(LIBICONV) $(LIBMPFR) \
 	$(SRCHIGH_LIBS)
-CDEPS = $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) \
+CDEPS = $(NAT_CDEPS) $(SIM) $(BFD) $(READLINE_DEPS) $(LIBCTF) \
 	$(OPCODES) $(INTL_DEPS) $(LIBIBERTY) $(CONFIG_DEPS) $(LIBGNU)
 
 DIST = gdb
@@ -953,6 +957,7 @@ COMMON_SFILES = \
 	gdbsupport/cleanups.c \
 	gdbsupport/common-debug.c \
 	gdbsupport/common-exceptions.c \
+	gdbsupport/common-inferior.c \
 	gdbsupport/common-regcache.c \
 	gdbsupport/common-utils.c \
 	gdbsupport/errors.c \
@@ -987,7 +992,7 @@ COMMON_SFILES = \
 	cp-namespace.c \
 	cp-support.c \
 	cp-valprint.c \
-	ctf.c \
+	ctfread.c \
 	d-lang.c \
 	d-namespace.c \
 	d-valprint.c \
@@ -1123,6 +1128,7 @@ COMMON_SFILES = \
 	thread-iter.c \
 	tid-parse.c \
 	top.c \
+	tracectf.c \
 	tracefile.c \
 	tracefile-tfile.c \
 	tracepoint.c \
@@ -1223,7 +1229,6 @@ HFILES_NO_SRCDIR = \
 	cp-abi.h \
 	cp-support.h \
 	csky-tdep.h \
-	ctf.h \
 	d-lang.h \
 	darwin-nat.h \
 	dcache.h \
@@ -1397,6 +1402,7 @@ HFILES_NO_SRCDIR = \
 	terminal.h \
 	tid-parse.h \
 	top.h \
+	tracectf.h \
 	tracefile.h \
 	tracepoint.h \
 	trad-frame.h \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/mdebugread.c ./gdb/mdebugread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/mdebugread.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/mdebugread.c	2019-10-08 01:49:31.000000000 +0000
@@ -632,7 +632,7 @@ parse_symbol (SYMR *sh, union aux_ext *a
       b = BLOCKVECTOR_BLOCK (SYMTAB_BLOCKVECTOR (top_stack->cur_st),
 			     GLOBAL_BLOCK);
       s = new_symbol (name);
-      SYMBOL_VALUE_ADDRESS (s) = (CORE_ADDR) sh->value;
+      SET_SYMBOL_VALUE_ADDRESS (s, (CORE_ADDR) sh->value);
       add_data_symbol (sh, ax, bigend, s, LOC_STATIC, b, objfile, name);
       break;
 
@@ -649,7 +649,7 @@ parse_symbol (SYMR *sh, union aux_ext *a
 	  global_sym_chain[bucket] = s;
 	}
       else
-	SYMBOL_VALUE_ADDRESS (s) = (CORE_ADDR) sh->value;
+	SET_SYMBOL_VALUE_ADDRESS (s, (CORE_ADDR) sh->value);
       add_data_symbol (sh, ax, bigend, s, LOC_STATIC, b, objfile, name);
       break;
 
@@ -706,7 +706,7 @@ parse_symbol (SYMR *sh, union aux_ext *a
       s = new_symbol (name);
       SYMBOL_DOMAIN (s) = VAR_DOMAIN;	/* So that it can be used */
       SYMBOL_ACLASS_INDEX (s) = LOC_LABEL;	/* but not misused.  */
-      SYMBOL_VALUE_ADDRESS (s) = (CORE_ADDR) sh->value;
+      SET_SYMBOL_VALUE_ADDRESS (s, (CORE_ADDR) sh->value);
       SYMBOL_TYPE (s) = objfile_type (objfile)->builtin_int;
       add_symbol (s, top_stack->cur_st, top_stack->cur_block);
       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.3.50.20191001/gdb/mi/mi-main.c ./gdb/mi/mi-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/mi/mi-main.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/mi/mi-main.c	2019-10-08 01:49:31.000000000 +0000
@@ -46,7 +46,6 @@
 #include "osdata.h"
 #include "gdbsupport/gdb_splay_tree.h"
 #include "tracepoint.h"
-#include "ctf.h"
 #include "ada-lang.h"
 #include "linespec.h"
 #include "extension.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/mi/mi-out.c ./gdb/mi/mi-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/mi/mi-out.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/mi/mi-out.c	2019-10-08 01:49:31.000000000 +0000
@@ -70,9 +70,9 @@ mi_ui_out::do_table_header (int width, u
   do_field_signed (0, 0, ui_center, "width", width);
   do_field_signed (0, 0, ui_center, "alignment", alignment);
   do_field_string (0, 0, ui_center, "col_name", col_name.c_str (),
-		   ui_out_style_kind::DEFAULT);
+		   ui_file_style ());
   do_field_string (0, width, alignment, "colhdr", col_hdr.c_str (),
-		   ui_out_style_kind::DEFAULT);
+		   ui_file_style ());
   close (ui_out_type_tuple);
 }
 
@@ -99,7 +99,7 @@ mi_ui_out::do_field_signed (int fldno, i
 			    const char *fldname, LONGEST value)
 {
   do_field_string (fldno, width, alignment, fldname, plongest (value),
-		   ui_out_style_kind::DEFAULT);
+		   ui_file_style ());
 }
 
 /* Output an unsigned field.  */
@@ -109,7 +109,7 @@ mi_ui_out::do_field_unsigned (int fldno,
 			      const char *fldname, ULONGEST value)
 {
   do_field_string (fldno, width, alignment, fldname, pulongest (value),
-		   ui_out_style_kind::DEFAULT);
+		   ui_file_style ());
 }
 
 /* Used to omit a field.  */
@@ -126,7 +126,7 @@ mi_ui_out::do_field_skip (int fldno, int
 void
 mi_ui_out::do_field_string (int fldno, int width, ui_align align,
 			    const char *fldname, const char *string,
-			    ui_out_style_kind style)
+			    const ui_file_style &style)
 {
   ui_file *stream = m_streams.back ();
   field_separator ();
@@ -141,8 +141,8 @@ mi_ui_out::do_field_string (int fldno, i
 
 void
 mi_ui_out::do_field_fmt (int fldno, int width, ui_align align,
-			 const char *fldname, const char *format,
-			 va_list args)
+			 const char *fldname, const ui_file_style &style,
+			 const char *format, va_list args)
 {
   ui_file *stream = m_streams.back ();
   field_separator ();
@@ -166,7 +166,8 @@ mi_ui_out::do_text (const char *string)
 }
 
 void
-mi_ui_out::do_message (const char *format, va_list args)
+mi_ui_out::do_message (const ui_file_style &style,
+		       const char *format, va_list args)
 {
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/mi/mi-out.h ./gdb/mi/mi-out.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/mi/mi-out.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/mi/mi-out.h	2019-10-08 01:49:31.000000000 +0000
@@ -66,14 +66,16 @@ protected:
 			   const char *fldname) override;
   virtual void do_field_string (int fldno, int width, ui_align align,
 				const char *fldname, const char *string,
-				ui_out_style_kind style) override;
+				const ui_file_style &style) override;
   virtual void do_field_fmt (int fldno, int width, ui_align align,
-			  const char *fldname, const char *format, va_list args)
-    override ATTRIBUTE_PRINTF (6,0);
+			     const char *fldname, const ui_file_style &style,
+			     const char *format, va_list args)
+    override ATTRIBUTE_PRINTF (7,0);
   virtual void do_spaces (int numspaces) override;
   virtual void do_text (const char *string) override;
-  virtual void do_message (const char *format, va_list args) override
-    ATTRIBUTE_PRINTF (2,0);
+  virtual void do_message (const ui_file_style &style,
+			   const char *format, va_list args) override
+    ATTRIBUTE_PRINTF (3,0);
   virtual void do_wrap_hint (const char *identstring) override;
   virtual void do_flush () override;
   virtual void do_redirect (struct ui_file *outstream) override;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/minsyms.c ./gdb/minsyms.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/minsyms.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/minsyms.c	2019-10-08 01:49:31.000000000 +0000
@@ -519,6 +519,29 @@ iterate_over_minimal_symbols
 
 /* See minsyms.h.  */
 
+bound_minimal_symbol
+lookup_minimal_symbol_linkage (const char *name, struct objfile *objf)
+{
+  unsigned int hash = msymbol_hash (name) % MINIMAL_SYMBOL_HASH_SIZE;
+
+  for (objfile *objfile : objf->separate_debug_objfiles ())
+    {
+      for (minimal_symbol *msymbol = objfile->per_bfd->msymbol_hash[hash];
+	   msymbol != NULL;
+	   msymbol = msymbol->hash_next)
+	{
+	  if (strcmp (MSYMBOL_LINKAGE_NAME (msymbol), name) == 0
+	      && (MSYMBOL_TYPE (msymbol) == mst_data
+		  || MSYMBOL_TYPE (msymbol) == mst_bss))
+	    return {msymbol, objfile};
+	}
+    }
+
+  return {};
+}
+
+/* See minsyms.h.  */
+
 struct bound_minimal_symbol
 lookup_minimal_symbol_text (const char *name, struct objfile *objf)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/minsyms.h ./gdb/minsyms.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/minsyms.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/minsyms.h	2019-10-08 01:49:31.000000000 +0000
@@ -205,6 +205,17 @@ struct bound_minimal_symbol lookup_bound
 struct bound_minimal_symbol lookup_minimal_symbol_text (const char *,
 							struct objfile *);
 
+/* Look through the minimal symbols in OBJF (and its separate debug
+   objfiles) for a global (not file-local) minsym whose linkage name
+   is NAME.  This is somewhat similar to lookup_minimal_symbol_text,
+   only data symbols (not text symbols) are considered, and a non-NULL
+   objfile is not accepted.  Returns a bound minimal symbol that
+   matches, or an "empty" bound minimal symbol otherwise.  */
+
+extern struct bound_minimal_symbol lookup_minimal_symbol_linkage
+  (const char *name, struct objfile *objf)
+  ATTRIBUTE_NONNULL (1) ATTRIBUTE_NONNULL (2);
+
 /* Look through all the current minimal symbol tables and find the
    first minimal symbol that matches NAME and PC.  If OBJF is non-NULL,
    limit the search to that objfile.  Returns a pointer to the minimal
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/nat/fork-inferior.h ./gdb/nat/fork-inferior.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/nat/fork-inferior.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/nat/fork-inferior.h	2019-10-08 01:49:31.000000000 +0000
@@ -54,26 +54,6 @@ extern ptid_t startup_inferior (pid_t pi
 				struct target_waitstatus *mystatus,
 				ptid_t *myptid);
 
-/* Whether to start up the debuggee under a shell.
-
-   If startup-with-shell is set, GDB's "run" will attempt to start up
-   the debuggee under a shell.  This also happens when using GDBserver
-   under extended remote mode.
-
-   This is in order for argument-expansion to occur.  E.g.,
-
-   (gdb) run *
-
-   The "*" gets expanded by the shell into a list of files.
-
-   While this is a nice feature, it may be handy to bypass the shell
-   in some cases.  To disable this feature, do "set startup-with-shell
-   false".
-
-   The catch-exec traps expected during start-up will be one more if
-   the target is started up with a shell.  */
-extern bool startup_with_shell;
-
 /* Perform any necessary tasks before a fork/vfork takes place.  ARGS
    is a string containing all the arguments received by the inferior.
    This function is mainly used by fork_inferior.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/nat/linux-btrace.c ./gdb/nat/linux-btrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/nat/linux-btrace.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/nat/linux-btrace.c	2019-10-08 01:49:31.000000000 +0000
@@ -271,11 +271,11 @@ perf_event_sample_ok (const struct perf_
    In case the buffer overflows during sampling, one sample may have its lower
    part at the end and its upper part at the beginning of the buffer.  */
 
-static VEC (btrace_block_s) *
+static std::vector<btrace_block> *
 perf_event_read_bts (struct btrace_target_info* tinfo, const uint8_t *begin,
 		     const uint8_t *end, const uint8_t *start, size_t size)
 {
-  VEC (btrace_block_s) *btrace = NULL;
+  std::vector<btrace_block> *btrace = new std::vector<btrace_block>;
   struct perf_event_sample sample;
   size_t read = 0;
   struct btrace_block block = { 0, 0 };
@@ -343,7 +343,7 @@ perf_event_read_bts (struct btrace_targe
       /* We found a valid sample, so we can complete the current block.  */
       block.begin = psample->bts.to;
 
-      VEC_safe_push (btrace_block_s, btrace, &block);
+      btrace->push_back (block);
 
       /* Start the next block.  */
       block.end = psample->bts.from;
@@ -354,7 +354,7 @@ perf_event_read_bts (struct btrace_targe
      reading delta trace, we can fill in the start address later on.
      Otherwise we will prune it.  */
   block.begin = 0;
-  VEC_safe_push (btrace_block_s, btrace, &block);
+  btrace->push_back (block);
 
   return btrace;
 }
@@ -785,7 +785,8 @@ linux_read_bts (struct btrace_data_bts *
       data_head = *pevent->data_head;
 
       /* Delete any leftover trace from the previous iteration.  */
-      VEC_free (btrace_block_s, btrace->blocks);
+      delete btrace->blocks;
+      btrace->blocks = nullptr;
 
       if (type == BTRACE_READ_DELTA)
 	{
@@ -843,9 +844,8 @@ linux_read_bts (struct btrace_data_bts *
   /* Prune the incomplete last block (i.e. the first one of inferior execution)
      if we're not doing a delta read.  There is no way of filling in its zeroed
      BEGIN element.  */
-  if (!VEC_empty (btrace_block_s, btrace->blocks)
-      && type != BTRACE_READ_DELTA)
-    VEC_pop (btrace_block_s, btrace->blocks);
+  if (!btrace->blocks->empty () && type != BTRACE_READ_DELTA)
+    btrace->blocks->pop_back ();
 
   return BTRACE_ERR_NONE;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/NEWS ./gdb/NEWS
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/NEWS	2019-10-01 01:49:29.000000000 +0000
+++ ./gdb/NEWS	2019-10-08 01:49:30.000000000 +0000
@@ -34,6 +34,18 @@
 
 * GDB can now be compiled with Python 3 on Windows.
 
+* New convenience variable $_ada_exception holds the address of the
+  Ada exception being thrown.  This is set by Ada-related catchpoints.
+
+* GDB can now place breakpoints on nested functions and subroutines in
+  Fortran code.  The '::' operator can be used between parent and
+  child scopes when placing breakpoints, for example:
+
+    (gdb) break outer_function::inner_function
+
+  The 'outer_function::' prefix is only needed if 'inner_function' is
+  not visible in the current scope.
+
 * Python API
 
   ** The gdb.Value type has a new method 'format_string' which returns a
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/objfiles.c ./gdb/objfiles.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/objfiles.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/objfiles.c	2019-10-08 01:49:31.000000000 +0000
@@ -707,7 +707,9 @@ relocate_one_symbol (struct symbol *sym,
        || SYMBOL_CLASS (sym) == LOC_STATIC)
       && SYMBOL_SECTION (sym) >= 0)
     {
-      SYMBOL_VALUE_ADDRESS (sym) += ANOFFSET (delta, SYMBOL_SECTION (sym));
+      SET_SYMBOL_VALUE_ADDRESS (sym,
+				SYMBOL_VALUE_ADDRESS (sym)
+				+ ANOFFSET (delta, SYMBOL_SECTION (sym)));
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/p-lang.c ./gdb/p-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/p-lang.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/p-lang.c	2019-10-08 01:49:31.000000000 +0000
@@ -32,6 +32,7 @@
 #include <ctype.h>
 #include "c-lang.h"
 #include "gdbarch.h"
+#include "cli/cli-style.h"
 
 /* All GPC versions until now (2007-09-27) also define a symbol called
    '_p_initialize'.  Check for the presence of this symbol first.  */
@@ -292,7 +293,9 @@ pascal_printstr (struct ui_file *stream,
 	      in_quotes = 0;
 	    }
 	  pascal_printchar (current_char, type, stream);
-	  fprintf_filtered (stream, " <repeats %u times>", reps);
+	  fprintf_filtered (stream, " %p[<repeats %u times>%p]",
+			    metadata_style.style ().ptr (),
+			    reps, nullptr);
 	  i = rep1 - 1;
 	  things_printed += options->repeat_count_threshold;
 	  need_comma = 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.3.50.20191001/gdb/po/gdb.pot ./gdb/po/gdb.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/po/gdb.pot	2019-10-01 01:52:38.000000000 +0000
+++ ./gdb/po/gdb.pot	2019-10-08 01:53:10.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2019-10-01 01:52+0000\n"
+"POT-Creation-Date: 2019-10-08 01:53+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"
@@ -303,9 +303,9 @@ msgstr ""
 msgid "No definition of \"%s\" found."
 msgstr ""
 
-#: ada-exp.y:1328 c-exp.y:1088 c-exp.y:1141 cli/cli-cmds.c:1161 d-exp.y:493
+#: ada-exp.y:1328 c-exp.y:1088 c-exp.y:1141 cli/cli-cmds.c:1166 d-exp.y:493
 #: f-exp.y:504 go-exp.y:579 linespec.c:1623 linespec.c:3825 p-exp.y:707
-#: p-exp.y:766 source.c:194 symtab.c:4287
+#: p-exp.y:766 source.c:214 symtab.c:4272
 msgid "No symbol table is loaded.  Use the \"file\" command."
 msgstr ""
 
@@ -328,453 +328,458 @@ msgstr ""
 msgid "Invalid use of type."
 msgstr ""
 
-#: ada-lang.c:600
+#: ada-lang.c:601
 #, possible-c-format
 msgid "Unable to find field %s in struct %s.  Aborting"
 msgstr ""
 
-#: ada-lang.c:721
+#: ada-lang.c:722
 msgid "object size is larger than varsize-limit"
 msgstr ""
 
-#: ada-lang.c:786
+#: ada-lang.c:787
 msgid "Unexpected type in ada_discrete_type_high_bound."
 msgstr ""
 
-#: ada-lang.c:807
+#: ada-lang.c:808
 msgid "Unexpected type in ada_discrete_type_low_bound."
 msgstr ""
 
-#: ada-lang.c:905
+#: ada-lang.c:906
 msgid "Invalid address for Ada main program name."
 msgstr ""
 
-#: ada-lang.c:987
+#: ada-lang.c:988
 #, possible-c-format
 msgid "invalid Ada operator name: %s"
 msgstr ""
 
-#: ada-lang.c:1648 ada-lang.c:1666 ada-lang.c:1680 ada-lang.c:1748
+#: ada-lang.c:1649 ada-lang.c:1667 ada-lang.c:1681 ada-lang.c:1749
 msgid "Bad GNAT array descriptor"
 msgstr ""
 
-#: ada-lang.c:1785
+#: ada-lang.c:1786
 msgid "Bad GNAT array descriptor bounds"
 msgstr ""
 
-#: ada-lang.c:2028
+#: ada-lang.c:2029
 msgid "Bounds unavailable for null array pointer."
 msgstr ""
 
-#: ada-lang.c:2117
+#: ada-lang.c:2118
 msgid "could not understand bit size information on packed array"
 msgstr ""
 
-#: ada-lang.c:2215
+#: ada-lang.c:2216
 msgid "could not find bounds information on packed array"
 msgstr ""
 
-#: ada-lang.c:2222
+#: ada-lang.c:2223
 msgid "could not understand bounds information on packed array"
 msgstr ""
 
-#: ada-lang.c:2256
+#: ada-lang.c:2257
 msgid "can't unpack array"
 msgstr ""
 
-#: ada-lang.c:2309
+#: ada-lang.c:2310
 msgid "attempt to do packed indexing of something other than a packed array"
 msgstr ""
 
-#: ada-lang.c:2319
+#: ada-lang.c:2320
 msgid "don't know bounds of array"
 msgstr ""
 
-#: ada-lang.c:2325
+#: ada-lang.c:2326
 #, possible-c-format
 msgid "packed array index %ld out of bounds"
 msgstr ""
 
-#: ada-lang.c:2397
+#: ada-lang.c:2398
 #, possible-c-format
 msgid "Cannot unpack %d bits into buffer of %d bytes"
 msgstr ""
 
-#: ada-lang.c:2626 ada-lang.c:9836 valops.c:990
+#: ada-lang.c:2627 ada-lang.c:9818 valops.c:990
 msgid "Left operand of assignment is not a modifiable lvalue."
 msgstr ""
 
-#: ada-lang.c:2748 ada-lang.c:2806
+#: ada-lang.c:2749 ada-lang.c:2807
 #, possible-c-format
 msgid "too many subscripts (%d expected)"
 msgstr ""
 
-#: ada-lang.c:2841 ada-lang.c:2869
+#: ada-lang.c:2842 ada-lang.c:2870
 msgid "unable to get positions in slice, use bounds instead"
 msgstr ""
 
-#: ada-lang.c:2964
+#: ada-lang.c:2965
 #, possible-c-format
 msgid "invalid dimension number to '%s"
 msgstr ""
 
-#: ada-lang.c:2983
+#: ada-lang.c:2984
 msgid "attempt to take bound of something that is not an array"
 msgstr ""
 
-#: ada-lang.c:3147
+#: ada-lang.c:3148
 msgid "Could not find operator name for opcode"
 msgstr ""
 
-#: ada-lang.c:3342
+#: ada-lang.c:3343
 msgid "Unexpected operator during name resolution"
 msgstr ""
 
-#: ada-lang.c:3407
+#: ada-lang.c:3408
 #, possible-c-format
 msgid "No definition found for %s"
 msgstr ""
 
-#: ada-lang.c:3419 ada-lang.c:3470
+#: ada-lang.c:3420 ada-lang.c:3471
 #, possible-c-format
 msgid "Could not find a match for %s"
 msgstr ""
 
-#: ada-lang.c:3424 ada-lang.c:3714
+#: ada-lang.c:3425 ada-lang.c:3715
 #, possible-c-format
 msgid "Multiple matches for %s\n"
 msgstr ""
 
-#: ada-lang.c:3845
+#: ada-lang.c:3846
 msgid "Request to select 0 symbols!"
 msgstr ""
 
-#: ada-lang.c:3850 linespec.c:1541
+#: ada-lang.c:3851 linespec.c:1541
 msgid ""
 "canceled because the command is ambiguous\n"
 "See set/show multiple-symbol."
 msgstr ""
 
-#: ada-lang.c:3860
+#: ada-lang.c:3861
 msgid "[0] cancel\n"
 msgstr ""
 
-#: ada-lang.c:3862
+#: ada-lang.c:3863
 msgid "[1] all\n"
 msgstr ""
 
-#: ada-lang.c:3880
+#: ada-lang.c:3881
 #, possible-c-format
-msgid " at <no source file available>:%d\n"
+msgid " at %p[<no source file available>%p]:%d\n"
 msgstr ""
 
-#: ada-lang.c:3883 ada-lang.c:3904
+#: ada-lang.c:3885
+#, possible-c-format
+msgid " at %ps:%d\n"
+msgstr ""
+
+#: ada-lang.c:3907
 #, possible-c-format
 msgid " at %s:%d\n"
 msgstr ""
 
-#: ada-lang.c:3914
+#: ada-lang.c:3917
 #, possible-c-format
 msgid "'(%s) (enumeral)\n"
 msgstr ""
 
-#: ada-lang.c:3925
+#: ada-lang.c:3928
 #, possible-c-format
 msgid " in %s (enumeral)\n"
 msgstr ""
 
-#: ada-lang.c:3926
+#: ada-lang.c:3929
 #, possible-c-format
 msgid " at %s:?\n"
 msgstr ""
 
-#: ada-lang.c:3930
+#: ada-lang.c:3933
 msgid " (enumeral)\n"
 msgstr ""
 
-#: ada-lang.c:3931
+#: ada-lang.c:3934
 msgid " at ?\n"
 msgstr ""
 
-#: ada-lang.c:3977 ada-lang.c:3990 linespec.c:1562
+#: ada-lang.c:3980 ada-lang.c:3993 linespec.c:1562
 msgid "one or more choice numbers"
 msgstr ""
 
-#: ada-lang.c:3997
+#: ada-lang.c:4000
 msgid "Argument must be choice number"
 msgstr ""
 
-#: ada-lang.c:4001
+#: ada-lang.c:4004
 msgid "cancelled"
 msgstr ""
 
-#: ada-lang.c:4028
+#: ada-lang.c:4031
 #, possible-c-format
 msgid "Select no more than %d of the above"
 msgstr ""
 
 #. PNH: Do we ever get here?  See ada_search_struct_field,
 #. find_struct_field.
-#: ada-lang.c:7388
+#: ada-lang.c:7370
 msgid "Cannot assign this kind of variant record"
 msgstr ""
 
-#: ada-lang.c:7513 valops.c:2162
+#: ada-lang.c:7495 valops.c:2162
 #, possible-c-format
 msgid "There is no member named %s."
 msgstr ""
 
-#: ada-lang.c:7519
+#: ada-lang.c:7501
 msgid "Attempt to extract a component of a value that is not a record."
 msgstr ""
 
-#: ada-lang.c:7582
+#: ada-lang.c:7564
 #, possible-c-format
 msgid "Type %s is not a structure or union type"
 msgstr ""
 
-#: ada-lang.c:7583
+#: ada-lang.c:7565
 msgid "(null)"
 msgstr ""
 
-#: ada-lang.c:7666 inferior.c:420
+#: ada-lang.c:7648 inferior.c:420
 msgid "<null>"
 msgstr ""
 
-#: ada-lang.c:7668
+#: ada-lang.c:7650
 #, possible-c-format
 msgid "Type %s has no component named %s"
 msgstr ""
 
-#: ada-lang.c:7952
+#: ada-lang.c:7934
 msgid "unexpected null name on descriptive type"
 msgstr ""
 
-#: ada-lang.c:8341
+#: ada-lang.c:8323
 #, possible-c-format
 msgid "Invalid type size for `%s' detected: %s."
 msgstr ""
 
-#: ada-lang.c:8344
+#: ada-lang.c:8326
 #, possible-c-format
 msgid "Invalid type size for <unnamed> detected: %s."
 msgstr ""
 
-#: ada-lang.c:8355
+#: ada-lang.c:8337
 msgid "record type with dynamic size is larger than varsize-limit"
 msgstr ""
 
-#: ada-lang.c:8795
+#: ada-lang.c:8777
 msgid "array type with dynamic size is larger than varsize-limit"
 msgstr ""
 
-#: ada-lang.c:8904
+#: ada-lang.c:8886
 #, possible-c-format
 msgid "unable to read value of %s (%s)"
 msgstr ""
 
-#: ada-lang.c:9193
+#: ada-lang.c:9175
 msgid "'POS only defined on discrete types"
 msgstr ""
 
-#: ada-lang.c:9196
+#: ada-lang.c:9178
 msgid "enumeration value is invalid: can't find 'POS"
 msgstr ""
 
-#: ada-lang.c:9213
+#: ada-lang.c:9195
 msgid "'VAL only defined on discrete types"
 msgstr ""
 
-#: ada-lang.c:9215
+#: ada-lang.c:9197
 msgid "'VAL requires integral argument"
 msgstr ""
 
-#: ada-lang.c:9222
+#: ada-lang.c:9204
 msgid "argument to 'VAL out of range"
 msgstr ""
 
-#: ada-lang.c:9548 ada-lang.c:9586
+#: ada-lang.c:9530 ada-lang.c:9568
 msgid "unable to determine array bounds"
 msgstr ""
 
-#: ada-lang.c:9627
+#: ada-lang.c:9609
 msgid "cannot assign arrays of different length"
 msgstr ""
 
-#: ada-lang.c:9641
+#: ada-lang.c:9623
 msgid "Incompatible types in assignment"
 msgstr ""
 
-#: ada-lang.c:9675
+#: ada-lang.c:9657
 #, possible-c-format
 msgid "second operand of %s must not be zero."
 msgstr ""
 
-#: ada-lang.c:9726
+#: ada-lang.c:9708
 msgid "Attempt to compare array with non-array"
 msgstr ""
 
-#: ada-lang.c:9852
+#: ada-lang.c:9834
 msgid "Left-hand side must be array or record."
 msgstr ""
 
-#: ada-lang.c:9877
+#: ada-lang.c:9859
 msgid "Misplaced 'others' clause"
 msgstr ""
 
-#: ada-lang.c:9882
+#: ada-lang.c:9864
 msgid "Internal error: bad aggregate clause"
 msgstr ""
 
-#: ada-lang.c:9904
+#: ada-lang.c:9886
 msgid "Extra components in aggregate ignored."
 msgstr ""
 
-#: ada-lang.c:9971
+#: ada-lang.c:9953
 msgid "Invalid record component association."
 msgstr ""
 
-#: ada-lang.c:9977
+#: ada-lang.c:9959
 #, possible-c-format
 msgid "Unknown component name: %s."
 msgstr ""
 
-#: ada-lang.c:9982
+#: ada-lang.c:9964
 msgid "Index in component association out of bounds."
 msgstr ""
 
-#: ada-lang.c:10058
+#: ada-lang.c:10040
 msgid "Internal error: miscounted aggregate components."
 msgstr ""
 
-#: ada-lang.c:10482
+#: ada-lang.c:10464
 msgid "Fixed-point values must be assigned to fixed-point variables"
 msgstr ""
 
-#: ada-lang.c:10503
+#: ada-lang.c:10485
 msgid "Operands of fixed-point addition must have the same type"
 msgstr ""
 
-#: ada-lang.c:10529
+#: ada-lang.c:10511
 msgid "Operands of fixed-point subtraction must have the same type"
 msgstr ""
 
 #. Only encountered when an unresolved symbol occurs in a
 #. context other than a function call, in which case, it is
 #. invalid.
-#: ada-lang.c:10632 ada-lang.c:10722
+#: ada-lang.c:10614 ada-lang.c:10704
 #, possible-c-format
 msgid "Unexpected unresolved symbol, %s, during evaluation"
 msgstr ""
 
-#: ada-lang.c:10778
+#: ada-lang.c:10760
 #, possible-c-format
 msgid "cannot subscript or call something of type `%s'"
 msgstr ""
 
-#: ada-lang.c:10814
+#: ada-lang.c:10796
 msgid "cannot subscript or call a record"
 msgstr ""
 
-#: ada-lang.c:10816
+#: ada-lang.c:10798
 #, possible-c-format
 msgid "wrong number of subscripts; expecting %d"
 msgstr ""
 
-#: ada-lang.c:10828 ada-lang.c:10842
+#: ada-lang.c:10810 ada-lang.c:10824
 msgid "element type of array unknown"
 msgstr ""
 
-#: ada-lang.c:10851
+#: ada-lang.c:10833
 msgid "Attempt to index or call something other than an array or function"
 msgstr ""
 
-#: ada-lang.c:10881
+#: ada-lang.c:10863
 msgid "cannot slice a packed array"
 msgstr ""
 
-#: ada-lang.c:10910 valops.c:3802
+#: ada-lang.c:10892 valops.c:3802
 msgid "cannot take slice of non-array"
 msgstr ""
 
-#: ada-lang.c:10949
+#: ada-lang.c:10931
 msgid "Membership test incompletely implemented; always returns true"
 msgstr ""
 
-#: ada-lang.c:11038
+#: ada-lang.c:11020
 #, possible-c-format
 msgid "Invalid operand to '%s"
 msgstr ""
 
 #. Should never happen.
-#: ada-lang.c:11057 ada-lang.c:11091 ada-lang.c:11116 ada-lang.c:11148
+#: ada-lang.c:11039 ada-lang.c:11073 ada-lang.c:11098 ada-lang.c:11130
 msgid "unexpected attribute encountered"
 msgstr ""
 
-#: ada-lang.c:11124
+#: ada-lang.c:11106
 msgid "the 'length attribute applies only to array types"
 msgstr ""
 
-#: ada-lang.c:11128
+#: ada-lang.c:11110
 msgid "unimplemented type attribute"
 msgstr ""
 
-#: ada-lang.c:11198
+#: ada-lang.c:11180
 msgid "'modulus must be applied to modular type"
 msgstr ""
 
-#: ada-lang.c:11295
+#: ada-lang.c:11277
 msgid "Attempt to dereference null array pointer."
 msgstr ""
 
-#: ada-lang.c:11339 eval.c:2682 eval.c:3171 valops.c:1578
+#: ada-lang.c:11321 eval.c:2682 eval.c:3171 valops.c:1578
 msgid "Attempt to take contents of a non-pointer value."
 msgstr ""
 
-#: ada-lang.c:11418 eval.c:2893
+#: ada-lang.c:11400 eval.c:2893
 msgid "Attempt to use a type name as an expression"
 msgstr ""
 
-#: ada-lang.c:11430
+#: ada-lang.c:11412
 #, possible-c-format
 msgid ""
 "Undefined name, ambiguous name, or renaming used in component association: %"
 "s."
 msgstr ""
 
-#: ada-lang.c:11433
+#: ada-lang.c:11415
 msgid "Aggregates only allowed on the right of an assignment"
 msgstr ""
 
-#: ada-lang.c:11436
+#: ada-lang.c:11418
 msgid "aggregate apparently mangled"
 msgstr ""
 
-#: ada-lang.c:11714
+#: ada-lang.c:11696
 msgid "Unknown lower bound, using 1."
 msgstr ""
 
-#: ada-lang.c:11730
+#: ada-lang.c:11712
 #, possible-c-format
 msgid "Unknown upper bound, using %ld."
 msgstr ""
 
-#: ada-lang.c:11934 ada-lang.c:11957
+#: ada-lang.c:11916 ada-lang.c:11939
 msgid ""
 "Your Ada runtime appears to be missing some debugging information.\n"
 "Cannot insert Ada exception catchpoint in this configuration."
 msgstr ""
 
-#: ada-lang.c:11945 ada-lang.c:11968
+#: ada-lang.c:11927 ada-lang.c:11950
 #, possible-c-format
 msgid "Symbol \"%s\" is not a function (class = %d)"
 msgstr ""
 
-#: ada-lang.c:12019
+#: ada-lang.c:12001
 msgid "Unable to insert catchpoint.  Is this an Ada main program?"
 msgstr ""
 
-#: ada-lang.c:12027
+#: ada-lang.c:12009
 msgid "Unable to insert catchpoint. Try to start the program first."
 msgstr ""
 
@@ -784,134 +789,134 @@ msgstr ""
 #. configurable run time mode, or that a-except as been optimized
 #. out by the linker...  In any case, at this point it is not worth
 #. supporting this feature.
-#: ada-lang.c:12036
+#: ada-lang.c:12018
 msgid "Cannot insert Ada exception catchpoints in this configuration."
 msgstr ""
 
-#: ada-lang.c:12206 ada-lang.c:12625 ada-lang.c:12679 ada-lang.c:12714
+#: ada-lang.c:12188 ada-lang.c:12623 ada-lang.c:12676 ada-lang.c:12710
 msgid "unexpected catchpoint type"
 msgstr ""
 
-#: ada-lang.c:12291
+#: ada-lang.c:12273
 #, possible-c-format
 msgid "failed to get exception name: %s"
 msgstr ""
 
-#: ada-lang.c:12397
+#: ada-lang.c:12372
 #, possible-c-format
 msgid "failed to reevaluate internal exception condition for catchpoint %d: %s"
 msgstr ""
 
-#: ada-lang.c:12469
+#: ada-lang.c:12467
 msgid "Error in testing exception condition:\n"
 msgstr ""
 
-#: ada-lang.c:12595 ada-lang.c:12650
+#: ada-lang.c:12593 ada-lang.c:12647
 #, possible-c-format
 msgid "`%s' Ada exception"
 msgstr ""
 
-#: ada-lang.c:12613 ada-lang.c:12666
+#: ada-lang.c:12611 ada-lang.c:12663
 #, possible-c-format
 msgid "`%s' Ada exception handlers"
 msgstr ""
 
-#: ada-lang.c:12640 break-catch-throw.c:315
+#: ada-lang.c:12637 break-catch-throw.c:315
 msgid "Temporary catchpoint "
 msgstr ""
 
-#: ada-lang.c:12641
+#: ada-lang.c:12638
 msgid "Catchpoint "
 msgstr ""
 
-#: ada-lang.c:12655
+#: ada-lang.c:12652
 msgid "all Ada exceptions"
 msgstr ""
 
-#: ada-lang.c:12659
+#: ada-lang.c:12656
 msgid "unhandled Ada exceptions"
 msgstr ""
 
-#: ada-lang.c:12671
+#: ada-lang.c:12668
 msgid "all Ada exceptions handlers"
 msgstr ""
 
-#: ada-lang.c:12675
+#: ada-lang.c:12672
 msgid "failed Ada assertions"
 msgstr ""
 
-#: ada-lang.c:12957
+#: ada-lang.c:12771
 msgid "Condition missing after `if' keyword"
 msgstr ""
 
-#: ada-lang.c:12967 breakpoint.c:877 breakpoint.c:891
+#: ada-lang.c:12781 breakpoint.c:877 breakpoint.c:891
 msgid "Junk at end of expression"
 msgstr ""
 
-#: ada-lang.c:13021 ada-lang.c:13047
+#: ada-lang.c:12835 ada-lang.c:12861
 #, possible-c-format
 msgid "unexpected catchpoint kind (%d)"
 msgstr ""
 
-#: ada-lang.c:13148
+#: ada-lang.c:12950
 #, possible-c-format
 msgid "Catchpoint symbol not found: %s"
 msgstr ""
 
-#: ada-lang.c:13151
+#: ada-lang.c:12953
 #, possible-c-format
 msgid "Unable to insert catchpoint. %s is not a function."
 msgstr ""
 
-#: ada-lang.c:13285
+#: ada-lang.c:13087
 msgid "condition missing after `if' keyword"
 msgstr ""
 
-#: ada-lang.c:13292 break-catch-throw.c:440 breakpoint.c:9132
-#: breakpoint.c:10997 breakpoint.c:11129 breakpoint.c:11173 breakpoint.c:14783
+#: ada-lang.c:13094 break-catch-throw.c:440 breakpoint.c:9132
+#: breakpoint.c:10997 breakpoint.c:11129 breakpoint.c:11173 breakpoint.c:14780
 msgid "Junk at end of arguments."
 msgstr ""
 
-#: ada-lang.c:13608
+#: ada-lang.c:13410
 msgid "invalid regular expression"
 msgstr ""
 
-#: ada-lang.c:13623
+#: ada-lang.c:13425
 #, possible-c-format
 msgid "All Ada exceptions matching regular expression \"%s\":\n"
 msgstr ""
 
-#: ada-lang.c:13625
+#: ada-lang.c:13427
 msgid "All defined Ada exceptions:\n"
 msgstr ""
 
 #. XXX: gdb_sprint_host_address, type_sprint
-#: ada-lang.c:13805
+#: ada-lang.c:13607
 msgid "Type @"
 msgstr ""
 
-#: ada-lang.c:14359
+#: ada-lang.c:14161
 msgid "\"set ada\" must be followed by the name of a setting.\n"
 msgstr ""
 
-#: ada-lang.c:14442
+#: ada-lang.c:14244
 msgid "Prefix command for changing Ada-specific settings."
 msgstr ""
 
-#: ada-lang.c:14446
+#: ada-lang.c:14248
 msgid "Generic command for showing Ada-specific settings."
 msgstr ""
 
-#: ada-lang.c:14450
+#: ada-lang.c:14252
 msgid "Enable or disable an optimization trusting PAD types over XVS types."
 msgstr ""
 
-#: ada-lang.c:14451
+#: ada-lang.c:14253
 msgid ""
 "Show whether an optimization trusting PAD types over XVS types is activated."
 msgstr ""
 
-#: ada-lang.c:14453
+#: ada-lang.c:14255
 msgid ""
 "This is related to the encoding used by the GNAT compiler.  The debugger\n"
 "should normally trust the contents of PAD types, but certain older versions\n"
@@ -923,19 +928,19 @@ msgid ""
 "this option to \"off\" unless necessary."
 msgstr ""
 
-#: ada-lang.c:14464
+#: ada-lang.c:14266
 msgid ""
 "Enable or disable the output of formal and return types for functions in the "
 "overloads selection menu."
 msgstr ""
 
-#: ada-lang.c:14466
+#: ada-lang.c:14268
 msgid ""
 "Show whether the output of formal and return types for functions in the "
 "overloads selection menu is activated."
 msgstr ""
 
-#: ada-lang.c:14471
+#: ada-lang.c:14273
 msgid ""
 "Catch Ada exceptions, when raised.\n"
 "Usage: catch exception [ARG] [if CONDITION]\n"
@@ -949,7 +954,7 @@ msgid ""
 "exception should cause a stop."
 msgstr ""
 
-#: ada-lang.c:14487
+#: ada-lang.c:14289
 msgid ""
 "Catch Ada exceptions, when handled.\n"
 "Usage: catch handlers [ARG] [if CONDITION]\n"
@@ -959,7 +964,7 @@ msgid ""
 "exception should cause a stop."
 msgstr ""
 
-#: ada-lang.c:14498
+#: ada-lang.c:14300
 msgid ""
 "Catch failed Ada assertions, when raised.\n"
 "Usage: catch assert [if CONDITION]\n"
@@ -967,21 +972,21 @@ msgid ""
 "exception should cause a stop."
 msgstr ""
 
-#: ada-lang.c:14510
+#: ada-lang.c:14312
 msgid "Set the maximum number of bytes allowed in a variable-size object."
 msgstr ""
 
-#: ada-lang.c:14511
+#: ada-lang.c:14313
 msgid "Show the maximum number of bytes allowed in a variable-size object."
 msgstr ""
 
-#: ada-lang.c:14512
+#: ada-lang.c:14314
 msgid ""
 "Attempts to access an object whose size is not a compile-time constant\n"
 "and exceeds this limit will cause an error."
 msgstr ""
 
-#: ada-lang.c:14518
+#: ada-lang.c:14320
 msgid ""
 "List all Ada exception names.\n"
 "Usage: info exceptions [REGEXP]\n"
@@ -989,23 +994,23 @@ msgid ""
 "the regular expression are listed."
 msgstr ""
 
-#: ada-lang.c:14525
+#: ada-lang.c:14327
 msgid "Set Ada maintenance-related variables."
 msgstr ""
 
-#: ada-lang.c:14530
+#: ada-lang.c:14332
 msgid "Show Ada maintenance-related variables."
 msgstr ""
 
-#: ada-lang.c:14537
+#: ada-lang.c:14339
 msgid "Set whether descriptive types generated by GNAT should be ignored."
 msgstr ""
 
-#: ada-lang.c:14538
+#: ada-lang.c:14340
 msgid "Show whether descriptive types generated by GNAT should be ignored."
 msgstr ""
 
-#: ada-lang.c:14539
+#: ada-lang.c:14341
 msgid ""
 "When enabled, the debugger will stop using the DW_AT_GNAT_descriptive_type\n"
 "DWARF attribute."
@@ -1048,130 +1053,130 @@ msgstr ""
 msgid "unrecognized attribute: `%s'"
 msgstr ""
 
-#: ada-tasks.c:67 ada-tasks.c:89
+#: ada-tasks.c:68 ada-tasks.c:90
 msgid "Unactivated"
 msgstr ""
 
-#: ada-tasks.c:68 ada-tasks.c:90
+#: ada-tasks.c:69 ada-tasks.c:91
 msgid "Runnable"
 msgstr ""
 
-#: ada-tasks.c:69 ada-tasks.c:91
+#: ada-tasks.c:70 ada-tasks.c:92
 msgid "Terminated"
 msgstr ""
 
-#: ada-tasks.c:70
+#: ada-tasks.c:71
 msgid "Child Activation Wait"
 msgstr ""
 
-#: ada-tasks.c:71
+#: ada-tasks.c:72
 msgid "Accept or Select Term"
 msgstr ""
 
-#: ada-tasks.c:72 ada-tasks.c:94
+#: ada-tasks.c:73 ada-tasks.c:95
 msgid "Waiting on entry call"
 msgstr ""
 
-#: ada-tasks.c:73
+#: ada-tasks.c:74
 msgid "Async Select Wait"
 msgstr ""
 
-#: ada-tasks.c:74 ada-tasks.c:96
+#: ada-tasks.c:75 ada-tasks.c:97
 msgid "Delay Sleep"
 msgstr ""
 
-#: ada-tasks.c:75
+#: ada-tasks.c:76
 msgid "Child Termination Wait"
 msgstr ""
 
-#: ada-tasks.c:76
+#: ada-tasks.c:77
 msgid "Wait Child in Term Alt"
 msgstr ""
 
-#: ada-tasks.c:81 ada-tasks.c:103
+#: ada-tasks.c:82 ada-tasks.c:104
 msgid "Asynchronous Hold"
 msgstr ""
 
-#: ada-tasks.c:83 ada-tasks.c:105
+#: ada-tasks.c:84 ada-tasks.c:106
 msgid "Activating"
 msgstr ""
 
-#: ada-tasks.c:84
+#: ada-tasks.c:85
 msgid "Selective Wait"
 msgstr ""
 
-#: ada-tasks.c:92
+#: ada-tasks.c:93
 msgid "Waiting for child activation"
 msgstr ""
 
-#: ada-tasks.c:93
+#: ada-tasks.c:94
 msgid "Blocked in accept or select with terminate"
 msgstr ""
 
-#: ada-tasks.c:95
+#: ada-tasks.c:96
 msgid "Asynchronous Selective Wait"
 msgstr ""
 
-#: ada-tasks.c:97
+#: ada-tasks.c:98
 msgid "Waiting for children termination"
 msgstr ""
 
-#: ada-tasks.c:98
+#: ada-tasks.c:99
 msgid "Waiting for children in terminate alternative"
 msgstr ""
 
-#: ada-tasks.c:106
+#: ada-tasks.c:107
 msgid "Blocked in selective wait statement"
 msgstr ""
 
-#: ada-tasks.c:436
+#: ada-tasks.c:437
 msgid "Unknown task name format. Aborting"
 msgstr ""
 
-#: ada-tasks.c:510
+#: ada-tasks.c:511
 msgid "Cannot find Ada_Task_Control_Block type"
 msgstr ""
 
-#: ada-tasks.c:523
+#: ada-tasks.c:524
 msgid "Cannot find Common_ATCB type"
 msgstr ""
 
-#: ada-tasks.c:525
+#: ada-tasks.c:526
 msgid "Cannot find Private_Data type"
 msgstr ""
 
-#: ada-tasks.c:527
+#: ada-tasks.c:528
 msgid "Cannot find Entry_Call_Record type"
 msgstr ""
 
-#: ada-tasks.c:631
+#: ada-tasks.c:632
 #, possible-c-format
 msgid "%s. Aborting"
 msgstr ""
 
-#: ada-tasks.c:1000
+#: ada-tasks.c:1001
 msgid "Cannot inspect Ada tasks when program is not running"
 msgstr ""
 
-#: ada-tasks.c:1026 ada-tasks.c:1187 ada-tasks.c:1363
+#: ada-tasks.c:1027 ada-tasks.c:1193 ada-tasks.c:1369
 msgid "Your application does not use any Ada tasks.\n"
 msgstr ""
 
-#: ada-tasks.c:1152
+#: ada-tasks.c:1153
 #, possible-c-format
 msgid "Accepting RV with %-4d"
 msgstr ""
 
-#: ada-tasks.c:1157
+#: ada-tasks.c:1158
 #, possible-c-format
 msgid "Waiting on RV with %-3d"
 msgstr ""
 
-#: ada-tasks.c:1168
+#: ada-tasks.c:1174
 msgid "<no name>"
 msgstr ""
 
-#: ada-tasks.c:1192 ada-tasks.c:1312
+#: ada-tasks.c:1198 ada-tasks.c:1318
 #, possible-c-format
 msgid ""
 "Task ID %d not known.  Use the \"info tasks\" command to\n"
@@ -1179,154 +1184,154 @@ msgid ""
 msgstr ""
 
 #. Print the Ada task ID.
-#: ada-tasks.c:1197
+#: ada-tasks.c:1203
 #, possible-c-format
 msgid "Ada Task: %s\n"
 msgstr ""
 
-#: ada-tasks.c:1202
+#: ada-tasks.c:1208
 #, possible-c-format
 msgid "Name: %s\n"
 msgstr ""
 
-#: ada-tasks.c:1204
+#: ada-tasks.c:1210
 msgid "<no name>\n"
 msgstr ""
 
 #. Print the TID and LWP.
-#: ada-tasks.c:1207
+#: ada-tasks.c:1213
 #, possible-c-format
 msgid "Thread: %#lx\n"
 msgstr ""
 
-#: ada-tasks.c:1208
+#: ada-tasks.c:1214
 #, possible-c-format
 msgid "LWP: %#lx\n"
 msgstr ""
 
-#: ada-tasks.c:1212
+#: ada-tasks.c:1218
 #, possible-c-format
 msgid "Base CPU: %d\n"
 msgstr ""
 
-#: ada-tasks.c:1221
+#: ada-tasks.c:1227
 #, possible-c-format
 msgid "Parent: %d"
 msgstr ""
 
-#: ada-tasks.c:1227
+#: ada-tasks.c:1233
 msgid "No parent\n"
 msgstr ""
 
 #. Print the base priority.
-#: ada-tasks.c:1230
+#: ada-tasks.c:1236
 #, possible-c-format
 msgid "Base Priority: %d\n"
 msgstr ""
 
-#: ada-tasks.c:1239
+#: ada-tasks.c:1245
 #, possible-c-format
 msgid "State: Accepting rendezvous with %d"
 msgstr ""
 
-#: ada-tasks.c:1245
+#: ada-tasks.c:1251
 #, possible-c-format
 msgid "State: Waiting on task %d's entry"
 msgstr ""
 
-#: ada-tasks.c:1249
+#: ada-tasks.c:1255
 #, possible-c-format
 msgid "State: %s"
 msgstr ""
 
-#: ada-tasks.c:1289
+#: ada-tasks.c:1295
 msgid "[Current task is unknown]\n"
 msgstr ""
 
-#: ada-tasks.c:1296
+#: ada-tasks.c:1302
 #, possible-c-format
 msgid "[Current task is %s]\n"
 msgstr ""
 
-#: ada-tasks.c:1317
+#: ada-tasks.c:1323
 #, possible-c-format
 msgid "Cannot switch to task %s: Task is no longer running"
 msgstr ""
 
-#: ada-tasks.c:1339
+#: ada-tasks.c:1345
 #, possible-c-format
 msgid ""
 "Unable to compute thread ID for task %s.\n"
 "Cannot switch to this task."
 msgstr ""
 
-#: ada-tasks.c:1345
+#: ada-tasks.c:1351
 #, possible-c-format
 msgid "[Switching to task %s]\n"
 msgstr ""
 
-#: ada-tasks.c:1458
+#: ada-tasks.c:1464
 msgid "Provide information about all known Ada tasks."
 msgstr ""
 
-#: ada-tasks.c:1460
+#: ada-tasks.c:1466
 msgid ""
 "Use this command to switch between Ada tasks.\n"
 "Without argument, this command simply prints the current task ID."
 msgstr ""
 
-#: ada-typeprint.c:396
+#: ada-typeprint.c:397
 msgid "<undecipherable array type>"
 msgstr ""
 
-#: ada-typeprint.c:724
+#: ada-typeprint.c:725
 msgid " <incomplete type> end record"
 msgstr ""
 
-#: ada-typeprint.c:897
+#: ada-typeprint.c:899
 #, possible-c-format
 msgid "<%s-byte integer>"
 msgstr ""
 
-#: ada-typeprint.c:919
+#: ada-typeprint.c:922
 #, possible-c-format
 msgid "<%s-byte float>"
 msgstr ""
 
-#: ada-typeprint.c:933
+#: ada-typeprint.c:936
 msgid "array (?) of ? (<mal-formed descriptor>)"
 msgstr ""
 
-#: ada-valprint.c:168 valprint.c:2005
+#: ada-valprint.c:169 valprint.c:2010
 msgid "unable to get positions in array, use bounds instead"
 msgstr ""
 
-#: ada-valprint.c:240 ada-valprint.c:530 valprint.c:2634
+#: ada-valprint.c:241 ada-valprint.c:532
 #, possible-c-format
-msgid " <repeats %u times>"
+msgid " %p[<repeats %u times>%p]"
 msgstr ""
 
-#: ada-valprint.c:462
+#: ada-valprint.c:464
 msgid "internal error: unhandled type in ada_print_scalar"
 msgstr ""
 
-#: ada-valprint.c:466 typeprint.c:675
+#: ada-valprint.c:468 typeprint.c:677
 msgid "Invalid type code in symbol table."
 msgstr ""
 
-#: ada-valprint.c:674
+#: ada-valprint.c:677
 msgid "<optimized out or zero length>"
 msgstr ""
 
-#: ada-valprint.c:1215 cp-valprint.c:311 guile/scm-pretty-print.c:631
-#: mi/mi-cmd-stack.c:536 mi/mi-cmd-stack.c:550 python/py-framefilter.c:400
-#: python/py-prettyprint.c:264 stack.c:393 stack.c:428
+#: ada-valprint.c:1221 cp-valprint.c:314 guile/scm-pretty-print.c:631
+#: mi/mi-cmd-stack.c:536 mi/mi-cmd-stack.c:550 python/py-framefilter.c:401
+#: python/py-prettyprint.c:267 stack.c:396 stack.c:433
 #, possible-c-format
 msgid "<error reading variable: %s>"
 msgstr ""
 
 #. Could not get the array bounds.  Pretend this is an empty array.
-#: ada-varobj.c:251 valprint.c:2022
+#: ada-varobj.c:251 valprint.c:2027
 msgid "unable to get bounds of array, assuming null array"
 msgstr ""
 
@@ -1399,7 +1404,7 @@ msgid "finished"
 msgstr ""
 
 #. i18n: Like "Thread-Id %d, [state] unknown"
-#: aix-thread.c:621 btrace.c:1889 source.c:648
+#: aix-thread.c:621 btrace.c:1884 source.c:668
 msgid "unknown"
 msgstr ""
 
@@ -2115,108 +2120,108 @@ msgstr ""
 msgid "Process record: error reading memory at addr %s len = %d.\n"
 msgstr ""
 
-#: auto-load.c:72
+#: auto-load.c:73
 #, possible-c-format
 msgid "Debugging output for files of 'set auto-load ...' is %s.\n"
 msgstr ""
 
-#: auto-load.c:90
+#: auto-load.c:91
 #, possible-c-format
 msgid "Auto-loading of canned sequences of commands scripts is %s.\n"
 msgstr ""
 
-#: auto-load.c:130
+#: auto-load.c:131
 #, possible-c-format
 msgid "Auto-loading of .gdbinit script from current directory is %s.\n"
 msgstr ""
 
-#: auto-load.c:159
+#: auto-load.c:160
 #, possible-c-format
 msgid "List of directories from which to load auto-loaded scripts is %s.\n"
 msgstr ""
 
-#: auto-load.c:186
+#: auto-load.c:187
 #, possible-c-format
 msgid "auto-load: Expanded $-variables to \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:202
+#: auto-load.c:203
 #, possible-c-format
 msgid "auto-load: Updating directories of \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:225
+#: auto-load.c:226
 #, possible-c-format
 msgid "auto-load: Using directory \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:229
+#: auto-load.c:230
 #, possible-c-format
 msgid "auto-load: Resolved directory \"%s\" as \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:239
+#: auto-load.c:240
 #, possible-c-format
 msgid "auto-load: And canonicalized as \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:286
+#: auto-load.c:287
 msgid "Auto-load files are safe to load from any directory.\n"
 msgstr ""
 
-#: auto-load.c:289
+#: auto-load.c:290
 #, possible-c-format
 msgid "List of directories from which it is safe to auto-load files is %s.\n"
 msgstr ""
 
-#: auto-load.c:303
+#: auto-load.c:304
 msgid ""
 "Directory argument required.\n"
 "Use 'set auto-load safe-path /' for disabling the auto-load safe-path "
 "security."
 msgstr ""
 
-#: auto-load.c:324
+#: auto-load.c:325
 msgid "Directory argument required."
 msgstr ""
 
-#: auto-load.c:341
+#: auto-load.c:342
 #, possible-c-format
 msgid "auto-load: Matching file \"%s\" to pattern \"%s\"\n"
 msgstr ""
 
-#: auto-load.c:359
+#: auto-load.c:360
 msgid "auto-load: Matched - empty pattern\n"
 msgstr ""
 
-#: auto-load.c:374
+#: auto-load.c:375
 #, possible-c-format
 msgid "auto-load: Not matched - pattern \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:383
+#: auto-load.c:384
 #, possible-c-format
 msgid "auto-load: Matched - file \"%s\" to pattern \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:437
+#: auto-load.c:438
 #, possible-c-format
 msgid "auto-load: Resolved file \"%s\" as \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:454
+#: auto-load.c:455
 #, possible-c-format
 msgid "auto-load: File \"%s\" matches directory \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:493
+#: auto-load.c:494
 #, possible-c-format
 msgid ""
-"File \"%s\" auto-loading has been declined by your `auto-load safe-path' set "
-"to \"%s\"."
+"File \"%ps\" auto-loading has been declined by your `auto-load safe-path' "
+"set to \"%s\"."
 msgstr ""
 
-#: auto-load.c:505
+#: auto-load.c:507
 #, possible-c-format
 msgid ""
 "To enable execution of this file add\n"
@@ -2231,162 +2236,162 @@ msgid ""
 "\tinfo \"(gdb)Auto-loading safe path\"\n"
 msgstr ""
 
-#: auto-load.c:768 auto-load.c:793
+#: auto-load.c:770 auto-load.c:795
 #, possible-c-format
 msgid "auto-load: Attempted file \"%s\" %s.\n"
 msgstr ""
 
-#: auto-load.c:769 auto-load.c:796
+#: auto-load.c:771 auto-load.c:798
 msgid "exists"
 msgstr ""
 
-#: auto-load.c:769 auto-load.c:796
+#: auto-load.c:771 auto-load.c:798
 msgid "does not exist"
 msgstr ""
 
-#: auto-load.c:781
+#: auto-load.c:783
 #, possible-c-format
 msgid "auto-load: Searching 'set auto-load scripts-directory' path \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:809
+#: auto-load.c:811
 #, possible-c-format
 msgid "auto-load: Loading %s script \"%s\" by extension for objfile \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:869
+#: auto-load.c:871
 #, possible-c-format
 msgid "auto-load: Stripped .exe suffix, retrying with \"%s\".\n"
 msgstr ""
 
-#: auto-load.c:916 auto-load.c:1017
+#: auto-load.c:918 auto-load.c:1021
 #, possible-c-format
 msgid ""
 "auto-load: Loading %s script \"%s\" from section \"%s\" of objfile \"%s\".\n"
 msgstr ""
 
 #. We don't throw an error, the program is still debuggable.
-#: auto-load.c:990
+#: auto-load.c:992
 #, possible-c-format
 msgid ""
 "Missing/bad script name in entry at offset %u in section %s\n"
-"of file %s."
+"of file %ps."
 msgstr ""
 
-#: auto-load.c:1069
+#: auto-load.c:1073
 #, possible-c-format
 msgid "Invalid entry in %s section"
 msgstr ""
 
-#: auto-load.c:1080
+#: auto-load.c:1084
 #, possible-c-format
 msgid "Non-nul-terminated entry in %s at offset %u"
 msgstr ""
 
-#: auto-load.c:1092
+#: auto-load.c:1096
 #, possible-c-format
 msgid "Empty entry in %s at offset %u"
 msgstr ""
 
-#: auto-load.c:1123
+#: auto-load.c:1127
 #, possible-c-format
-msgid "Couldn't read %s section of %s"
+msgid "Couldn't read %s section of %ps"
 msgstr ""
 
-#: auto-load.c:1271 mi/mi-cmd-file.c:143 solib.c:966 solib.c:1045
+#: auto-load.c:1277 mi/mi-cmd-file.c:143 solib.c:967 solib.c:1046
 #, possible-c-format
 msgid "Invalid regexp: %s"
 msgstr ""
 
-#: auto-load.c:1350
+#: auto-load.c:1356
 msgid "Local .gdbinit file was not found.\n"
 msgstr ""
 
-#: auto-load.c:1352
+#: auto-load.c:1358
 #, possible-c-format
-msgid "Local .gdbinit file \"%s\" has been loaded.\n"
+msgid "Local .gdbinit file \"%ps\" has been loaded.\n"
 msgstr ""
 
-#: auto-load.c:1355
+#: auto-load.c:1362
 #, possible-c-format
-msgid "Local .gdbinit file \"%s\" has not been loaded.\n"
+msgid "Local .gdbinit file \"%ps\" has not been loaded.\n"
 msgstr ""
 
-#: auto-load.c:1371
+#: auto-load.c:1379
 #, possible-c-format
 msgid ""
 "Unsupported auto-load script at offset %u in section %s\n"
-"of file %s.\n"
+"of file %ps.\n"
 "Use `info auto-load %s-scripts [REGEXP]' to list them."
 msgstr ""
 
-#: auto-load.c:1393
+#: auto-load.c:1403
 #, possible-c-format
 msgid ""
 "Missing auto-load script at offset %u in section %s\n"
-"of file %s.\n"
+"of file %ps.\n"
 "Use `info auto-load %s-scripts [REGEXP]' to list them."
 msgstr ""
 
-#: auto-load.c:1422
+#: auto-load.c:1434
 msgid ""
 "Valid is only global 'set auto-load no'; otherwise check the auto-load sub-"
 "commands."
 msgstr ""
 
-#: auto-load.c:1441
+#: auto-load.c:1453
 msgid ""
 "Auto-loading specific settings.\n"
 "Configure various auto-load-specific variables such as\n"
 "automatic loading of Python scripts."
 msgstr ""
 
-#: auto-load.c:1468
+#: auto-load.c:1480
 msgid ""
 "Show auto-loading specific settings.\n"
 "Show configuration of various auto-load-specific variables such as\n"
 "automatic loading of Python scripts."
 msgstr ""
 
-#: auto-load.c:1511
+#: auto-load.c:1523
 msgid ""
 "Print current status of auto-loaded files.\n"
 "Print whether various files like Python scripts or .gdbinit files have been\n"
 "found and/or loaded."
 msgstr ""
 
-#: auto-load.c:1532
+#: auto-load.c:1544
 msgid "Enable or disable auto-loading of canned sequences of commands scripts."
 msgstr ""
 
-#: auto-load.c:1533
+#: auto-load.c:1545
 msgid ""
 "Show whether auto-loading of canned sequences of commands scripts is enabled."
 msgstr ""
 
-#: auto-load.c:1535
+#: auto-load.c:1547
 msgid ""
 "If enabled, canned sequences of commands are loaded when the debugger reads\n"
 "an executable or shared library.\n"
 "This option has security implications for untrusted inferiors."
 msgstr ""
 
-#: auto-load.c:1544
+#: auto-load.c:1556
 msgid ""
 "Print the list of automatically loaded sequences of commands.\n"
 "Usage: info auto-load gdb-scripts [REGEXP]"
 msgstr ""
 
-#: auto-load.c:1549
+#: auto-load.c:1561
 msgid "Enable or disable auto-loading of .gdbinit script in current directory."
 msgstr ""
 
-#: auto-load.c:1550
+#: auto-load.c:1562
 msgid ""
 "Show whether auto-loading .gdbinit script in current directory is enabled."
 msgstr ""
 
-#: auto-load.c:1552
+#: auto-load.c:1564
 msgid ""
 "If enabled, canned sequences of commands are loaded when debugger starts\n"
 "from .gdbinit file in current directory.  Such files are deprecated,\n"
@@ -2394,28 +2399,28 @@ msgid ""
 "This option has security implications for untrusted inferiors."
 msgstr ""
 
-#: auto-load.c:1562
+#: auto-load.c:1574
 msgid ""
 "Print whether current directory .gdbinit file has been loaded.\n"
 "Usage: info auto-load local-gdbinit"
 msgstr ""
 
-#: auto-load.c:1570
+#: auto-load.c:1582
 #, possible-c-format
 msgid "GDB scripts:    OBJFILE%s\n"
 msgstr ""
 
-#: auto-load.c:1577
+#: auto-load.c:1589
 #, possible-c-format
 msgid "Python scripts: OBJFILE%s\n"
 msgstr ""
 
-#: auto-load.c:1585
+#: auto-load.c:1597
 #, possible-c-format
 msgid "Guile scripts:  OBJFILE%s\n"
 msgstr ""
 
-#: auto-load.c:1590
+#: auto-load.c:1602
 #, possible-c-format
 msgid ""
 "Automatically loaded scripts are located in one of the directories listed\n"
@@ -2430,23 +2435,23 @@ msgid ""
 "option."
 msgstr ""
 
-#: auto-load.c:1607
+#: auto-load.c:1619
 msgid "Set the list of directories from which to load auto-loaded scripts."
 msgstr ""
 
-#: auto-load.c:1608
+#: auto-load.c:1620
 msgid "Show the list of directories from which to load auto-loaded scripts."
 msgstr ""
 
-#: auto-load.c:1622
+#: auto-load.c:1634
 msgid "Set the list of files and directories that are safe for auto-loading."
 msgstr ""
 
-#: auto-load.c:1623
+#: auto-load.c:1635
 msgid "Show the list of files and directories that are safe for auto-loading."
 msgstr ""
 
-#: auto-load.c:1624
+#: auto-load.c:1636
 msgid ""
 "Various files loaded automatically for the 'set auto-load ...' options must\n"
 "be located in one of the directories listed by this option.  Warning will "
@@ -2462,7 +2467,7 @@ msgid ""
 "This option has security implications for untrusted inferiors."
 msgstr ""
 
-#: auto-load.c:1643
+#: auto-load.c:1655
 msgid ""
 "Add entries to the list of directories from which it is safe to auto-load "
 "files.\n"
@@ -2471,7 +2476,7 @@ msgid ""
 "access the current full list setting."
 msgstr ""
 
-#: auto-load.c:1652
+#: auto-load.c:1664
 msgid ""
 "Add entries to the list of directories from which to load auto-loaded "
 "scripts.\n"
@@ -2479,15 +2484,15 @@ msgid ""
 "'show auto-load scripts-directory' to access the current full list setting."
 msgstr ""
 
-#: auto-load.c:1660
+#: auto-load.c:1672
 msgid "Set auto-load verifications debugging."
 msgstr ""
 
-#: auto-load.c:1661
+#: auto-load.c:1673
 msgid "Show auto-load verifications debugging."
 msgstr ""
 
-#: auto-load.c:1662
+#: auto-load.c:1674
 msgid ""
 "When non-zero, debugging output for files of 'set auto-load ...'\n"
 "is displayed."
@@ -2781,7 +2786,7 @@ msgstr ""
 msgid "Couldn't resolve symbol `%s'."
 msgstr ""
 
-#: ax-gdb.c:720 findvar.c:359 findvar.c:741 printcmd.c:1517 tracepoint.c:2628
+#: ax-gdb.c:720 findvar.c:359 findvar.c:741 printcmd.c:1517 tracepoint.c:2635
 msgid "LOC_COMPUTED variable missing a method"
 msgstr ""
 
@@ -2917,7 +2922,7 @@ msgstr ""
 msgid "May only assign to trace state variables"
 msgstr ""
 
-#: ax-gdb.c:2037 tracepoint.c:1395
+#: ax-gdb.c:2037 tracepoint.c:1402
 #, possible-c-format
 msgid "Register $%s not available"
 msgstr ""
@@ -2994,11 +2999,11 @@ msgstr ""
 msgid "Must start with a format string."
 msgstr ""
 
-#: ax-gdb.c:2705 breakpoint.c:2229 printcmd.c:2546
+#: ax-gdb.c:2705 breakpoint.c:2229 printcmd.c:2548
 msgid "Bad format string, non-terminated '\"'."
 msgstr ""
 
-#: ax-gdb.c:2710 breakpoint.c:2234 printcmd.c:2551
+#: ax-gdb.c:2710 breakpoint.c:2234 printcmd.c:2553
 msgid "Invalid argument syntax"
 msgstr ""
 
@@ -3250,41 +3255,41 @@ msgstr ""
 msgid "Entry block not found in find_function_entry_range_from_pc"
 msgstr ""
 
-#: break-catch-sig.c:195
+#: break-catch-sig.c:196
 #, possible-c-format
 msgid "Catchpoint %d (signal %s), "
 msgstr ""
 
-#: break-catch-sig.c:262
+#: break-catch-sig.c:264
 #, possible-c-format
 msgid "Catchpoint %d (signals"
 msgstr ""
 
-#: break-catch-sig.c:264
+#: break-catch-sig.c:266
 #, possible-c-format
 msgid "Catchpoint %d (signal"
 msgstr ""
 
-#: break-catch-sig.c:275
+#: break-catch-sig.c:277
 #, possible-c-format
 msgid "Catchpoint %d (any signal)"
 msgstr ""
 
-#: break-catch-sig.c:277
+#: break-catch-sig.c:279
 #, possible-c-format
 msgid "Catchpoint %d (standard signals)"
 msgstr ""
 
-#: break-catch-sig.c:355
+#: break-catch-sig.c:357
 msgid "'all' cannot be caught with other signals"
 msgstr ""
 
-#: break-catch-sig.c:371
+#: break-catch-sig.c:373
 #, possible-c-format
 msgid "Unknown signal name '%s'."
 msgstr ""
 
-#: break-catch-sig.c:433
+#: break-catch-sig.c:435
 msgid ""
 "Catch signals by their names and/or numbers.\n"
 "Usage: catch signal [[NAME|NUMBER] [NAME|NUMBER]...|all]\n"
@@ -3295,22 +3300,22 @@ msgid ""
 "(if your system supports that), or signal numbers."
 msgstr ""
 
-#: break-catch-syscall.c:295
+#: break-catch-syscall.c:296
 #, possible-c-format
 msgid "Catchpoint %d (syscalls"
 msgstr ""
 
-#: break-catch-syscall.c:297
+#: break-catch-syscall.c:298
 #, possible-c-format
 msgid "Catchpoint %d (syscall"
 msgstr ""
 
-#: break-catch-syscall.c:312
+#: break-catch-syscall.c:313
 #, possible-c-format
 msgid "Catchpoint %d (any syscall)"
 msgstr ""
 
-#: break-catch-syscall.c:407
+#: break-catch-syscall.c:408
 #, possible-c-format
 msgid "Unknown syscall group '%s'."
 msgstr ""
@@ -3318,16 +3323,16 @@ msgstr ""
 #. Here we have to issue an error instead of a warning,
 #. because GDB cannot do anything useful if there's no
 #. syscall number to be caught.
-#: break-catch-syscall.c:417
+#: break-catch-syscall.c:418
 #, possible-c-format
 msgid "Unknown syscall name '%s'."
 msgstr ""
 
-#: break-catch-syscall.c:437
+#: break-catch-syscall.c:438
 msgid "The feature 'catch syscall' is not supported on this architecture yet."
 msgstr ""
 
-#: break-catch-syscall.c:609
+#: break-catch-syscall.c:610
 msgid ""
 "Catch system calls by their names, groups and/or numbers.\n"
 "Arguments say which system calls to catch.  If no arguments are given,\n"
@@ -3340,7 +3345,7 @@ msgstr ""
 #. block supposedly visible in this function.  Let us
 #. first make sure that it is visible and if so, let
 #. us display its contents.
-#: break-catch-throw.c:103 f-valprint.c:443 probe.c:808
+#: break-catch-throw.c:103 f-valprint.c:445 probe.c:808
 msgid "No frame selected"
 msgstr ""
 
@@ -3458,7 +3463,7 @@ msgid ""
 "defined for this breakpoint."
 msgstr ""
 
-#: breakpoint.c:985 breakpoint.c:13845
+#: breakpoint.c:985 breakpoint.c:13842
 #, possible-c-format
 msgid "No breakpoint number %d."
 msgstr ""
@@ -3631,7 +3636,8 @@ msgid "Note: breakpoints "
 msgstr ""
 
 #: breakpoint.c:6661
-msgid "also set at pc "
+#, possible-c-format
+msgid "also set at pc %ps.\n"
 msgstr ""
 
 #: breakpoint.c:6855
@@ -3686,7 +3692,7 @@ msgstr ""
 msgid "Catchpoint %d (%s)"
 msgstr ""
 
-#: breakpoint.c:8069 stack.c:2351 symtab.c:4318 symtab.c:4537 symtab.c:4544
+#: breakpoint.c:8069 stack.c:2362 symtab.c:4303 symtab.c:4522 symtab.c:4529
 msgid "Invalid regexp"
 msgstr ""
 
@@ -3695,7 +3701,7 @@ msgstr ""
 msgid "Catchpoint %d (exec)"
 msgstr ""
 
-#: breakpoint.c:8657 printcmd.c:2541
+#: breakpoint.c:8657 printcmd.c:2543
 msgid "Bad format string, missing '\"'."
 msgstr ""
 
@@ -3711,11 +3717,11 @@ msgstr ""
 msgid "Invalid dprintf style."
 msgstr ""
 
-#: breakpoint.c:8744 breakpoint.c:14226
+#: breakpoint.c:8744 breakpoint.c:14223
 msgid "No hardware breakpoint support in the target."
 msgstr ""
 
-#: breakpoint.c:8746 breakpoint.c:9762 breakpoint.c:14228
+#: breakpoint.c:8746 breakpoint.c:9762 breakpoint.c:14225
 msgid "Hardware breakpoints used exceeds limit."
 msgstr ""
 
@@ -3948,217 +3954,217 @@ msgstr ""
 msgid " (%s %s) pending."
 msgstr ""
 
-#: breakpoint.c:12419
+#: breakpoint.c:12417
 msgid "Temporary breakpoint"
 msgstr ""
 
-#: breakpoint.c:12421
+#: breakpoint.c:12419
 msgid "Breakpoint"
 msgstr ""
 
-#: breakpoint.c:12422 breakpoint.c:12736 breakpoint.c:12740 breakpoint.c:12744
+#: breakpoint.c:12420 breakpoint.c:12733 breakpoint.c:12737 breakpoint.c:12741
 #, possible-c-format
 msgid " %d"
 msgstr ""
 
-#: breakpoint.c:12424
+#: breakpoint.c:12422
 msgid " at gnu-indirect-function resolver"
 msgstr ""
 
-#: breakpoint.c:12427
+#: breakpoint.c:12425
 #, possible-c-format
 msgid "Hardware assisted breakpoint %d"
 msgstr ""
 
-#: breakpoint.c:12430
+#: breakpoint.c:12428
 #, possible-c-format
 msgid "Dprintf %d"
 msgstr ""
 
-#: breakpoint.c:12451
+#: breakpoint.c:12449
 #, possible-c-format
 msgid "unhandled breakpoint type %d"
 msgstr ""
 
 #. Not sure how we will get here.
 #. GDB should not stop for these breakpoints.
-#: breakpoint.c:12564
+#: breakpoint.c:12562
 msgid "Thread Event Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. By analogy with the thread event, GDB should not stop for these.
-#: breakpoint.c:12569
+#: breakpoint.c:12567
 msgid "Overlay Event Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:12574
+#: breakpoint.c:12572
 msgid "Longjmp Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:12579
+#: breakpoint.c:12577
 msgid "std::terminate Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:12585
+#: breakpoint.c:12583
 msgid "Exception Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
-#: breakpoint.c:12688
+#: breakpoint.c:12686
 msgid "probe not found"
 msgstr ""
 
-#: breakpoint.c:12735
+#: breakpoint.c:12732
 msgid "Tracepoint"
 msgstr ""
 
-#: breakpoint.c:12739
+#: breakpoint.c:12736
 msgid "Fast tracepoint"
 msgstr ""
 
-#: breakpoint.c:12743
+#: breakpoint.c:12740
 msgid "Static tracepoint"
 msgstr ""
 
-#: breakpoint.c:12748 breakpoint.c:12767
+#: breakpoint.c:12745 breakpoint.c:12764
 #, possible-c-format
 msgid "unhandled tracepoint type %d"
 msgstr ""
 
-#: breakpoint.c:12999
+#: breakpoint.c:12996
 #, possible-c-format
 msgid "marker %s not found"
 msgstr ""
 
-#: breakpoint.c:13163
+#: breakpoint.c:13160
 msgid "Delete all breakpoints? "
 msgstr ""
 
-#: breakpoint.c:13279
+#: breakpoint.c:13276
 #, possible-c-format
 msgid "static tracepoint %d changed probed marker from %s to %s"
 msgstr ""
 
-#: breakpoint.c:13310
+#: breakpoint.c:13307
 #, possible-c-format
 msgid "marker for static tracepoint %d (%s) not found at previous line number"
 msgstr ""
 
-#: breakpoint.c:13440
+#: breakpoint.c:13437
 #, possible-c-format
 msgid "Could not reset ranged breakpoint %d: multiple locations found\n"
 msgstr ""
 
-#: breakpoint.c:13480
+#: breakpoint.c:13477
 #, possible-c-format
 msgid "failed to reevaluate condition for breakpoint %d: %s"
 msgstr ""
 
-#: breakpoint.c:13821
+#: breakpoint.c:13818
 #, possible-c-format
 msgid "Ignore count ignored for tracepoint %d."
 msgstr ""
 
-#: breakpoint.c:13830
+#: breakpoint.c:13827
 #, possible-c-format
 msgid "Will stop next time breakpoint %d is reached."
 msgstr ""
 
-#: breakpoint.c:13834
+#: breakpoint.c:13831
 #, possible-c-format
 msgid "Will ignore next crossing of breakpoint %d."
 msgstr ""
 
-#: breakpoint.c:13837
+#: breakpoint.c:13834
 #, possible-c-format
 msgid "Will ignore next %d crossings of breakpoint %d."
 msgstr ""
 
-#: breakpoint.c:13857
+#: breakpoint.c:13854
 msgid "a breakpoint number"
 msgstr ""
 
-#: breakpoint.c:13861
+#: breakpoint.c:13858
 #, possible-c-format
 msgid "bad breakpoint number: '%s'"
 msgstr ""
 
-#: breakpoint.c:13863
+#: breakpoint.c:13860
 msgid "Second argument (specified ignore-count) is missing."
 msgstr ""
 
-#: breakpoint.c:13882
+#: breakpoint.c:13879
 #, possible-c-format
 msgid "bad breakpoint number at or near '%d'"
 msgstr ""
 
-#: breakpoint.c:13901
+#: breakpoint.c:13898
 #, possible-c-format
 msgid "No breakpoint number %d.\n"
 msgstr ""
 
-#: breakpoint.c:13914
+#: breakpoint.c:13911
 msgid "one or more breakpoint numbers"
 msgstr ""
 
-#: breakpoint.c:13940
+#: breakpoint.c:13937
 #, possible-c-format
 msgid "Bad breakpoint number '%d'"
 msgstr ""
 
-#: breakpoint.c:13943 breakpoint.c:13950
+#: breakpoint.c:13940 breakpoint.c:13947
 #, possible-c-format
 msgid "Bad breakpoint location number '%d'"
 msgstr ""
 
-#: breakpoint.c:13977
+#: breakpoint.c:13974
 #, possible-c-format
 msgid "Negative breakpoint number '%.*s'"
 msgstr ""
 
-#: breakpoint.c:13978
+#: breakpoint.c:13975
 #, possible-c-format
 msgid "Negative breakpoint location number '%.*s'"
 msgstr ""
 
-#: breakpoint.c:13982
+#: breakpoint.c:13979
 #, possible-c-format
 msgid "Bad breakpoint number '%.*s'"
 msgstr ""
 
-#: breakpoint.c:13983
+#: breakpoint.c:13980
 #, possible-c-format
 msgid "Bad breakpoint location number '%.*s'"
 msgstr ""
 
-#: breakpoint.c:14009 breakpoint.c:14059
+#: breakpoint.c:14006 breakpoint.c:14056
 #, possible-c-format
 msgid "Bad breakpoint number at or near: '%s'"
 msgstr ""
 
-#: breakpoint.c:14010
+#: breakpoint.c:14007
 #, possible-c-format
 msgid "Bad breakpoint location number at or near: '%s'"
 msgstr ""
 
-#: breakpoint.c:14021
+#: breakpoint.c:14018
 #, possible-c-format
 msgid "Inverted breakpoint range at '%.*s'"
 msgstr ""
 
-#: breakpoint.c:14022
+#: breakpoint.c:14019
 #, possible-c-format
 msgid "Inverted breakpoint location range at '%.*s'"
 msgstr ""
 
-#: breakpoint.c:14247
+#: breakpoint.c:14244
 #, possible-c-format
 msgid "Cannot enable watchpoint %d: "
 msgstr ""
 
-#: breakpoint.c:14312
+#: breakpoint.c:14309
 msgid "hit count"
 msgstr ""
 
@@ -4166,72 +4172,72 @@ msgstr ""
 #. address.  Since there is no way to confirm that the address
 #. means the same thing as when the trace was started, warn the
 #. user.
-#: breakpoint.c:14598
+#: breakpoint.c:14595
 #, possible-c-format
 msgid "Uploaded tracepoint %d has no source location, using raw address"
 msgstr ""
 
-#: breakpoint.c:14607
+#: breakpoint.c:14604
 #, possible-c-format
 msgid "Uploaded tracepoint %d condition has no source form, ignoring it"
 msgstr ""
 
-#: breakpoint.c:14657
+#: breakpoint.c:14654
 #, possible-c-format
 msgid "Uploaded tracepoint %d actions have no source form, ignoring them"
 msgstr ""
 
-#: breakpoint.c:14731
+#: breakpoint.c:14728
 msgid "Delete all tracepoints? "
 msgstr ""
 
-#: breakpoint.c:14754
+#: breakpoint.c:14751
 #, possible-c-format
 msgid "Setting tracepoint %d's passcount to %d\n"
 msgstr ""
 
-#: breakpoint.c:14771
+#: breakpoint.c:14768
 msgid "passcount command requires an argument (count + optional TP num)"
 msgstr ""
 
-#: breakpoint.c:14867
+#: breakpoint.c:14864
 #, possible-c-format
 msgid "bad tracepoint number at or near '%s'\n"
 msgstr ""
 
-#: breakpoint.c:14870
+#: breakpoint.c:14867
 msgid "No previous tracepoint\n"
 msgstr ""
 
-#: breakpoint.c:14910
+#: breakpoint.c:14907
 msgid "Argument required (file name in which to save)"
 msgstr ""
 
-#: breakpoint.c:14936
+#: breakpoint.c:14933
 msgid "Nothing to save."
 msgstr ""
 
-#: breakpoint.c:14945
+#: breakpoint.c:14942
 #, possible-c-format
 msgid "Unable to open file '%s' for saving (%s)"
 msgstr ""
 
-#: breakpoint.c:15013
+#: breakpoint.c:15010
 #, possible-c-format
 msgid "Saved to file '%s'.\n"
 msgstr ""
 
-#: breakpoint.c:15132
+#: breakpoint.c:15129
 msgid "\"save\" must be followed by the name of a save subcommand.\n"
 msgstr ""
 
-#: breakpoint.c:15406
+#: breakpoint.c:15403
 msgid ""
 "Set ignore-count of breakpoint number N to COUNT.\n"
 "Usage is `ignore N COUNT'."
 msgstr ""
 
-#: breakpoint.c:15411
+#: breakpoint.c:15408
 msgid ""
 "Set commands to be executed when the given breakpoints are hit.\n"
 "Give a space-separated breakpoint list as argument after \"commands\".\n"
@@ -4244,14 +4250,14 @@ msgid ""
 "then no output is printed when it is hit, except what the commands print."
 msgstr ""
 
-#: breakpoint.c:15422
+#: breakpoint.c:15419
 msgid ""
 "Specify breakpoint number N to break only if COND is true.\n"
 "Usage is `condition N COND', where N is an integer and COND is an\n"
 "expression to be evaluated whenever breakpoint N is reached."
 msgstr ""
 
-#: breakpoint.c:15428
+#: breakpoint.c:15425
 msgid ""
 "Set a temporary breakpoint.\n"
 "Like \"break\" except the breakpoint is only temporary,\n"
@@ -4260,7 +4266,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15437
+#: breakpoint.c:15434
 msgid ""
 "Set a hardware assisted breakpoint.\n"
 "Like \"break\" except the breakpoint requires hardware support,\n"
@@ -4268,7 +4274,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15445
+#: breakpoint.c:15442
 msgid ""
 "Set a temporary hardware assisted breakpoint.\n"
 "Like \"hbreak\" except the breakpoint is only temporary,\n"
@@ -4276,7 +4282,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15453
+#: breakpoint.c:15450
 msgid ""
 "Enable all or some breakpoints.\n"
 "Usage: enable [BREAKPOINTNUM]...\n"
@@ -4286,7 +4292,7 @@ msgid ""
 "With a subcommand you can enable temporarily."
 msgstr ""
 
-#: breakpoint.c:15464
+#: breakpoint.c:15461
 msgid ""
 "Enable all or some breakpoints.\n"
 "Usage: enable breakpoints [BREAKPOINTNUM]...\n"
@@ -4295,21 +4301,21 @@ msgid ""
 "May be abbreviated to simply \"enable\"."
 msgstr ""
 
-#: breakpoint.c:15472
+#: breakpoint.c:15469
 msgid ""
 "Enable some breakpoints for one hit.\n"
 "Usage: enable breakpoints once BREAKPOINTNUM...\n"
 "If a breakpoint is hit while enabled in this fashion, it becomes disabled."
 msgstr ""
 
-#: breakpoint.c:15478
+#: breakpoint.c:15475
 msgid ""
 "Enable some breakpoints and delete when hit.\n"
 "Usage: enable breakpoints delete BREAKPOINTNUM...\n"
 "If a breakpoint is hit while enabled in this fashion, it is deleted."
 msgstr ""
 
-#: breakpoint.c:15484
+#: breakpoint.c:15481
 msgid ""
 "Enable some breakpoints for COUNT hits.\n"
 "Usage: enable breakpoints count COUNT BREAKPOINTNUM...\n"
@@ -4317,21 +4323,21 @@ msgid ""
 "the count is decremented; when it reaches zero, the breakpoint is disabled."
 msgstr ""
 
-#: breakpoint.c:15491
+#: breakpoint.c:15488
 msgid ""
 "Enable some breakpoints and delete when hit.\n"
 "Usage: enable delete BREAKPOINTNUM...\n"
 "If a breakpoint is hit while enabled in this fashion, it is deleted."
 msgstr ""
 
-#: breakpoint.c:15497
+#: breakpoint.c:15494
 msgid ""
 "Enable some breakpoints for one hit.\n"
 "Usage: enable once BREAKPOINTNUM...\n"
 "If a breakpoint is hit while enabled in this fashion, it becomes disabled."
 msgstr ""
 
-#: breakpoint.c:15503
+#: breakpoint.c:15500
 msgid ""
 "Enable some breakpoints for COUNT hits.\n"
 "Usage: enable count COUNT BREAKPOINTNUM...\n"
@@ -4339,7 +4345,7 @@ msgid ""
 "the count is decremented; when it reaches zero, the breakpoint is disabled."
 msgstr ""
 
-#: breakpoint.c:15510
+#: breakpoint.c:15507
 msgid ""
 "Disable all or some breakpoints.\n"
 "Usage: disable [BREAKPOINTNUM]...\n"
@@ -4348,7 +4354,7 @@ msgid ""
 "A disabled breakpoint is not forgotten, but has no effect until re-enabled."
 msgstr ""
 
-#: breakpoint.c:15520
+#: breakpoint.c:15517
 msgid ""
 "Disable all or some breakpoints.\n"
 "Usage: disable breakpoints [BREAKPOINTNUM]...\n"
@@ -4358,7 +4364,7 @@ msgid ""
 "This command may be abbreviated \"disable\"."
 msgstr ""
 
-#: breakpoint.c:15529
+#: breakpoint.c:15526
 msgid ""
 "Delete all or some breakpoints.\n"
 "Usage: delete [BREAKPOINTNUM]...\n"
@@ -4368,7 +4374,7 @@ msgid ""
 "Also a prefix command for deletion of other GDB objects."
 msgstr ""
 
-#: breakpoint.c:15540
+#: breakpoint.c:15537
 msgid ""
 "Delete all or some breakpoints or auto-display expressions.\n"
 "Usage: delete breakpoints [BREAKPOINTNUM]...\n"
@@ -4377,7 +4383,7 @@ msgid ""
 "This command may be abbreviated \"delete\"."
 msgstr ""
 
-#: breakpoint.c:15548
+#: breakpoint.c:15545
 msgid ""
 "Clear breakpoint at specified location.\n"
 "Argument may be a linespec, explicit, or address location as described "
@@ -4389,23 +4395,23 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15558
+#: breakpoint.c:15555
 msgid "Set breakpoint at specified location.\n"
 msgstr ""
 
-#: breakpoint.c:15570
+#: breakpoint.c:15567
 msgid "Break in function/address or break at a line in the current file."
 msgstr ""
 
-#: breakpoint.c:15574
+#: breakpoint.c:15571
 msgid "Break in function or address."
 msgstr ""
 
-#: breakpoint.c:15576
+#: breakpoint.c:15573
 msgid "Break at a line in the current file."
 msgstr ""
 
-#: breakpoint.c:15577
+#: breakpoint.c:15574
 msgid ""
 "Status of user-settable breakpoints, or breakpoint number NUMBER.\n"
 "The \"Type\" column indicates one of:\n"
@@ -4427,7 +4433,7 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:15594
+#: breakpoint.c:15591
 msgid ""
 "Status of specified breakpoints (all user-settable breakpoints if no "
 "argument).\n"
@@ -4450,7 +4456,7 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:15612
+#: breakpoint.c:15609
 msgid ""
 "Status of all breakpoints, or breakpoint number NUMBER.\n"
 "The \"Type\" column indicates one of:\n"
@@ -4476,43 +4482,43 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:15633
+#: breakpoint.c:15630
 msgid "Set catchpoints to catch events."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:15638
+#: breakpoint.c:15635
 msgid "Set temporary catchpoints to catch events."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:15643
+#: breakpoint.c:15640
 msgid "Catch calls to fork."
 msgstr ""
 
-#: breakpoint.c:15648
+#: breakpoint.c:15645
 msgid "Catch calls to vfork."
 msgstr ""
 
-#: breakpoint.c:15653
+#: breakpoint.c:15650
 msgid "Catch calls to exec."
 msgstr ""
 
-#: breakpoint.c:15658
+#: breakpoint.c:15655
 msgid ""
 "Catch loads of shared libraries.\n"
 "Usage: catch load [REGEX]\n"
 "If REGEX is given, only stop for libraries matching the regular expression."
 msgstr ""
 
-#: breakpoint.c:15665
+#: breakpoint.c:15662
 msgid ""
 "Catch unloads of shared libraries.\n"
 "Usage: catch unload [REGEX]\n"
 "If REGEX is given, only stop for libraries matching the regular expression."
 msgstr ""
 
-#: breakpoint.c:15673
+#: breakpoint.c:15670
 msgid ""
 "Set a watchpoint for an expression.\n"
 "Usage: watch [-l|-location] EXPRESSION\n"
@@ -4522,7 +4528,7 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:15682
+#: breakpoint.c:15679
 msgid ""
 "Set a read watchpoint for an expression.\n"
 "Usage: rwatch [-l|-location] EXPRESSION\n"
@@ -4532,7 +4538,7 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:15691
+#: breakpoint.c:15688
 msgid ""
 "Set a watchpoint for an expression.\n"
 "Usage: awatch [-l|-location] EXPRESSION\n"
@@ -4542,19 +4548,19 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:15700
+#: breakpoint.c:15697
 msgid "Status of specified watchpoints (all watchpoints if no argument)."
 msgstr ""
 
-#: breakpoint.c:15706
+#: breakpoint.c:15703
 msgid "Set debugger's willingness to use watchpoint hardware."
 msgstr ""
 
-#: breakpoint.c:15707
+#: breakpoint.c:15704
 msgid "Show debugger's willingness to use watchpoint hardware."
 msgstr ""
 
-#: breakpoint.c:15708
+#: breakpoint.c:15705
 msgid ""
 "If zero, gdb will not use hardware for new watchpoints, even if\n"
 "such is available.  (However, any hardware watchpoints that were\n"
@@ -4563,19 +4569,19 @@ msgid ""
 msgstr ""
 
 #. Tracepoint manipulation commands.
-#: breakpoint.c:15721
+#: breakpoint.c:15718
 msgid ""
 "Set a tracepoint at specified location.\n"
 "\n"
 msgstr ""
 
-#: breakpoint.c:15733
+#: breakpoint.c:15730
 msgid ""
 "Set a fast tracepoint at specified location.\n"
 "\n"
 msgstr ""
 
-#: breakpoint.c:15740
+#: breakpoint.c:15737
 msgid ""
 "Set a static tracepoint at location or marker.\n"
 "\n"
@@ -4595,35 +4601,35 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15762
+#: breakpoint.c:15759
 msgid ""
 "Status of specified tracepoints (all tracepoints if no argument).\n"
 "Convenience variable \"$tpnum\" contains the number of the\n"
 "last tracepoint set."
 msgstr ""
 
-#: breakpoint.c:15769
+#: breakpoint.c:15766
 msgid ""
 "Delete specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means delete all tracepoints."
 msgstr ""
 
-#: breakpoint.c:15776
+#: breakpoint.c:15773
 msgid ""
 "Disable specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means disable all tracepoints."
 msgstr ""
 
-#: breakpoint.c:15783
+#: breakpoint.c:15780
 msgid ""
 "Enable specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means enable all tracepoints."
 msgstr ""
 
-#: breakpoint.c:15790
+#: breakpoint.c:15787
 msgid ""
 "Set the passcount for a tracepoint.\n"
 "The trace will end when the tracepoint has been passed 'count' times.\n"
@@ -4631,12 +4637,12 @@ msgid ""
 "if TPNUM is omitted, passcount refers to the last tracepoint defined."
 msgstr ""
 
-#: breakpoint.c:15797
+#: breakpoint.c:15794
 msgid "Save breakpoint definitions as a script."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:15801
+#: breakpoint.c:15798
 msgid ""
 "Save current breakpoint definitions as a script.\n"
 "This includes all types of breakpoints (breakpoints, watchpoints,\n"
@@ -4644,29 +4650,29 @@ msgid ""
 "session to restore them."
 msgstr ""
 
-#: breakpoint.c:15809
+#: breakpoint.c:15806
 msgid ""
 "Save current tracepoint definitions as a script.\n"
 "Use the 'source' command in another debug session to restore them."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:15818 breakpoint.c:15824
+#: breakpoint.c:15815 breakpoint.c:15821
 msgid ""
 "Breakpoint specific settings.\n"
 "Configure various breakpoint-specific variables such as\n"
 "pending breakpoint behavior."
 msgstr ""
 
-#: breakpoint.c:15832
+#: breakpoint.c:15829
 msgid "Set debugger's behavior regarding pending breakpoints."
 msgstr ""
 
-#: breakpoint.c:15833
+#: breakpoint.c:15830
 msgid "Show debugger's behavior regarding pending breakpoints."
 msgstr ""
 
-#: breakpoint.c:15834
+#: breakpoint.c:15831
 msgid ""
 "If on, an unrecognized breakpoint location will cause gdb to create a\n"
 "pending breakpoint.  If off, an unrecognized breakpoint location results in\n"
@@ -4674,15 +4680,15 @@ msgid ""
 "user-query to see if a pending breakpoint should be created."
 msgstr ""
 
-#: breakpoint.c:15847
+#: breakpoint.c:15844
 msgid "Set automatic usage of hardware breakpoints."
 msgstr ""
 
-#: breakpoint.c:15848
+#: breakpoint.c:15845
 msgid "Show automatic usage of hardware breakpoints."
 msgstr ""
 
-#: breakpoint.c:15849
+#: breakpoint.c:15846
 msgid ""
 "If set, the debugger will automatically use hardware breakpoints for\n"
 "breakpoints set with \"break\" but falling in read-only memory.  If not "
@@ -4690,15 +4696,15 @@ msgid ""
 "a warning will be emitted for such breakpoints."
 msgstr ""
 
-#: breakpoint.c:15859
+#: breakpoint.c:15856
 msgid "Set mode for inserting breakpoints."
 msgstr ""
 
-#: breakpoint.c:15860
+#: breakpoint.c:15857
 msgid "Show mode for inserting breakpoints."
 msgstr ""
 
-#: breakpoint.c:15861
+#: breakpoint.c:15858
 msgid ""
 "When this mode is on, breakpoints are inserted immediately as soon as\n"
 "they're created, kept inserted even when execution stops, and removed\n"
@@ -4707,15 +4713,15 @@ msgid ""
 "when execution stops."
 msgstr ""
 
-#: breakpoint.c:15874
+#: breakpoint.c:15871
 msgid "Set mode of breakpoint condition evaluation."
 msgstr ""
 
-#: breakpoint.c:15875
+#: breakpoint.c:15872
 msgid "Show mode of breakpoint condition evaluation."
 msgstr ""
 
-#: breakpoint.c:15876
+#: breakpoint.c:15873
 msgid ""
 "When this is set to \"host\", breakpoint conditions will be\n"
 "evaluated on the host's side by GDB.  When it is set to \"target\",\n"
@@ -4727,7 +4733,7 @@ msgid ""
 "be set to \"gdb\""
 msgstr ""
 
-#: breakpoint.c:15889
+#: breakpoint.c:15886
 msgid ""
 "Set a breakpoint for an address range.\n"
 "break-range START-LOCATION, END-LOCATION\n"
@@ -4745,7 +4751,7 @@ msgid ""
 "range (including START-LOCATION and END-LOCATION)."
 msgstr ""
 
-#: breakpoint.c:15905
+#: breakpoint.c:15902
 msgid ""
 "Set a dynamic printf at specified location.\n"
 "dprintf location,format string,arg1,arg2,...\n"
@@ -4753,15 +4759,15 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:15913
+#: breakpoint.c:15910
 msgid "Set the style of usage for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15914
+#: breakpoint.c:15911
 msgid "Show the style of usage for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15915
+#: breakpoint.c:15912
 msgid ""
 "This setting chooses how GDB will do a dynamic printf.\n"
 "If the value is \"gdb\", then the printing is done by GDB to its own\n"
@@ -4771,37 +4777,37 @@ msgid ""
 "output stream by setting dprintf-function and dprintf-channel."
 msgstr ""
 
-#: breakpoint.c:15927
+#: breakpoint.c:15924
 msgid "Set the function to use for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15928
+#: breakpoint.c:15925
 msgid "Show the function to use for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15935
+#: breakpoint.c:15932
 msgid "Set the channel to use for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15936
+#: breakpoint.c:15933
 msgid "Show the channel to use for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:15942
+#: breakpoint.c:15939
 msgid "Set whether dprintf continues after GDB disconnects."
 msgstr ""
 
-#: breakpoint.c:15943
+#: breakpoint.c:15940
 msgid "Show whether dprintf continues after GDB disconnects."
 msgstr ""
 
-#: breakpoint.c:15944
+#: breakpoint.c:15941
 msgid ""
 "Use this to let dprintf commands continue to hit and produce output\n"
 "even if GDB disconnects or detaches from the target."
 msgstr ""
 
-#: breakpoint.c:15951
+#: breakpoint.c:15948
 #, possible-c-format
 msgid ""
 "Target agent only formatted printing, like the C \"printf\" function.\n"
@@ -4868,253 +4874,253 @@ msgstr ""
 msgid "Bad magic"
 msgstr ""
 
-#: btrace.c:1091
+#: btrace.c:1090
 #, possible-c-format
 msgid "Recorded trace may be corrupted at instruction %u (pc = %s)."
 msgstr ""
 
-#: btrace.c:1132
+#: btrace.c:1131
 #, possible-c-format
 msgid "Recorded trace may be incomplete at instruction %u (pc = %s)."
 msgstr ""
 
-#: btrace.c:1232
+#: btrace.c:1231
 #, possible-c-format
 msgid "Non-contiguous trace at instruction %u (offset = 0x%<PRIx64>)."
 msgstr ""
 
-#: btrace.c:1243
+#: btrace.c:1242
 #, possible-c-format
 msgid "Overflow at instruction %u (offset = 0x%<PRIx64>)."
 msgstr ""
 
-#: btrace.c:1277
+#: btrace.c:1276
 #, possible-c-format
 msgid ""
 "Non-contiguous trace at instruction %u (offset = 0x%<PRIx64>, pc = 0x%"
 "<PRIx64>)."
 msgstr ""
 
-#: btrace.c:1294
+#: btrace.c:1293
 #, possible-c-format
 msgid "Overflow at instruction %u (offset = 0x%<PRIx64>, pc = 0x%<PRIx64>)."
 msgstr ""
 
-#: btrace.c:1320 btrace.c:3011
+#: btrace.c:1319 btrace.c:3003
 #, possible-c-format
 msgid "Failed to synchronize onto the Intel Processor Trace stream: %s."
 msgstr ""
 
-#: btrace.c:1355
+#: btrace.c:1354
 #, possible-c-format
 msgid ""
 "Decode error (%d) at instruction %u (offset = 0x%<PRIx64>, pc = 0x%"
 "<PRIx64>): %s."
 msgstr ""
 
-#: btrace.c:1457 btrace.c:1475 btrace.c:3052
+#: btrace.c:1456 btrace.c:1474 btrace.c:3044
 #, possible-c-format
 msgid "Failed to configure the Intel Processor Trace decoder: %s."
 msgstr ""
 
-#: btrace.c:1463 btrace.c:3058
+#: btrace.c:1462 btrace.c:3050
 msgid "Failed to allocate the Intel Processor Trace decoder."
 msgstr ""
 
-#: btrace.c:1471
+#: btrace.c:1470
 msgid "Failed to configure the Intel Processor Trace decoder."
 msgstr ""
 
-#: btrace.c:1501
+#: btrace.c:1500
 msgid "Unexpected branch trace format."
 msgstr ""
 
-#: btrace.c:1537 btrace.c:1799 gdbsupport/btrace-common.c:84
-#: gdbsupport/btrace-common.c:104 gdbsupport/btrace-common.c:191
-#: nat/linux-btrace.c:923 record-btrace.c:544
+#: btrace.c:1536 btrace.c:1794 gdbsupport/btrace-common.c:85
+#: gdbsupport/btrace-common.c:105 gdbsupport/btrace-common.c:189
+#: nat/linux-btrace.c:923 record-btrace.c:545
 msgid "Unkown branch trace format."
 msgstr ""
 
-#: btrace.c:1603 nat/linux-btrace.c:681
+#: btrace.c:1599 nat/linux-btrace.c:681
 msgid "Intel Processor Trace support was disabled at compile time."
 msgstr ""
 
-#: btrace.c:1740
+#: btrace.c:1735
 msgid "Error while trying to read delta trace.  Falling back to a full read."
 msgstr ""
 
-#: btrace.c:1854
+#: btrace.c:1849
 msgid "instruction overflow"
 msgstr ""
 
-#: btrace.c:1857
+#: btrace.c:1852
 msgid "unknown instruction"
 msgstr ""
 
-#: btrace.c:1869
+#: btrace.c:1864
 msgid "trace decode cancelled"
 msgstr ""
 
-#: btrace.c:1872 dwarf-index-cache.c:275
+#: btrace.c:1867 dwarf-index-cache.c:275
 msgid "disabled"
 msgstr ""
 
-#: btrace.c:1875
+#: btrace.c:1870
 msgid "overflow"
 msgstr ""
 
-#: btrace.c:1956
+#: btrace.c:1951
 msgid "Failed to read branch trace."
 msgstr ""
 
-#: btrace.c:2021
+#: btrace.c:2016
 #, possible-c-format
 msgid "Unsupported btrace version: \"%s\""
 msgstr ""
 
-#: btrace.c:2049
+#: btrace.c:2043
 msgid "Btrace format error."
 msgstr ""
 
-#: btrace.c:2071
+#: btrace.c:2062
 msgid "Bad raw data size."
 msgstr ""
 
-#: btrace.c:2087
+#: btrace.c:2078
 msgid "Bad hex encoding."
 msgstr ""
 
-#: btrace.c:2218
+#: btrace.c:2209
 msgid "btrace"
 msgstr ""
 
-#: btrace.c:2221
+#: btrace.c:2212
 msgid "Error parsing branch trace."
 msgstr ""
 
-#: btrace.c:2228
+#: btrace.c:2219
 msgid "Cannot process branch trace.  XML support was disabled at compile time."
 msgstr ""
 
-#: btrace.c:2315
+#: btrace.c:2306
 msgid "btrace-conf"
 msgstr ""
 
-#: btrace.c:2318
+#: btrace.c:2309
 msgid "Error parsing branch trace configuration."
 msgstr ""
 
-#: btrace.c:2322
+#: btrace.c:2313
 msgid ""
 "Cannot process the branch trace configuration.  XML support was disabled at "
 "compile time."
 msgstr ""
 
-#: btrace.c:2374 btrace.c:2391 btrace.c:2663 btrace.c:2676 record-btrace.c:260
-#: record-btrace.c:2044 record-btrace.c:2796
+#: btrace.c:2365 btrace.c:2382 btrace.c:2654 btrace.c:2667 record-btrace.c:261
+#: record-btrace.c:2045 record-btrace.c:2797
 msgid "No trace."
 msgstr ""
 
-#: btrace.c:3006
+#: btrace.c:2998
 #, possible-c-format
 msgid "Error at trace offset 0x%<PRIx64>: %s."
 msgstr ""
 
-#: btrace.c:3196 btrace.c:3215 record.c:439 record.c:459
+#: btrace.c:3187 btrace.c:3206 record.c:439 record.c:459
 #, possible-c-format
 msgid "Expected positive number, got: %s."
 msgstr ""
 
-#: btrace.c:3200
+#: btrace.c:3191
 msgid "Number too big."
 msgstr ""
 
-#: btrace.c:3229 record.c:409 record.c:421 record.c:472
+#: btrace.c:3220 record.c:409 record.c:421 record.c:472
 #, possible-c-format
 msgid "Junk after argument: %s."
 msgstr ""
 
-#: btrace.c:3242 btrace.c:3345 btrace.c:3364 btrace.c:3427 record-btrace.c:251
-#: record-btrace.c:561 record-btrace.c:1379
+#: btrace.c:3233 btrace.c:3336 btrace.c:3355 btrace.c:3418 record-btrace.c:252
+#: record-btrace.c:562 record-btrace.c:1380
 msgid "No thread."
 msgstr ""
 
-#: btrace.c:3250
+#: btrace.c:3241
 msgid "No trace.\n"
 msgstr ""
 
-#: btrace.c:3274
+#: btrace.c:3265
 #, possible-c-format
 msgid "'%u' is out of range."
 msgstr ""
 
-#: btrace.c:3342 btrace.c:3361 btrace.c:3424 record-btrace.c:2880
-#: record-btrace.c:2901 record-btrace.c:2922
+#: btrace.c:3333 btrace.c:3352 btrace.c:3415 record-btrace.c:2881
+#: record-btrace.c:2902 record-btrace.c:2923
 msgid "Invalid argument."
 msgstr ""
 
-#: btrace.c:3435
+#: btrace.c:3426
 msgid "No btrace configuration."
 msgstr ""
 
-#: btrace.c:3437
+#: btrace.c:3428
 #, possible-c-format
 msgid "Format: %s.\n"
 msgstr ""
 
-#: btrace.c:3446 btrace.c:3462
+#: btrace.c:3437 btrace.c:3452
 #, possible-c-format
-msgid "Number of packets: %u.\n"
+msgid "Number of packets: %zu.\n"
 msgstr ""
 
-#: btrace.c:3457
+#: btrace.c:3447
 #, possible-c-format
 msgid "Version: %u.%u.%u%s.\n"
 msgstr ""
 
-#: btrace.c:3478
+#: btrace.c:3468
 #, possible-c-format
 msgid "Skip PAD packets is %s.\n"
 msgstr ""
 
-#: btrace.c:3488
+#: btrace.c:3478
 msgid "Info about branch tracing data."
 msgstr ""
 
-#: btrace.c:3491
+#: btrace.c:3481
 msgid "Branch tracing maintenance commands."
 msgstr ""
 
-#: btrace.c:3495
+#: btrace.c:3485
 msgid "Set branch tracing specific variables."
 msgstr ""
 
-#: btrace.c:3500
+#: btrace.c:3490
 msgid "Set Intel Processor Trace specific variables."
 msgstr ""
 
-#: btrace.c:3505
+#: btrace.c:3495
 msgid "Show branch tracing specific variables."
 msgstr ""
 
-#: btrace.c:3510
+#: btrace.c:3500
 msgid "Show Intel Processor Trace specific variables."
 msgstr ""
 
-#: btrace.c:3516
+#: btrace.c:3506
 msgid "Set whether PAD packets should be skipped in the btrace packet history."
 msgstr ""
 
-#: btrace.c:3517
+#: btrace.c:3507
 msgid ""
 "Show whether PAD packets should be skipped in the btrace packet history."
 msgstr ""
 
-#: btrace.c:3518
+#: btrace.c:3508
 msgid "When enabled, PAD packets are ignored in the btrace packet history."
 msgstr ""
 
-#: btrace.c:3525
+#: btrace.c:3515
 msgid ""
 "Print the raw branch tracing data.\n"
 "With no argument, print ten more packets after the previous ten-line print.\n"
@@ -5126,13 +5132,13 @@ msgid ""
 "first."
 msgstr ""
 
-#: btrace.c:3537
+#: btrace.c:3527
 msgid ""
 "Clears the branch tracing packet history.\n"
 "Discards the raw branch tracing data but not the execution history data."
 msgstr ""
 
-#: btrace.c:3542
+#: btrace.c:3532
 msgid ""
 "Clears the branch tracing data.\n"
 "Discards the raw branch tracing data and the execution history data.\n"
@@ -5149,7 +5155,7 @@ msgstr ""
 msgid "File \"%s\" has a different build-id, file skipped"
 msgstr ""
 
-#: build-id.c:78 symfile.c:1289
+#: build-id.c:78 symfile.c:1288
 #, possible-c-format
 msgid "  Trying %s..."
 msgstr ""
@@ -5158,7 +5164,7 @@ msgstr ""
 msgid " no, unable to compute real path\n"
 msgstr ""
 
-#: build-id.c:101 symfile.c:1298
+#: build-id.c:101 symfile.c:1297
 msgid " no, unable to open.\n"
 msgstr ""
 
@@ -5166,7 +5172,7 @@ msgstr ""
 msgid " no, build-id does not match.\n"
 msgstr ""
 
-#: build-id.c:115 symfile.c:1372
+#: build-id.c:115 symfile.c:1371
 msgid " yes!\n"
 msgstr ""
 
@@ -5375,19 +5381,19 @@ msgid "Internal error while converting c
 msgstr ""
 
 #. No valid charset found, generate error here.
-#: charset.c:1000
+#: charset.c:994
 msgid "Unable to find a vaild charset for string conversions"
 msgstr ""
 
-#: charset.c:1043
+#: charset.c:1037
 msgid "Set the host and target character sets."
 msgstr ""
 
-#: charset.c:1044
+#: charset.c:1038
 msgid "Show the host and target character sets."
 msgstr ""
 
-#: charset.c:1045
+#: charset.c:1039
 msgid ""
 "The `host character set' is the one used by the system GDB is running on.\n"
 "The `target character set' is the one used by the program being debugged.\n"
@@ -5396,15 +5402,15 @@ msgid ""
 "To see a list of the character sets GDB supports, type `set charset <TAB>'."
 msgstr ""
 
-#: charset.c:1059
+#: charset.c:1053
 msgid "Set the host character set."
 msgstr ""
 
-#: charset.c:1060
+#: charset.c:1054
 msgid "Show the host character set."
 msgstr ""
 
-#: charset.c:1061
+#: charset.c:1055
 msgid ""
 "The `host character set' is the one used by the system GDB is running on.\n"
 "You may only use supersets of ASCII for your host character set; GDB does\n"
@@ -5413,15 +5419,15 @@ msgid ""
 "<TAB>'."
 msgstr ""
 
-#: charset.c:1071
+#: charset.c:1065
 msgid "Set the target character set."
 msgstr ""
 
-#: charset.c:1072
+#: charset.c:1066
 msgid "Show the target character set."
 msgstr ""
 
-#: charset.c:1073
+#: charset.c:1067
 msgid ""
 "The `target character set' is the one used by the program being debugged.\n"
 "GDB translates characters and strings between the host and target\n"
@@ -5430,15 +5436,15 @@ msgid ""
 "charset'<TAB>"
 msgstr ""
 
-#: charset.c:1084
+#: charset.c:1078
 msgid "Set the target wide character set."
 msgstr ""
 
-#: charset.c:1085
+#: charset.c:1079
 msgid "Show the target wide character set."
 msgstr ""
 
-#: charset.c:1086
+#: charset.c:1080
 msgid ""
 "The `target wide character set' is the one used by the program being "
 "debugged.\n"
@@ -5850,283 +5856,283 @@ msgstr ""
 msgid "Invalid command"
 msgstr ""
 
-#: cli/cli-cmds.c:191
+#: cli/cli-cmds.c:192
 #, possible-c-format
 msgid "Argument required (%s)."
 msgstr ""
 
-#: cli/cli-cmds.c:201
+#: cli/cli-cmds.c:202
 msgid "\"info\" must be followed by the name of an info command.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:221
+#: cli/cli-cmds.c:222
 msgid "Missing arguments."
 msgstr ""
 
-#: cli/cli-cmds.c:227
+#: cli/cli-cmds.c:228
 msgid "Missing setting before '--' delimiter"
 msgstr ""
 
-#: cli/cli-cmds.c:238
+#: cli/cli-cmds.c:239
 msgid "Cannot use this setting with the \"with\" command"
 msgstr ""
 
-#: cli/cli-cmds.c:269
+#: cli/cli-cmds.c:270
 #, possible-c-format
 msgid "Couldn't restore setting: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:352
+#: cli/cli-cmds.c:353
 msgid "max-completions is zero, completion is disabled.\n"
 msgstr ""
 
 #. ARG_PREFIX and WORD are included in the output so that emacs
 #. will include the message in the output.
-#: cli/cli-cmds.c:391
+#: cli/cli-cmds.c:392
 #, possible-c-format
 msgid "%s%s %s\n"
 msgstr ""
 
-#: cli/cli-cmds.c:434 cli/cli-script.c:1431 infcmd.c:1224 infcmd.c:1241
-#: infcmd.c:1337 infcmd.c:1951 infcmd.c:2492 symfile.c:1092 symfile.c:1252
-#: symfile.c:2356 symfile.c:2443 tracepoint.c:2063 tracepoint.c:2069
+#: cli/cli-cmds.c:435 cli/cli-script.c:1431 infcmd.c:1221 infcmd.c:1238
+#: infcmd.c:1334 infcmd.c:1949 infcmd.c:2490 symfile.c:1092 symfile.c:1251
+#: symfile.c:2355 symfile.c:2442 tracepoint.c:2070 tracepoint.c:2076
 msgid "Not confirmed."
 msgstr ""
 
-#: cli/cli-cmds.c:445
+#: cli/cli-cmds.c:446
 #, possible-c-format
 msgid "The \"pwd\" command does not take an argument: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:450
+#: cli/cli-cmds.c:451
 #, possible-c-format
 msgid "Error finding name of working directory: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:454
+#: cli/cli-cmds.c:455
 #, possible-c-format
 msgid ""
-"Working directory %s\n"
-" (canonically %s).\n"
+"Working directory %ps\n"
+" (canonically %ps).\n"
 msgstr ""
 
-#: cli/cli-cmds.c:457
+#: cli/cli-cmds.c:460
 #, possible-c-format
-msgid "Working directory %s.\n"
+msgid "Working directory %ps.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:571
+#: cli/cli-cmds.c:576
 #, possible-c-format
 msgid "Script filename extension recognition is \"%s\".\n"
 msgstr ""
 
-#: cli/cli-cmds.c:669
+#: cli/cli-cmds.c:674
 msgid "source command requires file name of file to source."
 msgstr ""
 
-#: cli/cli-cmds.c:802
+#: cli/cli-cmds.c:807
 #, possible-c-format
 msgid "unexpected shell command exit status %d"
 msgstr ""
 
-#: cli/cli-cmds.c:853
+#: cli/cli-cmds.c:858
 msgid "Fork failed"
 msgstr ""
 
-#: cli/cli-cmds.c:887
+#: cli/cli-cmds.c:892
 msgid "No default source file yet."
 msgstr ""
 
-#: cli/cli-cmds.c:911
+#: cli/cli-cmds.c:916
 msgid "Specified line is ambiguous:\n"
 msgstr ""
 
-#: cli/cli-cmds.c:918 cli/cli-cmds.c:1243
+#: cli/cli-cmds.c:923 cli/cli-cmds.c:1248
 msgid "Junk at end of line specification."
 msgstr ""
 
-#: cli/cli-cmds.c:929 cli/cli-cmds.c:1261
+#: cli/cli-cmds.c:934 cli/cli-cmds.c:1266
 #, possible-c-format
 msgid "No source file for address %s."
 msgstr ""
 
-#: cli/cli-cmds.c:951 cli/cli-cmds.c:1282
+#: cli/cli-cmds.c:956 cli/cli-cmds.c:1287
 #, possible-c-format
 msgid "No line number known for %s."
 msgstr ""
 
-#: cli/cli-cmds.c:985
+#: cli/cli-cmds.c:990
 msgid ""
 "Indicates to use the specified delimiter string to separate\n"
 "COMMAND from SHELL_COMMAND, in alternative to |.  This is useful in\n"
 "case COMMAND contains a | character."
 msgstr ""
 
-#: cli/cli-cmds.c:1018
+#: cli/cli-cmds.c:1023
 msgid "Missing COMMAND"
 msgstr ""
 
-#: cli/cli-cmds.c:1023
+#: cli/cli-cmds.c:1028
 msgid "Missing delimiter before SHELL_COMMAND"
 msgstr ""
 
-#: cli/cli-cmds.c:1034
+#: cli/cli-cmds.c:1039
 msgid "Missing SHELL_COMMAND"
 msgstr ""
 
-#: cli/cli-cmds.c:1039
+#: cli/cli-cmds.c:1044
 #, possible-c-format
 msgid "Error launching \"%s\""
 msgstr ""
 
-#: cli/cli-cmds.c:1056
+#: cli/cli-cmds.c:1061
 #, possible-c-format
 msgid "shell command \"%s\" failed: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:1144
+#: cli/cli-cmds.c:1149
 #, possible-c-format
 msgid "Already at the start of %s."
 msgstr ""
 
-#: cli/cli-cmds.c:1203
+#: cli/cli-cmds.c:1208
 #, possible-c-format
 msgid "Specified first line '%.*s' is ambiguous:\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1234
+#: cli/cli-cmds.c:1239
 #, possible-c-format
 msgid "Specified last line '%s' is ambiguous:\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1247
+#: cli/cli-cmds.c:1252
 msgid "Specified first and last lines are in different files."
 msgstr ""
 
-#: cli/cli-cmds.c:1249
+#: cli/cli-cmds.c:1254
 msgid "Two empty args do not say what lines to list."
 msgstr ""
 
-#: cli/cli-cmds.c:1291 cli/cli-cmds.c:1299
+#: cli/cli-cmds.c:1296 cli/cli-cmds.c:1304
 msgid "No default source file yet.  Do \"help list\"."
 msgstr ""
 
-#: cli/cli-cmds.c:1358
+#: cli/cli-cmds.c:1363
 #, possible-c-format
 msgid "Address range %s to %s:\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1387 dwarf2loc.c:574 dwarf2loc.c:2033 dwarf2loc.c:2069
-#: python/py-symbol.c:391 stack.c:2491 stack.c:2602 valops.c:1291
+#: cli/cli-cmds.c:1392 dwarf2loc.c:574 dwarf2loc.c:2033 dwarf2loc.c:2069
+#: python/py-symbol.c:391 stack.c:2502 stack.c:2613 valops.c:1291
 msgid "No frame selected."
 msgstr ""
 
-#: cli/cli-cmds.c:1391
+#: cli/cli-cmds.c:1396
 msgid "No function contains program counter for selected frame."
 msgstr ""
 
-#: cli/cli-cmds.c:1448 record.c:494 record.c:632
+#: cli/cli-cmds.c:1453 record.c:494 record.c:632
 msgid "Missing modifier."
 msgstr ""
 
-#: cli/cli-cmds.c:1464
+#: cli/cli-cmds.c:1469
 msgid "Invalid disassembly modifier."
 msgstr ""
 
-#: cli/cli-cmds.c:1473
+#: cli/cli-cmds.c:1478
 msgid "Cannot specify both /m and /s."
 msgstr ""
 
-#: cli/cli-cmds.c:1489
+#: cli/cli-cmds.c:1494
 msgid "No function contains specified address."
 msgstr ""
 
-#: cli/cli-cmds.c:1544
+#: cli/cli-cmds.c:1549
 msgid "Not a user command."
 msgstr ""
 
-#: cli/cli-cmds.c:1566
+#: cli/cli-cmds.c:1571
 msgid "REGEXP string is empty"
 msgstr ""
 
-#: cli/cli-cmds.c:1569
+#: cli/cli-cmds.c:1574
 msgid "Error in regular expression"
 msgstr ""
 
-#: cli/cli-cmds.c:1626
+#: cli/cli-cmds.c:1631
 msgid "Usage: alias [-a] [--] ALIAS = COMMAND"
 msgstr ""
 
-#: cli/cli-cmds.c:1674
+#: cli/cli-cmds.c:1679
 #, possible-c-format
 msgid "Invalid command name: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:1676
+#: cli/cli-cmds.c:1681
 #, possible-c-format
 msgid "Invalid command element name: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:1690
+#: cli/cli-cmds.c:1695
 #, possible-c-format
 msgid "Invalid command to alias to: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:1696
+#: cli/cli-cmds.c:1701
 #, possible-c-format
 msgid "Alias already exists: %s"
 msgstr ""
 
-#: cli/cli-cmds.c:1719
+#: cli/cli-cmds.c:1724
 msgid "Mismatched command length between ALIAS and COMMAND."
 msgstr ""
 
-#: cli/cli-cmds.c:1738
+#: cli/cli-cmds.c:1743
 msgid "ALIAS and COMMAND prefixes do not match."
 msgstr ""
 
-#: cli/cli-cmds.c:1759
+#: cli/cli-cmds.c:1764
 #, possible-c-format
 msgid "file: \"%s\", line number: %d, symbol: \"%s\"\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1847
+#: cli/cli-cmds.c:1852
 msgid "\"set debug\" must be followed by the name of a debug subcommand.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1871
+#: cli/cli-cmds.c:1876
 #, possible-c-format
 msgid "Verbose printing of informational messages is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1874
+#: cli/cli-cmds.c:1879
 #, possible-c-format
 msgid "Verbosity is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1881
+#: cli/cli-cmds.c:1886
 #, possible-c-format
 msgid "History expansion on command input is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1889
+#: cli/cli-cmds.c:1894
 #, possible-c-format
 msgid "Debugging of remote protocol is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1898
+#: cli/cli-cmds.c:1903
 #, possible-c-format
 msgid "Timeout limit to wait for target to respond is %s.\n"
 msgstr ""
 
-#: cli/cli-cmds.c:1907
+#: cli/cli-cmds.c:1912
 #, possible-c-format
 msgid "The max call depth for user-defined commands is %s.\n"
 msgstr ""
 
 #. Define the classes of commands.
 #. They will appear in the help list in alphabetical order.
-#: cli/cli-cmds.c:1919
+#: cli/cli-cmds.c:1924
 msgid ""
 "Maintenance commands.\n"
 "Some gdb commands are provided just for use by gdb maintainers.\n"
@@ -6134,42 +6140,42 @@ msgid ""
 "well documented as user commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1925
+#: cli/cli-cmds.c:1930
 msgid "Obscure features."
 msgstr ""
 
-#: cli/cli-cmds.c:1927
+#: cli/cli-cmds.c:1932
 msgid "Aliases of other commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1928
+#: cli/cli-cmds.c:1933
 msgid ""
 "User-defined commands.\n"
 "The commands in this class are those defined by the user.\n"
 "Use the \"define\" command to define a command."
 msgstr ""
 
-#: cli/cli-cmds.c:1932
+#: cli/cli-cmds.c:1937
 msgid "Support facilities."
 msgstr ""
 
-#: cli/cli-cmds.c:1934
+#: cli/cli-cmds.c:1939
 msgid "Status inquiries."
 msgstr ""
 
-#: cli/cli-cmds.c:1935
+#: cli/cli-cmds.c:1940
 msgid "Specifying and examining files."
 msgstr ""
 
-#: cli/cli-cmds.c:1938
+#: cli/cli-cmds.c:1943
 msgid "Making program stop at certain points."
 msgstr ""
 
-#: cli/cli-cmds.c:1939
+#: cli/cli-cmds.c:1944
 msgid "Examining data."
 msgstr ""
 
-#: cli/cli-cmds.c:1940
+#: cli/cli-cmds.c:1945
 msgid ""
 "Examining the stack.\n"
 "The stack is made up of stack frames.  Gdb assigns numbers to stack frames\n"
@@ -6181,18 +6187,18 @@ msgid ""
 "The commands below can be used to select other frames by number or address."
 msgstr ""
 
-#: cli/cli-cmds.c:1949
+#: cli/cli-cmds.c:1954
 msgid "Running the program."
 msgstr ""
 
 #. Define general commands.
-#: cli/cli-cmds.c:1953
+#: cli/cli-cmds.c:1958
 msgid ""
 "Print working directory.\n"
 "This is used for your program as well."
 msgstr ""
 
-#: cli/cli-cmds.c:1957
+#: cli/cli-cmds.c:1962
 msgid ""
 "Set working directory to DIR for debugger.\n"
 "The debugger's current working directory specifies where scripts and other\n"
@@ -6202,7 +6208,7 @@ msgid ""
 "way is to use the \"set cwd\" command."
 msgstr ""
 
-#: cli/cli-cmds.c:1965
+#: cli/cli-cmds.c:1970
 msgid ""
 "Print a constant string.  Give string as argument.\n"
 "C escape sequences may be used in the argument.\n"
@@ -6213,15 +6219,15 @@ msgid ""
 "to be printed or after trailing whitespace."
 msgstr ""
 
-#: cli/cli-cmds.c:1975
+#: cli/cli-cmds.c:1980
 msgid "Set mode for script filename extension recognition."
 msgstr ""
 
-#: cli/cli-cmds.c:1976
+#: cli/cli-cmds.c:1981
 msgid "Show mode for script filename extension recognition."
 msgstr ""
 
-#: cli/cli-cmds.c:1977
+#: cli/cli-cmds.c:1982
 msgid ""
 "off  == no filename extension recognition (all sourced files are GDB "
 "scripts)\n"
@@ -6231,7 +6237,7 @@ msgid ""
 "supported"
 msgstr ""
 
-#: cli/cli-cmds.c:1987
+#: cli/cli-cmds.c:1992
 msgid ""
 "Exit gdb.\n"
 "Usage: quit [EXPR]\n"
@@ -6239,56 +6245,56 @@ msgid ""
 "used as GDB's exit code.  The default is zero."
 msgstr ""
 
-#: cli/cli-cmds.c:1993
+#: cli/cli-cmds.c:1998
 msgid "Print list of commands."
 msgstr ""
 
-#: cli/cli-cmds.c:1998 top.c:1902
+#: cli/cli-cmds.c:2003 top.c:1902
 msgid "Set verbosity."
 msgstr ""
 
-#: cli/cli-cmds.c:1999 top.c:1903
+#: cli/cli-cmds.c:2004 top.c:1903
 msgid "Show verbosity."
 msgstr ""
 
-#: cli/cli-cmds.c:2006
+#: cli/cli-cmds.c:2011
 msgid "Generic command for setting command history parameters."
 msgstr ""
 
-#: cli/cli-cmds.c:2009
+#: cli/cli-cmds.c:2014
 msgid "Generic command for showing command history parameters."
 msgstr ""
 
-#: cli/cli-cmds.c:2012
+#: cli/cli-cmds.c:2017
 msgid "Set history expansion on command input."
 msgstr ""
 
-#: cli/cli-cmds.c:2013
+#: cli/cli-cmds.c:2018
 msgid "Show history expansion on command input."
 msgstr ""
 
-#: cli/cli-cmds.c:2014
+#: cli/cli-cmds.c:2019
 msgid "Without an argument, history expansion is enabled."
 msgstr ""
 
-#: cli/cli-cmds.c:2020
+#: cli/cli-cmds.c:2025
 msgid "Generic command for showing things about the program being debugged."
 msgstr ""
 
-#: cli/cli-cmds.c:2027
+#: cli/cli-cmds.c:2032
 msgid "List the completions for the rest of the line as a command."
 msgstr ""
 
-#: cli/cli-cmds.c:2029
+#: cli/cli-cmds.c:2034
 msgid "Generic command for showing things about the debugger."
 msgstr ""
 
 #. Another way to get at the same thing.
-#: cli/cli-cmds.c:2033
+#: cli/cli-cmds.c:2038
 msgid "Show all GDB settings."
 msgstr ""
 
-#: cli/cli-cmds.c:2035
+#: cli/cli-cmds.c:2040
 msgid ""
 "Temporarily set SETTING to VALUE, run COMMAND, and restore SETTING.\n"
 "Usage: with SETTING [VALUE] [-- COMMAND]\n"
@@ -6305,64 +6311,64 @@ msgid ""
 "  w la p -- w p el u -- p obj"
 msgstr ""
 
-#: cli/cli-cmds.c:2052
+#: cli/cli-cmds.c:2057
 msgid ""
 "Show the history of commands you typed.\n"
 "You can supply a command number to start with, or a `+' to start after\n"
 "the previous command number shown."
 msgstr ""
 
-#: cli/cli-cmds.c:2059
+#: cli/cli-cmds.c:2064
 msgid "Show what version of GDB this is."
 msgstr ""
 
-#: cli/cli-cmds.c:2062
+#: cli/cli-cmds.c:2067
 msgid "Show how GDB was configured at build time."
 msgstr ""
 
-#: cli/cli-cmds.c:2064
+#: cli/cli-cmds.c:2069
 msgid "Set debugging of remote protocol."
 msgstr ""
 
-#: cli/cli-cmds.c:2065
+#: cli/cli-cmds.c:2070
 msgid "Show debugging of remote protocol."
 msgstr ""
 
-#: cli/cli-cmds.c:2066
+#: cli/cli-cmds.c:2071
 msgid ""
 "When enabled, each packet sent or received with the remote target\n"
 "is displayed."
 msgstr ""
 
-#: cli/cli-cmds.c:2074
+#: cli/cli-cmds.c:2079
 msgid "Set timeout limit to wait for target to respond."
 msgstr ""
 
-#: cli/cli-cmds.c:2075
+#: cli/cli-cmds.c:2080
 msgid "Show timeout limit to wait for target to respond."
 msgstr ""
 
-#: cli/cli-cmds.c:2076
+#: cli/cli-cmds.c:2081
 msgid ""
 "This value is used to set the time limit for gdb to wait for a response\n"
 "from the target."
 msgstr ""
 
-#: cli/cli-cmds.c:2084
+#: cli/cli-cmds.c:2089
 msgid "Generic command for setting gdb debugging flags."
 msgstr ""
 
-#: cli/cli-cmds.c:2088
+#: cli/cli-cmds.c:2093
 msgid "Generic command for showing gdb debugging flags."
 msgstr ""
 
-#: cli/cli-cmds.c:2091
+#: cli/cli-cmds.c:2096
 msgid ""
 "Execute the rest of the line as a shell command.\n"
 "With no arguments, run an inferior shell."
 msgstr ""
 
-#: cli/cli-cmds.c:2098
+#: cli/cli-cmds.c:2103
 msgid ""
 "Edit specified file or function.\n"
 "With no argument, edits file containing most recent line listed.\n"
@@ -6374,7 +6380,7 @@ msgid ""
 "Uses EDITOR environment variable contents as editor (or ex as default)."
 msgstr ""
 
-#: cli/cli-cmds.c:2110
+#: cli/cli-cmds.c:2115
 msgid ""
 "Send the output of a gdb command to a shell command.\n"
 "Usage: | [COMMAND] | SHELL_COMMAND\n"
@@ -6392,7 +6398,7 @@ msgid ""
 "and send its output to SHELL_COMMAND."
 msgstr ""
 
-#: cli/cli-cmds.c:2128
+#: cli/cli-cmds.c:2133
 msgid ""
 "List specified function or line.\n"
 "With no argument, lists ten more lines after or around previous listing.\n"
@@ -6413,7 +6419,7 @@ msgid ""
 "can be shown using \"show listsize\"."
 msgstr ""
 
-#: cli/cli-cmds.c:2152
+#: cli/cli-cmds.c:2157
 msgid ""
 "Disassemble a specified section of memory.\n"
 "Default is the function surrounding the pc of the selected frame.\n"
@@ -6443,18 +6449,18 @@ msgid ""
 "you must type \"disassemble 'foo.c'::bar\" and not \"disassemble foo.c:bar\"."
 msgstr ""
 
-#: cli/cli-cmds.c:2180
+#: cli/cli-cmds.c:2185
 msgid "Run the ``make'' program using the rest of the line as arguments."
 msgstr ""
 
-#: cli/cli-cmds.c:2183
+#: cli/cli-cmds.c:2188
 msgid ""
 "Show definitions of non-python/scheme user defined commands.\n"
 "Argument is the name of the user defined command.\n"
 "With no argument, show definitions of all user defined commands."
 msgstr ""
 
-#: cli/cli-cmds.c:2187
+#: cli/cli-cmds.c:2192
 msgid ""
 "Search for commands matching a REGEXP.\n"
 "Usage: apropos [-v] REGEXP\n"
@@ -6462,27 +6468,27 @@ msgid ""
 "of the matching commands."
 msgstr ""
 
-#: cli/cli-cmds.c:2194
+#: cli/cli-cmds.c:2199
 msgid "Set the max call depth for non-python/scheme user-defined commands."
 msgstr ""
 
-#: cli/cli-cmds.c:2195
+#: cli/cli-cmds.c:2200
 msgid "Show the max call depth for non-python/scheme user-defined commands."
 msgstr ""
 
-#: cli/cli-cmds.c:2201
+#: cli/cli-cmds.c:2206
 msgid "Set tracing of GDB CLI commands."
 msgstr ""
 
-#: cli/cli-cmds.c:2202
+#: cli/cli-cmds.c:2207
 msgid "Show state of GDB CLI command tracing."
 msgstr ""
 
-#: cli/cli-cmds.c:2203
+#: cli/cli-cmds.c:2208
 msgid "When 'on', each command is displayed as it is executed."
 msgstr ""
 
-#: cli/cli-cmds.c:2209
+#: cli/cli-cmds.c:2214
 msgid ""
 "Define a new command that is an alias of an existing command.\n"
 "Usage: alias [-a] [--] ALIAS = COMMAND\n"
@@ -6498,7 +6504,7 @@ msgid ""
 "  alias -a set print elms = set print elements"
 msgstr ""
 
-#: cli/cli-cmds.c:2223
+#: cli/cli-cmds.c:2228
 #, possible-c-format
 msgid ""
 "Read commands from a file named FILE.\n"
@@ -6594,11 +6600,11 @@ msgstr ""
 #. Should never come here as hookc would be 0.
 #: cli/cli-script.c:1469 gdbsupport/common-exceptions.c:93
 #: gdbsupport/common-exceptions.c:109 gdbsupport/common-exceptions.c:125
-#: hppa-tdep.c:3127 hppa-tdep.c:3140 infcall.c:945 infcmd.c:1585
-#: language.c:465 mi/mi-out.c:226 mi/mi-out.c:246 mips-tdep.c:305
+#: hppa-tdep.c:3127 hppa-tdep.c:3140 infcall.c:945 infcmd.c:1582
+#: language.c:465 mi/mi-out.c:227 mi/mi-out.c:247 mips-tdep.c:305
 #: mips-tdep.c:509 mips-tdep.c:2235 mips-tdep.c:5762 mips-tdep.c:6927
 #: mn10300-tdep.c:127 reggroups.c:274 remote.c:2118 remote.c:8664
-#: remote.c:9937 utils.c:378 utils.c:406
+#: remote.c:9937 utils.c:380 utils.c:408
 msgid "bad switch"
 msgstr ""
 
@@ -6653,33 +6659,33 @@ msgid ""
 "is used, the same rules apply to its nested commands as to the first ones."
 msgstr ""
 
-#: cli/cli-logging.c:32
+#: cli/cli-logging.c:33
 #, possible-c-format
-msgid "The current logfile is \"%s\".\n"
+msgid "The current logfile is \"%ps\".\n"
 msgstr ""
 
-#: cli/cli-logging.c:42
+#: cli/cli-logging.c:43
 #, possible-c-format
 msgid ""
 "Currently logging to %s.  Turn the logging off and on to make the new "
 "setting effective."
 msgstr ""
 
-#: cli/cli-logging.c:58
+#: cli/cli-logging.c:59
 #, possible-c-format
 msgid "Whether logging overwrites or appends to the log file is %s.\n"
 msgstr ""
 
-#: cli/cli-logging.c:78
+#: cli/cli-logging.c:79
 #, possible-c-format
 msgid "The logging output mode is %s.\n"
 msgstr ""
 
-#: cli/cli-logging.c:105
+#: cli/cli-logging.c:106
 msgid "set logging"
 msgstr ""
 
-#: cli/cli-logging.c:170
+#: cli/cli-logging.c:171
 msgid ""
 "\"set logging\" lets you log output to a file.\n"
 "Usage: set logging on [FILENAME]\n"
@@ -6689,206 +6695,206 @@ msgid ""
 "       set logging redirect [on|off]\n"
 msgstr ""
 
-#: cli/cli-logging.c:182
+#: cli/cli-logging.c:183
 #, possible-c-format
 msgid "Currently logging to \"%s\".\n"
 msgstr ""
 
-#: cli/cli-logging.c:185
+#: cli/cli-logging.c:186
 #, possible-c-format
 msgid "Future logs will be written to %s.\n"
 msgstr ""
 
-#: cli/cli-logging.c:189
+#: cli/cli-logging.c:190
 msgid "Logs will overwrite the log file.\n"
 msgstr ""
 
-#: cli/cli-logging.c:191
+#: cli/cli-logging.c:192
 msgid "Logs will be appended to the log file.\n"
 msgstr ""
 
-#: cli/cli-logging.c:194
+#: cli/cli-logging.c:195
 msgid "Output will be sent only to the log file.\n"
 msgstr ""
 
-#: cli/cli-logging.c:196
+#: cli/cli-logging.c:197
 msgid "Output will be logged and displayed.\n"
 msgstr ""
 
-#: cli/cli-logging.c:199
+#: cli/cli-logging.c:200
 msgid "Debug output will be sent only to the log file.\n"
 msgstr ""
 
-#: cli/cli-logging.c:201
+#: cli/cli-logging.c:202
 msgid "Debug output will be logged and displayed.\n"
 msgstr ""
 
-#: cli/cli-logging.c:210
+#: cli/cli-logging.c:211
 msgid "Set logging options."
 msgstr ""
 
-#: cli/cli-logging.c:213
+#: cli/cli-logging.c:214
 msgid "Show logging options."
 msgstr ""
 
-#: cli/cli-logging.c:215
+#: cli/cli-logging.c:216
 msgid "Set whether logging overwrites or appends to the log file."
 msgstr ""
 
-#: cli/cli-logging.c:216
+#: cli/cli-logging.c:217
 msgid "Show whether logging overwrites or appends to the log file."
 msgstr ""
 
-#: cli/cli-logging.c:217
+#: cli/cli-logging.c:218
 msgid "If set, logging overrides the log file."
 msgstr ""
 
-#: cli/cli-logging.c:222
+#: cli/cli-logging.c:223
 msgid "Set the logging output mode."
 msgstr ""
 
-#: cli/cli-logging.c:223
+#: cli/cli-logging.c:224
 msgid "Show the logging output mode."
 msgstr ""
 
-#: cli/cli-logging.c:224
+#: cli/cli-logging.c:225
 msgid ""
 "If redirect is off, output will go to both the screen and the log file.\n"
 "If redirect is on, output will go only to the log file."
 msgstr ""
 
-#: cli/cli-logging.c:231
+#: cli/cli-logging.c:232
 msgid "Set the logging debug output mode."
 msgstr ""
 
-#: cli/cli-logging.c:232
+#: cli/cli-logging.c:233
 msgid "Show the logging debug output mode."
 msgstr ""
 
-#: cli/cli-logging.c:233
+#: cli/cli-logging.c:234
 msgid ""
 "If debug redirect is off, debug will go to both the screen and the log "
 "file.\n"
 "If debug redirect is on, debug will go only to the log file."
 msgstr ""
 
-#: cli/cli-logging.c:239
+#: cli/cli-logging.c:240
 msgid "Set the current logfile."
 msgstr ""
 
-#: cli/cli-logging.c:240
+#: cli/cli-logging.c:241
 msgid "Show the current logfile."
 msgstr ""
 
-#: cli/cli-logging.c:241
+#: cli/cli-logging.c:242
 msgid "The logfile is used when directing GDB's output."
 msgstr ""
 
-#: cli/cli-logging.c:247
+#: cli/cli-logging.c:248
 msgid "Enable logging."
 msgstr ""
 
-#: cli/cli-logging.c:249
+#: cli/cli-logging.c:250
 msgid "Disable logging."
 msgstr ""
 
-#: cli/cli-style.c:152
+#: cli/cli-style.c:156
 msgid "The "
 msgstr ""
 
-#: cli/cli-style.c:153
+#: cli/cli-style.c:157
 #, possible-c-format
 msgid "\"%s\" style"
 msgstr ""
 
-#: cli/cli-style.c:154
+#: cli/cli-style.c:158
 #, possible-c-format
 msgid " %s is: %s\n"
 msgstr ""
 
-#: cli/cli-style.c:164
+#: cli/cli-style.c:168
 msgid "foreground color"
 msgstr ""
 
-#: cli/cli-style.c:174
+#: cli/cli-style.c:178
 msgid "background color"
 msgstr ""
 
-#: cli/cli-style.c:184
+#: cli/cli-style.c:188
 msgid "display intensity"
 msgstr ""
 
-#: cli/cli-style.c:209
+#: cli/cli-style.c:213
 msgid "Set the foreground color for this property."
 msgstr ""
 
-#: cli/cli-style.c:210
+#: cli/cli-style.c:214
 msgid "Show the foreground color for this property."
 msgstr ""
 
-#: cli/cli-style.c:217
+#: cli/cli-style.c:221
 msgid "Set the background color for this property."
 msgstr ""
 
-#: cli/cli-style.c:218
+#: cli/cli-style.c:222
 msgid "Show the background color for this property."
 msgstr ""
 
-#: cli/cli-style.c:225
+#: cli/cli-style.c:229
 msgid "Set the display intensity for this property."
 msgstr ""
 
-#: cli/cli-style.c:226
+#: cli/cli-style.c:230
 msgid "Show the display intensity for this property."
 msgstr ""
 
-#: cli/cli-style.c:239
+#: cli/cli-style.c:243
 msgid "\"set style\" must be followed by an appropriate subcommand.\n"
 msgstr ""
 
-#: cli/cli-style.c:262
+#: cli/cli-style.c:266
 msgid "CLI output styling is enabled.\n"
 msgstr ""
 
-#: cli/cli-style.c:264
+#: cli/cli-style.c:268
 msgid "CLI output styling is disabled.\n"
 msgstr ""
 
-#: cli/cli-style.c:272
+#: cli/cli-style.c:276
 msgid "Source code styling is enabled.\n"
 msgstr ""
 
-#: cli/cli-style.c:274
+#: cli/cli-style.c:278
 msgid "Source code styling is disabled.\n"
 msgstr ""
 
-#: cli/cli-style.c:292 cli/cli-style.c:296
+#: cli/cli-style.c:296 cli/cli-style.c:300
 msgid ""
 "Style-specific settings.\n"
 "Configure various style-related variables, such as colors"
 msgstr ""
 
-#: cli/cli-style.c:301
+#: cli/cli-style.c:305
 msgid "Set whether CLI styling is enabled."
 msgstr ""
 
-#: cli/cli-style.c:302
+#: cli/cli-style.c:306
 msgid "Show whether CLI is enabled."
 msgstr ""
 
-#: cli/cli-style.c:303
+#: cli/cli-style.c:307
 msgid "If enabled, output to the terminal is styled."
 msgstr ""
 
-#: cli/cli-style.c:308
+#: cli/cli-style.c:312
 msgid "Set whether source code styling is enabled."
 msgstr ""
 
-#: cli/cli-style.c:309
+#: cli/cli-style.c:313
 msgid "Show whether source code styling is enabled."
 msgstr ""
 
-#: cli/cli-style.c:310
+#: cli/cli-style.c:314
 msgid ""
 "If enabled, source code is styled.\n"
 "Note that source styling only works if styling in general is enabled,\n"
@@ -6897,31 +6903,31 @@ msgid ""
 "it was not linked against GNU Source Highlight."
 msgstr ""
 
-#: cli/cli-style.c:343
+#: cli/cli-style.c:347
 msgid ""
 "Filename display styling.\n"
 "Configure filename colors and display intensity."
 msgstr ""
 
-#: cli/cli-style.c:348
+#: cli/cli-style.c:352
 msgid ""
 "Function name display styling.\n"
 "Configure function name colors and display intensity"
 msgstr ""
 
-#: cli/cli-style.c:353
+#: cli/cli-style.c:357
 msgid ""
 "Variable name display styling.\n"
 "Configure variable name colors and display intensity"
 msgstr ""
 
-#: cli/cli-style.c:358
+#: cli/cli-style.c:362
 msgid ""
 "Address display styling.\n"
 "Configure address colors and display intensity"
 msgstr ""
 
-#: cli/cli-style.c:363
+#: cli/cli-style.c:367
 msgid ""
 "Title display styling.\n"
 "Configure title colors and display intensity\n"
@@ -6930,7 +6936,7 @@ msgid ""
 "readability."
 msgstr ""
 
-#: cli/cli-style.c:370
+#: cli/cli-style.c:374
 msgid ""
 "Highlight display styling.\n"
 "Configure highlight colors and display intensity\n"
@@ -6938,6 +6944,14 @@ msgid ""
 "of their output."
 msgstr ""
 
+#: cli/cli-style.c:381
+msgid ""
+"Metadata display styling.\n"
+"Configure metadata colors and display intensity\n"
+"The \"metadata\" style is used when GDB displays information about\n"
+"your data, for example \"<unavailable>\""
+msgstr ""
+
 #: cli/cli-utils.c:43
 msgid "History value must have integer type."
 msgstr ""
@@ -7154,12 +7168,12 @@ msgstr ""
 msgid "Line number pointer %ld lower than start of line numbers"
 msgstr ""
 
-#: coffread.c:1812
+#: coffread.c:1814
 #, possible-c-format
 msgid "Symbol table entry for %s has bad tagndx value"
 msgstr ""
 
-#: coffread.c:1969
+#: coffread.c:1971
 #, possible-c-format
 msgid "Unexpected type for symbol %s"
 msgstr ""
@@ -7281,7 +7295,7 @@ msgstr ""
 msgid "Unexpected type id from GCC, check you use recent enough GCC."
 msgstr ""
 
-#: compile/compile.c:225 utils.c:622
+#: compile/compile.c:225 utils.c:624
 #, possible-c-format
 msgid "%s"
 msgstr ""
@@ -7968,15 +7982,15 @@ msgstr ""
 msgid "invalid character"
 msgstr ""
 
-#: cp-namespace.c:980
+#: cp-namespace.c:981
 msgid "cp_lookup_nested_symbol called on a non-aggregate type."
 msgstr ""
 
-#: cp-namespace.c:1061
+#: cp-namespace.c:1062
 msgid "The `maint namespace' command was removed.\n"
 msgstr ""
 
-#: cp-namespace.c:1071
+#: cp-namespace.c:1072
 msgid "Deprecated placeholder for removed functionality."
 msgstr ""
 
@@ -8062,7 +8076,7 @@ msgid ""
 "display the offending symbol."
 msgstr ""
 
-#: cp-valprint.c:279 p-valprint.c:633 valprint.c:350
+#: cp-valprint.c:281 p-valprint.c:635 valprint.c:351
 msgid "<synthetic pointer>"
 msgstr ""
 
@@ -8156,81 +8170,118 @@ msgstr ""
 msgid "When on, C-Sky specific debugging is enabled."
 msgstr ""
 
-#: ctf.c:41
-msgid "CTF file"
+#: ctfread.c:208
+#, possible-c-format
+msgid "An internal GDB problem: ctf_ id_t %ld type already set"
 msgstr ""
 
-#: ctf.c:42
-msgid ""
-"(Use a CTF directory as a target.\n"
-"Specify the filename of the CTF directory."
+#: ctfread.c:342
+#, possible-c-format
+msgid "ctf_add_member_cb: %s has NO type (%ld)"
 msgstr ""
 
-#: ctf.c:147
+#: ctfread.c:473
 #, possible-c-format
-msgid "Unable to write metadata file (%s)"
+msgid "ctf_type_encoding read_base_type failed - %s"
 msgstr ""
 
-#: ctf.c:160
+#: ctfread.c:483
 #, possible-c-format
-msgid "Unable to write file for saving trace data (%s)"
+msgid "ctf_type_aname read_base_type failed - %s"
 msgstr ""
 
-#: ctf.c:192
+#: ctfread.c:530
 #, possible-c-format
-msgid "Unable to seek file for saving trace data (%s)"
+msgid "read_base_type: unsupported base kind (%d)"
 msgstr ""
 
-#: ctf.c:352
+#: ctfread.c:594
 #, possible-c-format
-msgid "Unable to open directory '%s' for saving trace data (%s)"
+msgid "ctf_member_iter process_struct_members failed - %s"
 msgstr ""
 
-#: ctf.c:362 ctf.c:371 tracefile-tfile.c:127
+#: ctfread.c:675
 #, possible-c-format
-msgid "Unable to open file '%s' for saving trace data (%s)"
+msgid "ctf_enum_iter process_enum_type failed - %s"
 msgstr ""
 
-#: ctf.c:897
-msgid "Unable to create bt_context"
+#: ctfread.c:726
+#, possible-c-format
+msgid "ctf_array_info read_array_type failed - %s"
 msgstr ""
 
-#: ctf.c:902
+#: ctfread.c:769
 #, possible-c-format
-msgid "Unable to use libbabeltrace on directory \"%s\""
+msgid "read_const_type: NULL base type (%ld)"
 msgstr ""
 
-#: ctf.c:911
-msgid "Unable to create bt_iterator"
+#: ctfread.c:793
+#, possible-c-format
+msgid "read_volatile_type: NULL base type (%ld)"
 msgstr ""
 
-#: ctf.c:1125
-msgid "No CTF directory specified."
+#: ctfread.c:819
+#, possible-c-format
+msgid "read_restrict_type: NULL base type (%ld)"
 msgstr ""
 
-#: ctf.c:1137
-msgid "Wrong event id of the first event"
+#: ctfread.c:864
+#, possible-c-format
+msgid "read_pointer_type: NULL target type (%ld)"
 msgstr ""
 
-#: ctf.c:1144
-msgid "Wrong event id of the second event"
+#: ctfread.c:1040
+#, possible-c-format
+msgid "ctf_add_var_cb: %s has NO type (%ld)"
 msgstr ""
 
-#: ctf.c:1161
-msgid "Wrong event id of the first event of the second packet"
+#: ctfread.c:1052
+#, possible-c-format
+msgid "ctf_add_var_cb: kind unsupported (%d)"
 msgstr ""
 
-#: ctf.c:1306
-msgid "ctf_xfer_partial: trace file is read-only"
+#: ctfread.c:1210
+#, possible-c-format
+msgid "ctf_type_iter psymtab_to_symtab failed - %s"
 msgstr ""
 
-#: ctf.c:1624 tracefile-tfile.c:755
-msgid "unknown tfind type"
+#: ctfread.c:1216
+#, possible-c-format
+msgid "ctf_variable_iter psymtab_to_symtab failed - %s"
 msgstr ""
 
-#: ctf.c:1704
+#: ctfread.c:1246 dwarf2read.c:9469
 #, possible-c-format
-msgid "Unhandled trace block type (%s) while building trace frame info."
+msgid "bug: psymtab for %s is already read in."
+msgstr ""
+
+#: ctfread.c:1251
+#, possible-c-format
+msgid "Reading in CTF data for %s..."
+msgstr ""
+
+#: ctfread.c:1270 dwarf2read.c:9500 mdebugread.c:293
+msgid "done.\n"
+msgstr ""
+
+#: ctfread.c:1405
+#, possible-c-format
+msgid "ctf_type_iter scan_partial_symbols failed - %s"
+msgstr ""
+
+#: ctfread.c:1409
+#, possible-c-format
+msgid "ctf_variable_iter scan_partial_symbols failed - %s"
+msgstr ""
+
+#: ctfread.c:1469
+#, possible-c-format
+msgid "ctf_bfdopen failed on %s - %s"
+msgstr ""
+
+#: ctfread.c:1474
+#, possible-c-format
+msgid "ctf_arc_open_by_name failed on %s - %s"
 msgstr ""
 
 #: c-typeprint.c:470
@@ -8250,49 +8301,49 @@ msgstr ""
 msgid "] "
 msgstr ""
 
-#: c-typeprint.c:1119 c-typeprint.c:1625
-msgid "<incomplete type>\n"
+#: c-typeprint.c:1119 c-typeprint.c:1629
+#, possible-c-format
+msgid "%p[<incomplete type>%p]\n"
 msgstr ""
 
-#: c-typeprint.c:1122 c-typeprint.c:1628
-msgid "<no data fields>\n"
+#: c-typeprint.c:1123 c-typeprint.c:1633
+#, possible-c-format
+msgid "%p[<no data fields>%p]\n"
 msgstr ""
 
-#: c-typeprint.c:1280
+#: c-typeprint.c:1282
 #, possible-c-format
-msgid "<undefined type> %s;\n"
+msgid "%p[<undefined type>%p] %s;\n"
 msgstr ""
 
-#: c-typeprint.c:1329
+#: c-typeprint.c:1332
 #, possible-c-format
 msgid "<badly mangled name '%s'>"
 msgstr ""
 
-#: c-typeprint.c:1468 m2-typeprint.c:84
+#: c-typeprint.c:1471 m2-typeprint.c:85
 msgid "<type unknown>"
 msgstr ""
 
-#: c-typeprint.c:1514
+#: c-typeprint.c:1518
 msgid "<unnamed typedef>"
 msgstr ""
 
-#: c-typeprint.c:1662
+#: c-typeprint.c:1668
 msgid "struct <unknown>"
 msgstr ""
 
 #. This should not occur.
-#: c-typeprint.c:1671
+#: c-typeprint.c:1677
 msgid "<range type>"
 msgstr ""
 
-#. At least for dump_symtab, it is important that this not
-#. be an error ().
-#: c-typeprint.c:1693
+#: c-typeprint.c:1700
 #, possible-c-format
 msgid "<invalid type code %d>"
 msgstr ""
 
-#: c-valprint.c:255 valprint.c:439
+#: c-valprint.c:255 valprint.c:441
 msgid "Could not determine the array high bound"
 msgstr ""
 
@@ -9275,7 +9326,7 @@ msgstr ""
 msgid "bad string table offset in symbol %d"
 msgstr ""
 
-#: dbxread.c:943 mdebugread.c:2224 xcoffread.c:2171
+#: dbxread.c:943 mdebugread.c:2224 xcoffread.c:2173
 #, possible-c-format
 msgid "function `%s' appears to be defined outside of all compilation units"
 msgstr ""
@@ -9312,7 +9363,7 @@ msgstr ""
 #. certainly don't want to spend the time searching to
 #. the end of every string looking for a
 #. backslash.
-#: dbxread.c:1751 mdebugread.c:3268 xcoffread.c:2870
+#: dbxread.c:1751 mdebugread.c:3268 xcoffread.c:2872
 #, possible-c-format
 msgid "unknown symbol descriptor `%c'"
 msgstr ""
@@ -9337,8 +9388,8 @@ msgstr ""
 
 #: dbxread.c:2720 exec.c:521 exec.c:787 gdbsupport/print-utils.c:77
 #: gdbsupport/print-utils.c:120 gdbsupport/print-utils.c:288 mdebugread.c:3590
-#: printcmd.c:1013 printcmd.c:2692 psymtab.c:695 psymtab.c:708 target.c:651
-#: utils.c:1582 valprint.c:1362
+#: printcmd.c:1013 printcmd.c:2694 psymtab.c:695 psymtab.c:708 target.c:651
+#: ui-out.c:755 utils.c:1584 valprint.c:1367
 msgid "failed internal consistency check"
 msgstr ""
 
@@ -9548,37 +9599,37 @@ msgid ""
 "multidictionary"
 msgstr ""
 
-#: disasm.c:677
+#: disasm.c:678
 msgid "--- no source info for this pc ---\n"
 msgstr ""
 
-#: disasm.c:949
+#: disasm.c:950
 msgid "'set disassembler-options ...' is not supported on this architecture.\n"
 msgstr ""
 
-#: disasm.c:986
+#: disasm.c:987
 #, possible-c-format
 msgid "Invalid disassembler option value: '%s'.\n"
 msgstr ""
 
-#: disasm.c:1016
+#: disasm.c:1017
 #, possible-c-format
 msgid ""
 "The current disassembler options are '%s'\n"
 "\n"
 msgstr ""
 
-#: disasm.c:1023
+#: disasm.c:1024
 msgid "There are no disassembler options available for this architecture.\n"
 msgstr ""
 
-#: disasm.c:1031
+#: disasm.c:1032
 msgid ""
 "The following disassembler options are supported for use with the\n"
 "'set disassembler-options OPTION [,OPTION]...' command:\n"
 msgstr ""
 
-#: disasm.c:1092
+#: disasm.c:1093
 #, possible-c-format
 msgid ""
 "\n"
@@ -9586,7 +9637,7 @@ msgid ""
 "   "
 msgstr ""
 
-#: disasm.c:1139
+#: disasm.c:1140
 msgid ""
 "Set the disassembler options.\n"
 "Usage: set disassembler-options OPTION [,OPTION]...\n"
@@ -9594,7 +9645,7 @@ msgid ""
 "See: 'show disassembler-options' for valid option values."
 msgstr ""
 
-#: disasm.c:1142
+#: disasm.c:1143
 msgid "Show the disassembler options."
 msgstr ""
 
@@ -9611,7 +9662,7 @@ msgid ""
 "report this bug."
 msgstr ""
 
-#: dtrace-probe.c:781 dtrace-probe.c:805 linux-thread-db.c:1951
+#: dtrace-probe.c:781 dtrace-probe.c:805 linux-thread-db.c:1954
 msgid "No inferior running"
 msgstr ""
 
@@ -10250,100 +10301,100 @@ msgstr ""
 msgid "invalid attribute class or form for '%s' in '%s'"
 msgstr ""
 
-#: dwarf2read.c:2488
+#: dwarf2read.c:2494
 #, possible-c-format
 msgid ""
 "Dwarf Error: DWP format V2 with relocations is not supported in section %s "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:2532
+#: dwarf2read.c:2538
 #, possible-c-format
 msgid "Dwarf Error: Can't read DWARF data in section %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:2661
+#: dwarf2read.c:2667
 #, possible-c-format
 msgid "could not read '.gnu_debugaltlink' section: %s"
 msgstr ""
 
-#: dwarf2read.c:2694
+#: dwarf2read.c:2700
 #, possible-c-format
 msgid "could not find '.gnu_debugaltlink' file for %s"
 msgstr ""
 
-#: dwarf2read.c:3169
+#: dwarf2read.c:3175
 #, possible-c-format
 msgid ".gdb_index address table has invalid range (%s - %s)"
 msgstr ""
 
-#: dwarf2read.c:3176
+#: dwarf2read.c:3182
 #, possible-c-format
 msgid ".gdb_index address table has invalid CU number %u"
 msgstr ""
 
-#: dwarf2read.c:3217
+#: dwarf2read.c:3223
 #, possible-c-format
 msgid ""
 "Section .debug_aranges in %s has duplicate debug_info_offset %s, ignoring ."
 "debug_aranges."
 msgstr ""
 
-#: dwarf2read.c:3244
+#: dwarf2read.c:3250
 #, possible-c-format
 msgid ""
 "Section .debug_aranges in %s entry at offset %s length %s exceeds section "
 "length %s, ignoring .debug_aranges."
 msgstr ""
 
-#: dwarf2read.c:3259
+#: dwarf2read.c:3265
 #, possible-c-format
 msgid ""
 "Section .debug_aranges in %s entry at offset %s has unsupported version %d, "
 "ignoring .debug_aranges."
 msgstr ""
 
-#: dwarf2read.c:3273
+#: dwarf2read.c:3279
 #, possible-c-format
 msgid ""
 "Section .debug_aranges in %s entry at offset %s debug_info_offset %s does "
 "not exists, ignoring .debug_aranges."
 msgstr ""
 
-#: dwarf2read.c:3286
+#: dwarf2read.c:3292
 #, possible-c-format
 msgid ""
 "Section .debug_aranges in %s entry at offset %s address_size %u is invalid, "
 "ignoring .debug_aranges."
 msgstr ""
 
-#: dwarf2read.c:3296
+#: dwarf2read.c:3302
 #, possible-c-format
 msgid ""
 "Section .debug_aranges in %s entry at offset %s segment_selector_size %u is "
 "not supported, ignoring .debug_aranges."
 msgstr ""
 
-#: dwarf2read.c:3313
+#: dwarf2read.c:3319
 #, possible-c-format
 msgid ""
 "Section .debug_aranges in %s entry at offset %s padding is not zero, "
 "ignoring .debug_aranges."
 msgstr ""
 
-#: dwarf2read.c:3324
+#: dwarf2read.c:3330
 #, possible-c-format
 msgid ""
 "Section .debug_aranges in %s entry at offset %s address list is not properly "
 "terminated, ignoring .debug_aranges."
 msgstr ""
 
-#: dwarf2read.c:3454
+#: dwarf2read.c:3460
 #, possible-c-format
 msgid "Skipping obsolete .gdb_index section in %s."
 msgstr ""
 
-#: dwarf2read.c:3473
+#: dwarf2read.c:3479
 #, possible-c-format
 msgid ""
 "Skipping deprecated .gdb_index section in %s.\n"
@@ -10351,188 +10402,188 @@ msgid ""
 "to use the section anyway."
 msgstr ""
 
-#: dwarf2read.c:3593
+#: dwarf2read.c:3599
 #, possible-c-format
 msgid "could not read '.gdb_index' section from %s; skipping"
 msgstr ""
 
-#: dwarf2read.c:3970 dwarf2read.c:5053
+#: dwarf2read.c:3976 dwarf2read.c:5059
 #, possible-c-format
 msgid ".gdb_index entry has bad CU index [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:4093
+#: dwarf2read.c:4099
 #, possible-c-format
 msgid "  Number of read CUs: %d\n"
 msgstr ""
 
-#: dwarf2read.c:4094
+#: dwarf2read.c:4100
 #, possible-c-format
 msgid "  Number of unread CUs: %d\n"
 msgstr ""
 
-#: dwarf2read.c:4595
+#: dwarf2read.c:4601
 #, possible-c-format
 msgid "%s:%d: match_type=%s, looking-for=\"%s\", expected=\"%s\", got=\"%s\"\n"
 msgstr ""
 
-#: dwarf2read.c:5223
+#: dwarf2read.c:5229
 #, possible-c-format
 msgid "(Internal error: pc %s in read in CU, but not in symtab.)"
 msgstr ""
 
 #. There may be multiple per-CU indices.
-#: dwarf2read.c:5368
+#: dwarf2read.c:5374
 #, possible-c-format
 msgid ""
 "Section .debug_names in %s length %s does not match section length %s, "
 "ignoring .debug_names."
 msgstr ""
 
-#: dwarf2read.c:5380
+#: dwarf2read.c:5386
 #, possible-c-format
 msgid ""
 "Section .debug_names in %s has unsupported version %d, ignoring .debug_names."
 msgstr ""
 
-#: dwarf2read.c:5391
+#: dwarf2read.c:5397
 #, possible-c-format
 msgid ""
 "Section .debug_names in %s has unsupported padding %d, ignoring .debug_names."
 msgstr ""
 
-#: dwarf2read.c:5412
+#: dwarf2read.c:5418
 #, possible-c-format
 msgid ""
 "Section .debug_names in %s has unsupported %lu foreign TUs, ignoring ."
 "debug_names."
 msgstr ""
 
-#: dwarf2read.c:5475
+#: dwarf2read.c:5481
 #, possible-c-format
 msgid ""
 "Section .debug_names in %s has duplicate index %s, ignoring .debug_names."
 msgstr ""
 
-#: dwarf2read.c:5504
+#: dwarf2read.c:5510
 #, possible-c-format
 msgid ""
 "Section .debug_names in %s has abbreviation_table of size %s vs. written as %"
 "u, ignoring .debug_names."
 msgstr ""
 
-#: dwarf2read.c:5602
+#: dwarf2read.c:5608
 #, possible-c-format
 msgid "could not read '.debug_names' section from %s; skipping"
 msgstr ""
 
-#: dwarf2read.c:5738 dwarf2read.c:5790
+#: dwarf2read.c:5744 dwarf2read.c:5796
 #, possible-c-format
 msgid "Wrong .debug_names with name index %u but name_count=%u [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:5761
+#: dwarf2read.c:5767
 #, possible-c-format
 msgid "Wrong .debug_names hash for string at index %u [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:5827
+#: dwarf2read.c:5833
 #, possible-c-format
 msgid "Wrong .debug_names undefined abbrev code %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:5855
+#: dwarf2read.c:5861
 #, possible-c-format
 msgid "Unsupported .debug_names form %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:5866
+#: dwarf2read.c:5872
 #, possible-c-format
 msgid ".debug_names entry has bad CU index %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:5878
+#: dwarf2read.c:5884
 #, possible-c-format
 msgid ".debug_names entry has bad TU index %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:6412
+#: dwarf2read.c:6418
 #, possible-c-format
 msgid ""
 "Dwarf Error: wrong version in compilation unit header (is %d, should be 2, "
 "3, 4 or 5) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:6427
+#: dwarf2read.c:6433
 msgid "read_comp_unit_head: invalid section_kind"
 msgstr ""
 
-#: dwarf2read.c:6441
+#: dwarf2read.c:6447
 #, possible-c-format
 msgid ""
 "Dwarf Error: wrong unit_type in compilation unit header (is %s, should be %"
 "s) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:6451
+#: dwarf2read.c:6457
 #, possible-c-format
 msgid ""
 "Dwarf Error: wrong unit_type in compilation unit header (is %#04x, should be "
 "one of: %s, %s, %s, %s or %s) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:6476
+#: dwarf2read.c:6482
 msgid "read_comp_unit_head: dwarf from non elf file"
 msgstr ""
 
-#: dwarf2read.c:6496
+#: dwarf2read.c:6502
 #, possible-c-format
 msgid ""
 "Dwarf Error: Too big type_offset in compilation unit header (is %s) [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:6535
+#: dwarf2read.c:6541
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad offset (%s) in compilation unit header (offset %s + 6) [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:6545
+#: dwarf2read.c:6551
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad length (0x%x) in compilation unit header (offset %s + 0) "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:6836
+#: dwarf2read.c:6842
 #, possible-c-format
 msgid ""
 "debug type entry at offset %s is duplicate to the entry at offset %s, "
 "signature %s"
 msgstr ""
 
-#: dwarf2read.c:7271
+#: dwarf2read.c:7277
 #, possible-c-format
 msgid ""
 "Dwarf Error: signature mismatch %s vs %s while reading TU at offset %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:7406
+#: dwarf2read.c:7412
 #, possible-c-format
 msgid "Dwarf Error: missing dwo_id for dwo_name %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:7667
+#: dwarf2read.c:7673
 #, possible-c-format
 msgid ""
 "compilation unit with DW_AT_GNU_dwo_name has children (offset %s) [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:8722 dwarf2read.c:10548
+#: dwarf2read.c:8729 dwarf2read.c:10563
 #, possible-c-format
 msgid ""
 "Dwarf Error: DW_TAG_imported_unit is not supported in type units [in module %"
@@ -10542,213 +10593,204 @@ msgstr ""
 #. FIXME drow/2004-04-01: What should we be doing with
 #. function-local names?  For partial symbols, we should probably be
 #. ignoring them.
-#: dwarf2read.c:8842
+#: dwarf2read.c:8853
 #, possible-c-format
 msgid "unhandled containing DIE tag %s for DIE at %s"
 msgstr ""
 
-#: dwarf2read.c:9210 dwarf2read.c:18574
+#: dwarf2read.c:9225 dwarf2read.c:18595
 msgid "malformed enumerator DIE ignored"
 msgstr ""
 
-#: dwarf2read.c:9249
+#: dwarf2read.c:9264
 #, possible-c-format
 msgid ""
 "Dwarf Error: Could not find abbrev number %d in %s at offset %s [in module %"
 "s]"
 msgstr ""
 
-#: dwarf2read.c:9302 dwarf2read.c:18793
+#: dwarf2read.c:9317 dwarf2read.c:18815
 msgid "ignoring absolute DW_AT_sibling"
 msgstr ""
 
-#: dwarf2read.c:9309 dwarf2read.c:18801
+#: dwarf2read.c:9324 dwarf2read.c:18823
 msgid "DW_AT_sibling points backwards"
 msgstr ""
 
-#: dwarf2read.c:9406 dwarf2read.c:19404
+#: dwarf2read.c:9421 dwarf2read.c:19426
 #, possible-c-format
 msgid "Dwarf Error: Cannot handle %s in DWARF reader [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9454
-#, possible-c-format
-msgid "bug: psymtab for %s is already read in."
-msgstr ""
-
-#: dwarf2read.c:9461 mdebugread.c:280
+#: dwarf2read.c:9476 mdebugread.c:280
 #, possible-c-format
 msgid "Reading in symbols for %s..."
 msgstr ""
 
-#: dwarf2read.c:9485 mdebugread.c:293
-msgid "done.\n"
-msgstr ""
-
-#: dwarf2read.c:9874
+#: dwarf2read.c:9889
 #, possible-c-format
 msgid "Symtab %s has objects from two different Go packages: %s and %s"
 msgstr ""
 
-#: dwarf2read.c:10002
+#: dwarf2read.c:10017
 #, possible-c-format
 msgid "Could not parse Rust enum encoding string \"%s\"[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10687
+#: dwarf2read.c:10708
 #, possible-c-format
 msgid "Tag '%s' has unexpected children"
 msgstr ""
 
-#: dwarf2read.c:10921
+#: dwarf2read.c:10942
 msgid "template parameter missing DW_AT_type"
 msgstr ""
 
-#: dwarf2read.c:10937
+#: dwarf2read.c:10958
 msgid "template parameter missing DW_AT_const_value"
 msgstr ""
 
 #. It may not mean a bug in GDB.  The compiler could also
 #. compute DW_AT_linkage_name incorrectly.  But in such case
 #. GDB would need to be bug-to-bug compatible.
-#: dwarf2read.c:11129
+#: dwarf2read.c:11150
 #, possible-c-format
 msgid ""
 "Computed physname <%s> does not match demangled <%s> (from linkage <%s>) - "
 "DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11190
+#: dwarf2read.c:11211
 #, possible-c-format
 msgid "DIE at %s has too many recursively imported declarations"
 msgstr ""
 
-#: dwarf2read.c:11253 dwarf2read.c:11343
+#: dwarf2read.c:11274 dwarf2read.c:11364
 #, possible-c-format
 msgid "Tag '%s' has no DW_AT_import"
 msgstr ""
 
-#: dwarf2read.c:11333
+#: dwarf2read.c:11354
 #, possible-c-format
 msgid "child DW_TAG_imported_declaration expected - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11354
+#: dwarf2read.c:11375
 #, possible-c-format
 msgid ""
 "child DW_TAG_imported_declaration has unknown imported name - DIE at %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:11619
+#: dwarf2read.c:11640
 msgid "CU refers to both DW_AT_macros and DW_AT_macro_info"
 msgstr ""
 
-#: dwarf2read.c:11921
+#: dwarf2read.c:11942
 #, possible-c-format
 msgid ""
 "Dwarf Error: debug entry at offset %s is missing its dwo_id [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12001
+#: dwarf2read.c:12022
 #, possible-c-format
 msgid ""
 "debug cu entry at offset %s is duplicate to the entry at offset %s, "
 "signature %s"
 msgstr ""
 
-#: dwarf2read.c:12184
+#: dwarf2read.c:12205
 #, possible-c-format
 msgid "Dwarf Error: unsupported DWP file version (%s) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12190
+#: dwarf2read.c:12211
 #, possible-c-format
 msgid ""
 "Dwarf Error: number of slots in DWP hash table (%s) is not power of 2 [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:12211
+#: dwarf2read.c:12232
 #, possible-c-format
 msgid "Empty DWP but nr_slots,nr_units,nr_columns not all zero [in modules %s]"
 msgstr ""
 
-#: dwarf2read.c:12236
+#: dwarf2read.c:12257
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, too few columns in section table [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:12242
+#: dwarf2read.c:12263
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, too many columns in section table [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:12254
+#: dwarf2read.c:12275
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, bad section id %d in section table [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:12260
+#: dwarf2read.c:12281
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, duplicate section id %d in section table "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12272
+#: dwarf2read.c:12293
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, missing/duplicate DWO info/types section "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12279
+#: dwarf2read.c:12300
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, missing DWO abbrev section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12291
+#: dwarf2read.c:12312
 #, possible-c-format
 msgid "Dwarf Error: DWP index section is corrupt (too small) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12440
+#: dwarf2read.c:12461
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, section number too large [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12448
+#: dwarf2read.c:12469
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, invalid section found [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12458
+#: dwarf2read.c:12479
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, missing DWO sections [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12464
+#: dwarf2read.c:12485
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, too many DWO sections [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12569
+#: dwarf2read.c:12590
 #, possible-c-format
 msgid ""
 "Dwarf Error: Bad DWP V2 section info, doesn't fit in section %s [in module %"
 "s]"
 msgstr ""
 
-#: dwarf2read.c:12815
+#: dwarf2read.c:12836
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, lookup didn't terminate [in module %s]"
 msgstr ""
@@ -10756,86 +10798,86 @@ msgstr ""
 #. Technically speaking, we should try to limp along, but this is
 #. pretty bizarre.  We use pulongest here because that's the established
 #. portability solution (e.g, we cannot use %u for uint32_t).
-#: dwarf2read.c:13266
+#: dwarf2read.c:13287
 #, possible-c-format
 msgid ""
 "Dwarf Error: DWP file CU version %s doesn't match TU version %s [in DWP file "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:13442
+#: dwarf2read.c:13463
 #, possible-c-format
 msgid ""
 "Could not find DWO %s %s(%s)%s referenced by %s at offset %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:13560
+#: dwarf2read.c:13581
 #, possible-c-format
 msgid "DIE %s and its abstract origin %s have different tags"
 msgstr ""
 
-#: dwarf2read.c:13606
+#: dwarf2read.c:13627
 #, possible-c-format
 msgid "Child DIE %s and its abstract origin %s have different tags"
 msgstr ""
 
-#: dwarf2read.c:13611
+#: dwarf2read.c:13632
 #, possible-c-format
 msgid "Child DIE %s and its abstract origin %s have different parents"
 msgstr ""
 
-#: dwarf2read.c:13623
+#: dwarf2read.c:13644
 #, possible-c-format
 msgid "Multiple children of DIE %s refer to DIE %s as their abstract origin"
 msgstr ""
 
-#: dwarf2read.c:13689
+#: dwarf2read.c:13710
 #, possible-c-format
 msgid "missing name for subprogram DIE at %s"
 msgstr ""
 
-#: dwarf2read.c:13700
+#: dwarf2read.c:13721
 #, possible-c-format
 msgid "cannot get low and high bounds for subprogram DIE at %s"
 msgstr ""
 
-#: dwarf2read.c:13945
+#: dwarf2read.c:13966
 #, possible-c-format
 msgid "missing DW_AT_call_return_pc for DW_TAG_call_site DIE %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:13961
+#: dwarf2read.c:13982
 #, possible-c-format
 msgid "Duplicate PC %s for DW_TAG_call_site DIE %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:13977
+#: dwarf2read.c:13998
 #, possible-c-format
 msgid ""
 "Tag %d is not DW_TAG_call_site_parameter in DW_TAG_call_site child DIE %s "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:14039
+#: dwarf2read.c:14060
 #, possible-c-format
 msgid "Cannot find function owning DW_TAG_call_site DIE %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:14085
+#: dwarf2read.c:14106
 #, possible-c-format
 msgid ""
 "DW_AT_call_target target DIE has invalid physname, for referencing DIE %s "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:14098
+#: dwarf2read.c:14119
 #, possible-c-format
 msgid ""
 "DW_AT_call_target target DIE has invalid low pc, for referencing DIE %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:14109
+#: dwarf2read.c:14130
 #, possible-c-format
 msgid ""
 "DW_TAG_call_site DW_AT_call_target is neither block nor reference, for DIE %"
@@ -10845,176 +10887,176 @@ msgstr ""
 #. As DW_OP_GNU_parameter_ref uses CU-relative offset this
 #. binding can be done only inside one CU.  Such referenced DIE
 #. therefore cannot be even moved to DW_TAG_partial_unit.
-#: dwarf2read.c:14155
+#: dwarf2read.c:14176
 #, possible-c-format
 msgid ""
 "DW_AT_call_parameter offset is not in CU for DW_TAG_call_site child DIE %s "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:14166
+#: dwarf2read.c:14187
 #, possible-c-format
 msgid ""
 "No DW_FORM_block* DW_AT_location for DW_TAG_call_site child DIE %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:14183
+#: dwarf2read.c:14204
 #, possible-c-format
 msgid ""
 "Only single DW_OP_reg or DW_OP_fbreg is supported for DW_FORM_block* "
 "DW_AT_location is supported for DW_TAG_call_site child DIE %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:14198
+#: dwarf2read.c:14219
 #, possible-c-format
 msgid ""
 "No DW_FORM_block* DW_AT_call_value for DW_TAG_call_site child DIE %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:14218
+#: dwarf2read.c:14239
 #, possible-c-format
 msgid ""
 "No DW_FORM_block* DW_AT_call_data_value for DW_TAG_call_site child DIE %s "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:14326 dwarf2read.c:14494
+#: dwarf2read.c:14347 dwarf2read.c:14515
 #, possible-c-format
 msgid "Offset %d out of bounds for DW_AT_ranges attribute"
 msgstr ""
 
 #. We have no valid base address for the ranges
 #. data.
-#: dwarf2read.c:14407 dwarf2read.c:14419
+#: dwarf2read.c:14428 dwarf2read.c:14440
 msgid "Invalid .debug_rnglists data (no base address)"
 msgstr ""
 
 #. Inverted range entries are invalid.
-#: dwarf2read.c:14426
+#: dwarf2read.c:14447
 msgid "Invalid .debug_rnglists data (inverted range)"
 msgstr ""
 
-#: dwarf2read.c:14442
+#: dwarf2read.c:14463
 #, possible-c-format
 msgid ".debug_rnglists entry has start address of zero [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:14452
+#: dwarf2read.c:14473
 #, possible-c-format
 msgid "Offset %d is not terminated for DW_AT_ranges attribute"
 msgstr ""
 
 #. We have no valid base address for the ranges
 #. data.
-#: dwarf2read.c:14533
+#: dwarf2read.c:14554
 msgid "Invalid .debug_ranges data (no base address)"
 msgstr ""
 
 #. Inverted range entries are invalid.
-#: dwarf2read.c:14540
+#: dwarf2read.c:14561
 msgid "Invalid .debug_ranges data (inverted range)"
 msgstr ""
 
-#: dwarf2read.c:14556
+#: dwarf2read.c:14577
 #, possible-c-format
 msgid ".debug_ranges entry has start address of zero [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15268
+#: dwarf2read.c:15289
 #, possible-c-format
 msgid "Unhandled DW_AT_accessibility value (%x)"
 msgstr ""
 
-#: dwarf2read.c:15365
+#: dwarf2read.c:15386
 #, possible-c-format
 msgid "unsupported accessibility %d"
 msgstr ""
 
-#: dwarf2read.c:15377
+#: dwarf2read.c:15398
 msgid "unexpected virtuality in component of Ada type"
 msgstr ""
 
-#: dwarf2read.c:15429
+#: dwarf2read.c:15450
 msgid "unexpected member function in Ada type"
 msgstr ""
 
-#: dwarf2read.c:15494
+#: dwarf2read.c:15515
 #, possible-c-format
 msgid "member function type missing for '%s'"
 msgstr ""
 
-#: dwarf2read.c:15566
+#: dwarf2read.c:15587
 #, possible-c-format
 msgid "cannot determine context for virtual member function \"%s\" (offset %s)"
 msgstr ""
 
 #. GCC does this, as of 2008-08-25; PR debug/37237.
-#: dwarf2read.c:15593
+#: dwarf2read.c:15614
 #, possible-c-format
 msgid ""
 "Member function \"%s\" (offset %s) is virtual but the vtable offset is not "
 "specified"
 msgstr ""
 
-#: dwarf2read.c:15609
+#: dwarf2read.c:15630
 msgid "unexpected member functions in Ada type"
 msgstr ""
 
-#: dwarf2read.c:15706
+#: dwarf2read.c:15727
 #, possible-c-format
 msgid "DW_AT_alignment must have constant form - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15719
+#: dwarf2read.c:15740
 #, possible-c-format
 msgid "DW_AT_alignment value must not be negative - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15732
+#: dwarf2read.c:15753
 #, possible-c-format
 msgid "DW_AT_alignment value must not be zero - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15740
+#: dwarf2read.c:15761
 #, possible-c-format
 msgid "DW_AT_alignment value must be a power of 2 - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15758
+#: dwarf2read.c:15779
 #, possible-c-format
 msgid "DW_AT_alignment value too large - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15968
+#: dwarf2read.c:15989
 #, possible-c-format
 msgid "DW_AT_discr_list is not supported yet - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16022
+#: dwarf2read.c:16043
 #, possible-c-format
 msgid "DW_AT_discr does not have DIE reference form - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16100
+#: dwarf2read.c:16121
 #, possible-c-format
 msgid "virtual function table pointer not found when defining class '%s'"
 msgstr ""
 
-#: dwarf2read.c:16217
+#: dwarf2read.c:16238
 #, possible-c-format
 msgid ""
 "could not find suitable symtab for template parameter - DIE at %s [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:16509
+#: dwarf2read.c:16530
 #, possible-c-format
 msgid "unable to read array DW_AT_byte_stride  - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16593
+#: dwarf2read.c:16614
 msgid "DW_AT_byte_size for array type smaller than the total size of elements"
 msgstr ""
 
@@ -11022,89 +11064,89 @@ msgstr ""
 #. not specified by DWARF.  It seems to have been
 #. emitted by gfortran at least as recently as:
 #. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23057.
-#: dwarf2read.c:16819
+#: dwarf2read.c:16840
 #, possible-c-format
 msgid ""
 "Variable in common block has DW_AT_data_member_location - DIE at %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:17053
+#: dwarf2read.c:17074
 #, possible-c-format
 msgid "invalid pointer size %d"
 msgstr ""
 
-#: dwarf2read.c:17057
+#: dwarf2read.c:17078
 #, possible-c-format
 msgid "Invalid DW_AT_alignment - DIE at %s [in module %s]"
 msgstr ""
 
 #. Self-referential typedefs are, it seems, not allowed by the DWARF
 #. spec and cause infinite loops in GDB.
-#: dwarf2read.c:17490
+#: dwarf2read.c:17511
 #, possible-c-format
 msgid "Self-referential DW_TAG_typedef - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17628
+#: dwarf2read.c:17649
 msgid "DW_AT_name missing from DW_TAG_base_type"
 msgstr ""
 
-#: dwarf2read.c:17689
+#: dwarf2read.c:17710
 #, possible-c-format
 msgid "unsupported DW_ATE_UTF bit size: '%d'"
 msgstr ""
 
-#: dwarf2read.c:17698
+#: dwarf2read.c:17719
 #, possible-c-format
 msgid "unsupported DW_AT_encoding: '%s'"
 msgstr ""
 
-#: dwarf2read.c:17945
+#: dwarf2read.c:17966
 #, possible-c-format
 msgid "Missing DW_AT_lower_bound - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17966
+#: dwarf2read.c:17987
 #, possible-c-format
 msgid "Unresolved DW_AT_upper_bound - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17971
+#: dwarf2read.c:17992
 #, possible-c-format
 msgid "Unresolved DW_AT_count - DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18176
+#: dwarf2read.c:18197
 #, possible-c-format
 msgid "Dwarf Error: could not find abbrev number %d [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18559
+#: dwarf2read.c:18580
 #, possible-c-format
 msgid ""
 "DW_TAG_typedef has childen - GCC PR debug/47510 bug - DIE at %s [in module %"
 "s]"
 msgstr ""
 
-#: dwarf2read.c:18902
+#: dwarf2read.c:18924
 #, possible-c-format
 msgid "DW_AT_low_pc %s is zero for DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18914
+#: dwarf2read.c:18936
 #, possible-c-format
 msgid "DW_AT_low_pc %s is not < DW_AT_high_pc %s for DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18972
+#: dwarf2read.c:18994
 #, possible-c-format
 msgid ""
 "Dwarf Error: Type Unit at offset %s contains external reference to offset %s "
 "[in module %s].\n"
 msgstr ""
 
-#: dwarf2read.c:19007
+#: dwarf2read.c:19029
 #, possible-c-format
 msgid "could not find partial DIE %s in cache [from module %s]\n"
 msgstr ""
@@ -11113,141 +11155,141 @@ msgstr ""
 #. Later we can turn this into a complaint.
 #. For now flag a hard error.
 #. Later we can turn this into a complaint if warranted.
-#: dwarf2read.c:19351 dwarf2read.c:19368
+#: dwarf2read.c:19373 dwarf2read.c:19390
 #, possible-c-format
 msgid "Dwarf Error: %s found in non-DWO CU [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19424
+#: dwarf2read.c:19446
 #, possible-c-format
 msgid "Suspicious DW_AT_byte_size value treated as zero instead of %s"
 msgstr ""
 
-#: dwarf2read.c:19523
+#: dwarf2read.c:19545
 #, possible-c-format
 msgid "read_address: bad switch, signed [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19542
+#: dwarf2read.c:19564
 #, possible-c-format
 msgid "read_address: bad switch, unsigned [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19635
+#: dwarf2read.c:19657
 msgid "intermixed 32-bit and 64-bit DWARF sections"
 msgstr ""
 
-#: dwarf2read.c:19672
+#: dwarf2read.c:19694
 #, possible-c-format
 msgid "read_offset_1: bad switch [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19718
+#: dwarf2read.c:19740
 #, possible-c-format
 msgid "%s used without %s section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19721
+#: dwarf2read.c:19743
 #, possible-c-format
 msgid "%s pointing outside of %s section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19766
+#: dwarf2read.c:19788
 #, possible-c-format
 msgid "DW_FORM_GNU_strp_alt used without .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19770
+#: dwarf2read.c:19792
 #, possible-c-format
 msgid ""
 "DW_FORM_GNU_strp_alt pointing outside of .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19881
+#: dwarf2read.c:19903
 #, possible-c-format
 msgid "DW_FORM_addr_index used without .debug_addr section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19884
+#: dwarf2read.c:19906
 #, possible-c-format
 msgid ""
 "DW_FORM_addr_index pointing outside of .debug_addr section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20015
+#: dwarf2read.c:20037
 #, possible-c-format
 msgid ""
 "%s used without .debug_str.dwo section in CU at offset %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20019
+#: dwarf2read.c:20041
 #, possible-c-format
 msgid ""
 "%s used without .debug_str_offsets.dwo section in CU at offset %s [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:20023
+#: dwarf2read.c:20045
 #, possible-c-format
 msgid ""
 "%s pointing outside of .debug_str_offsets.dwo section in CU at offset %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:20033
+#: dwarf2read.c:20055
 #, possible-c-format
 msgid ""
 "Offset from %s pointing outside of .debug_str.dwo section in CU at offset %s "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20185
+#: dwarf2read.c:20207
 #, possible-c-format
 msgid "string type expected for attribute %s for DIE at %s in module %s"
 msgstr ""
 
-#: dwarf2read.c:20428
+#: dwarf2read.c:20450
 #, possible-c-format
 msgid "Unknown format content type %s"
 msgstr ""
 
-#: dwarf2read.c:20466
+#: dwarf2read.c:20488
 msgid "missing .debug_line.dwo section"
 msgstr ""
 
-#: dwarf2read.c:20468
+#: dwarf2read.c:20490
 msgid "missing .debug_line section"
 msgstr ""
 
 #. This is a version we don't understand.  The format could have
 #. changed in ways we don't handle properly so just punt.
-#: dwarf2read.c:20508
+#: dwarf2read.c:20530
 msgid "unsupported version in .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:20523
+#: dwarf2read.c:20545
 #, possible-c-format
 msgid "unsupported segment selector size %u in .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:20544
+#: dwarf2read.c:20566
 msgid "invalid maximum_ops_per_instruction in `.debug_line' section"
 msgstr ""
 
-#: dwarf2read.c:20618
+#: dwarf2read.c:20640
 msgid "line number info header doesn't fit in `.debug_line' section"
 msgstr ""
 
-#: dwarf2read.c:21085
+#: dwarf2read.c:21107
 #, possible-c-format
 msgid ".debug_line address at offset 0x%lx is 0 [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:21212 dwarf2read.c:21220
+#: dwarf2read.c:21234 dwarf2read.c:21242
 msgid "mangled .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:21604
+#: dwarf2read.c:21631
 msgid "file index out of range"
 msgstr ""
 
@@ -11255,59 +11297,59 @@ msgstr ""
 #. trash data, but since we must specifically ignore things
 #. we don't recognize, there is nothing else we should do at
 #. this point.
-#: dwarf2read.c:21903
+#: dwarf2read.c:21933
 #, possible-c-format
 msgid "unsupported tag: '%s'"
 msgstr ""
 
-#: dwarf2read.c:22063 dwarf2read.c:23561
+#: dwarf2read.c:22093 dwarf2read.c:23601
 #, possible-c-format
 msgid "unsupported const value attribute form: '%s'"
 msgstr ""
 
-#: dwarf2read.c:22177
+#: dwarf2read.c:22207
 #, possible-c-format
 msgid ""
 "Dwarf Error: Problem turning containing type into gdb type [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:22194
+#: dwarf2read.c:22224
 #, possible-c-format
 msgid "<unknown type in %s, CU %s, DIE %s>"
 msgstr ""
 
-#: dwarf2read.c:22246
+#: dwarf2read.c:22276
 #, possible-c-format
 msgid "Dwarf Error: Bad type attribute %s in DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:22374
+#: dwarf2read.c:22404
 #, possible-c-format
 msgid "unexpected tag in read_type_die: '%s'"
 msgstr ""
 
-#: dwarf2read.c:22588
+#: dwarf2read.c:22618
 #, possible-c-format
 msgid "template param type '%s' defined within parent '%s'"
 msgstr ""
 
-#: dwarf2read.c:23161
+#: dwarf2read.c:23201
 #, possible-c-format
 msgid "unsupported die ref attribute form: '%s'"
 msgstr ""
 
 #. For DW_FORM_data16 see attr_form_is_constant.
-#: dwarf2read.c:23183
+#: dwarf2read.c:23223
 #, possible-c-format
 msgid "Attribute value is not a constant (%s)"
 msgstr ""
 
-#: dwarf2read.c:23206
+#: dwarf2read.c:23246
 #, possible-c-format
 msgid "Dwarf Error: Expected reference attribute [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:23288
+#: dwarf2read.c:23328
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot find DIE at %s referenced from DIE at %s [in module %s]"
@@ -11315,127 +11357,127 @@ msgstr ""
 
 #. We shouldn't get here for a dummy CU, but don't crash on the user.
 #. Instead just throw an error, not much else we can do.
-#: dwarf2read.c:23321 dwarf2read.c:23463
+#: dwarf2read.c:23361 dwarf2read.c:23503
 #, possible-c-format
 msgid "Dwarf Error: Dummy CU at %s referenced in module %s"
 msgstr ""
 
-#: dwarf2read.c:23327 dwarf2read.c:23469
+#: dwarf2read.c:23367 dwarf2read.c:23509
 #, possible-c-format
 msgid "Dwarf Error: Cannot find DIE at %s referenced in module %s"
 msgstr ""
 
-#: dwarf2read.c:23389
+#: dwarf2read.c:23429
 #, possible-c-format
 msgid ""
 "Dwarf Error: DIE at %s referenced in module %s is neither DW_FORM_block* nor "
 "DW_FORM_exprloc"
 msgstr ""
 
-#: dwarf2read.c:23677 dwarf2read.c:23715
+#: dwarf2read.c:23717 dwarf2read.c:23755
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot find signatured DIE %s referenced from DIE at %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:23687 dwarf2read.c:23745
+#: dwarf2read.c:23727 dwarf2read.c:23785
 #, possible-c-format
 msgid ""
 "Dwarf Error: Problem reading signatured DIE %s referenced from DIE at %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:23736
+#: dwarf2read.c:23776
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot build signatured type %s referenced from DIE at %s [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:23780
+#: dwarf2read.c:23820
 #, possible-c-format
 msgid ""
 "Dwarf Error: DW_AT_signature has bad form %s in DIE at %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:24101
+#: dwarf2read.c:24141
 #, possible-c-format
 msgid "unsupported stack op: '%s'"
 msgstr ""
 
-#: dwarf2read.c:24104
+#: dwarf2read.c:24144
 #, possible-c-format
 msgid "unsupported stack op: '%02x'"
 msgstr ""
 
-#: dwarf2read.c:24115
+#: dwarf2read.c:24155
 msgid "location description stack overflow"
 msgstr ""
 
-#: dwarf2read.c:24121
+#: dwarf2read.c:24161
 msgid "location description stack underflow"
 msgstr ""
 
-#: dwarf2read.c:24184
+#: dwarf2read.c:24224
 #, possible-c-format
 msgid "bad file number in macro information (%d)"
 msgstr ""
 
-#: dwarf2read.c:24247
+#: dwarf2read.c:24287
 #, possible-c-format
 msgid ""
 "macro definition contains spaces in formal argument list:\n"
 "`%s'"
 msgstr ""
 
-#: dwarf2read.c:24478
+#: dwarf2read.c:24518
 #, possible-c-format
 msgid "invalid form 0x%x in `%s'"
 msgstr ""
 
-#: dwarf2read.c:24505
+#: dwarf2read.c:24545
 #, possible-c-format
 msgid "unrecognized DW_MACFINO opcode 0x%x"
 msgstr ""
 
-#: dwarf2read.c:24550
+#: dwarf2read.c:24590
 #, possible-c-format
 msgid "unrecognized version `%d' in .debug_macro section"
 msgstr ""
 
 #. DWARF violation as no main source is present.
-#: dwarf2read.c:24699
+#: dwarf2read.c:24739
 #, possible-c-format
 msgid "debug info with no main source gives macro %s on line %d: %s"
 msgstr ""
 
-#: dwarf2read.c:24701 dwarf2read.c:24709 dwarf2read.c:24723
+#: dwarf2read.c:24741 dwarf2read.c:24749 dwarf2read.c:24763
 msgid "definition"
 msgstr ""
 
-#: dwarf2read.c:24701 dwarf2read.c:24709 dwarf2read.c:24723
+#: dwarf2read.c:24741 dwarf2read.c:24749 dwarf2read.c:24763
 msgid "undefinition"
 msgstr ""
 
-#: dwarf2read.c:24707
+#: dwarf2read.c:24747
 #, possible-c-format
 msgid "debug info gives %s macro %s with %s line %d: %s"
 msgstr ""
 
-#: dwarf2read.c:24708 dwarf2read.c:24722 dwarf2read.c:24752
+#: dwarf2read.c:24748 dwarf2read.c:24762 dwarf2read.c:24792
 msgid "command-line"
 msgstr ""
 
-#: dwarf2read.c:24708 dwarf2read.c:24722
+#: dwarf2read.c:24748 dwarf2read.c:24762
 msgid "in-file"
 msgstr ""
 
-#: dwarf2read.c:24710 dwarf2read.c:24753
+#: dwarf2read.c:24750 dwarf2read.c:24793
 msgid "zero"
 msgstr ""
 
-#: dwarf2read.c:24710 dwarf2read.c:24753
+#: dwarf2read.c:24750 dwarf2read.c:24793
 msgid "non-zero"
 msgstr ""
 
@@ -11444,162 +11486,162 @@ msgstr ""
 #.
 #. For more info, see
 #. https://bugzilla.redhat.com/show_bug.cgi?id=1708786
-#: dwarf2read.c:24719
+#: dwarf2read.c:24759
 #, possible-c-format
 msgid ""
 "debug info gives %s invalid macro %s without body (corrupted?) at line %d on "
 "file %s"
 msgstr ""
 
-#: dwarf2read.c:24750
+#: dwarf2read.c:24790
 #, possible-c-format
 msgid "debug info gives source %d included from %s at %s line %d"
 msgstr ""
 
-#: dwarf2read.c:24752 skip.c:335
+#: dwarf2read.c:24792 skip.c:336
 msgid "file"
 msgstr ""
 
-#: dwarf2read.c:24769
+#: dwarf2read.c:24809
 msgid "macro debug info has an unmatched `close_file' directive"
 msgstr ""
 
-#: dwarf2read.c:24796
+#: dwarf2read.c:24836
 msgid "no terminating 0-type entry for macros in `.debug_macinfo' section"
 msgstr ""
 
 #. This has actually happened; see
 #. http://sourceware.org/bugzilla/show_bug.cgi?id=13568.
-#: dwarf2read.c:24837
+#: dwarf2read.c:24877
 msgid "recursive DW_MACRO_import in .debug_macro section"
 msgstr ""
 
-#: dwarf2read.c:24931
+#: dwarf2read.c:24971
 #, possible-c-format
 msgid "missing %s section"
 msgstr ""
 
-#: dwarf2read.c:25228
+#: dwarf2read.c:25268
 msgid "Location list used without specifying the CU base address."
 msgstr ""
 
-#: dwarf2read.c:25419
+#: dwarf2read.c:25459
 #, possible-c-format
 msgid ""
 "Dwarf Error: could not find partial DIE containing offset %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:25432
+#: dwarf2read.c:25472
 #, possible-c-format
 msgid "invalid dwarf2 offset %s"
 msgstr ""
 
-#: dwarf2read.c:25653
+#: dwarf2read.c:25693
 #, possible-c-format
 msgid "DW_AT_allocated has the wrong form (%s) at DIE %s"
 msgstr ""
 
-#: dwarf2read.c:25669
+#: dwarf2read.c:25709
 #, possible-c-format
 msgid "DW_AT_associated has the wrong form (%s) at DIE %s"
 msgstr ""
 
-#: dwarf2read.c:25698
+#: dwarf2read.c:25738
 #, possible-c-format
 msgid "A problem internal to GDB: DIE %s has type already set"
 msgstr ""
 
-#: dwarf2read.c:25857
+#: dwarf2read.c:25897
 #, possible-c-format
 msgid "Whether to always disassemble DWARF expressions is %s.\n"
 msgstr ""
 
-#: dwarf2read.c:25867
+#: dwarf2read.c:25907
 #, possible-c-format
 msgid "Whether to check \"physname\" is %s.\n"
 msgstr ""
 
-#: dwarf2read.c:25874
+#: dwarf2read.c:25914
 msgid ""
 "Set DWARF specific variables.\n"
 "Configure DWARF variables such as the cache size."
 msgstr ""
 
 #. allow-unknown
-#: dwarf2read.c:25880
+#: dwarf2read.c:25920
 msgid ""
 "Show DWARF specific variables.\n"
 "Show DWARF variables such as the cache size."
 msgstr ""
 
-#: dwarf2read.c:25887
+#: dwarf2read.c:25927
 msgid "Set the upper bound on the age of cached DWARF compilation units."
 msgstr ""
 
-#: dwarf2read.c:25888
+#: dwarf2read.c:25928
 msgid "Show the upper bound on the age of cached DWARF compilation units."
 msgstr ""
 
-#: dwarf2read.c:25889
+#: dwarf2read.c:25929
 msgid ""
 "A higher limit means that cached compilation units will be stored\n"
 "in memory longer, and more total memory will be used.  Zero disables\n"
 "caching, which can slow down startup."
 msgstr ""
 
-#: dwarf2read.c:25899
+#: dwarf2read.c:25939
 msgid "Set whether `info address' always disassembles DWARF expressions."
 msgstr ""
 
-#: dwarf2read.c:25900
+#: dwarf2read.c:25940
 msgid "Show whether `info address' always disassembles DWARF expressions."
 msgstr ""
 
-#: dwarf2read.c:25901
+#: dwarf2read.c:25941
 msgid ""
 "When enabled, DWARF expressions are always printed in an assembly-like\n"
 "syntax.  When disabled, expressions will be printed in a more\n"
 "conversational style, when possible."
 msgstr ""
 
-#: dwarf2read.c:25910
+#: dwarf2read.c:25950
 msgid "Set debugging of the DWARF reader."
 msgstr ""
 
-#: dwarf2read.c:25911
+#: dwarf2read.c:25951
 msgid "Show debugging of the DWARF reader."
 msgstr ""
 
-#: dwarf2read.c:25912
+#: dwarf2read.c:25952
 msgid ""
 "When enabled (non-zero), debugging messages are printed during DWARF\n"
 "reading and symtab expansion.  A value of 1 (one) provides basic\n"
 "information.  A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: dwarf2read.c:25920
+#: dwarf2read.c:25960
 msgid "Set debugging of the DWARF DIE reader."
 msgstr ""
 
-#: dwarf2read.c:25921
+#: dwarf2read.c:25961
 msgid "Show debugging of the DWARF DIE reader."
 msgstr ""
 
-#: dwarf2read.c:25922
+#: dwarf2read.c:25962
 msgid ""
 "When enabled (non-zero), DIEs are dumped after they are read in.\n"
 "The value is the maximum depth to print."
 msgstr ""
 
-#: dwarf2read.c:25929
+#: dwarf2read.c:25969
 msgid "Set debugging of the dwarf line reader."
 msgstr ""
 
-#: dwarf2read.c:25930
+#: dwarf2read.c:25970
 msgid "Show debugging of the dwarf line reader."
 msgstr ""
 
-#: dwarf2read.c:25931
+#: dwarf2read.c:25971
 msgid ""
 "When enabled (non-zero), line number entries are dumped as they are read "
 "in.\n"
@@ -11607,29 +11649,29 @@ msgid ""
 "A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: dwarf2read.c:25939
+#: dwarf2read.c:25979
 msgid "Set cross-checking of \"physname\" code against demangler."
 msgstr ""
 
-#: dwarf2read.c:25940
+#: dwarf2read.c:25980
 msgid "Show cross-checking of \"physname\" code against demangler."
 msgstr ""
 
-#: dwarf2read.c:25941
+#: dwarf2read.c:25981
 msgid ""
 "When enabled, GDB's internal \"physname\" code is checked against\n"
 "the demangler."
 msgstr ""
 
-#: dwarf2read.c:25948
+#: dwarf2read.c:25988
 msgid "Set whether to use deprecated gdb_index sections."
 msgstr ""
 
-#: dwarf2read.c:25949
+#: dwarf2read.c:25989
 msgid "Show whether to use deprecated gdb_index sections."
 msgstr ""
 
-#: dwarf2read.c:25950
+#: dwarf2read.c:25990
 msgid ""
 "When enabled, deprecated .gdb_index sections are used anyway.\n"
 "Normally they are ignored either because of a missing feature or\n"
@@ -11763,26 +11805,26 @@ msgid ""
 "extension .debug_names and .debug_str for DWARF-5 .debug_names section."
 msgstr ""
 
-#: elfread.c:151
+#: elfread.c:153
 #, possible-c-format
 msgid "Loadable section \"%s\" outside of ELF segments"
 msgstr ""
 
 #. This case indicates buggy inferior program, the resolved address
 #. should never change.
-#: elfread.c:741
+#: elfread.c:753
 #, possible-c-format
 msgid ""
 "gnu-indirect-function \"%s\" has changed its resolved function_address from %"
 "s to %s"
 msgstr ""
 
-#: elfread.c:998
+#: elfread.c:1010
 #, possible-c-format
 msgid "handle_inferior_event: Invalid gnu-indirect-function breakpoint type %d"
 msgstr ""
 
-#: elfread.c:1070 elfread.c:1083 elfread.c:1109 machoread.c:809
+#: elfread.c:1083 elfread.c:1096 elfread.c:1122 machoread.c:809
 #: machoread.c:825
 #, possible-c-format
 msgid "Can't read symbols from %s: %s"
@@ -12101,7 +12143,7 @@ msgstr ""
 msgid "Show writing into executable and core files."
 msgstr ""
 
-#: expprint.c:252
+#: expprint.c:253
 msgid "bad selector"
 msgstr ""
 
@@ -12110,11 +12152,11 @@ msgstr ""
 #. Not found; don't try to keep going because we don't know how
 #. to interpret further elements.  For example, this happens
 #. if opcode is OP_TYPE.
-#: expprint.c:503 expprint.c:613
+#: expprint.c:504 expprint.c:615
 msgid "Invalid expression"
 msgstr ""
 
-#: expprint.c:513
+#: expprint.c:515
 #, possible-c-format
 msgid "<language %s has no 'this'>"
 msgstr ""
@@ -12148,7 +12190,7 @@ msgstr ""
 msgid "Couldn't open %s."
 msgstr ""
 
-#: fbsd-nat.c:327 infcmd.c:3027 procfs.c:3552
+#: fbsd-nat.c:327 infcmd.c:3025 procfs.c:3552
 msgid "Not supported on this target."
 msgstr ""
 
@@ -12212,7 +12254,7 @@ msgstr ""
 msgid "Show debugging of FreeBSD lwp module."
 msgstr ""
 
-#: fbsd-nat.c:1678 fbsd-nat.c:1686 linux-nat.c:4540 linux-nat.c:4549
+#: fbsd-nat.c:1678 fbsd-nat.c:1686 linux-nat.c:4543 linux-nat.c:4552
 msgid "Enables printf debugging output."
 msgstr ""
 
@@ -12596,7 +12638,7 @@ msgstr ""
 msgid "Show use of shell to start subprocesses."
 msgstr ""
 
-#: frame.c:308 infrun.c:8742 stack.c:2041 stack.c:2329
+#: frame.c:308 infrun.c:8737 stack.c:2052 stack.c:2340
 msgid "Unable to restore previously selected frame."
 msgstr ""
 
@@ -12633,7 +12675,7 @@ msgstr ""
 msgid "Cannot pop the initial frame."
 msgstr ""
 
-#: frame.c:1091 infcmd.c:1965
+#: frame.c:1091 infcmd.c:1963
 msgid "Cannot find the caller frame."
 msgstr ""
 
@@ -12666,8 +12708,8 @@ msgstr ""
 msgid "No registers."
 msgstr ""
 
-#: frame.c:1607 stack.c:1921 stack.c:1949 stack.c:3162 stack.c:3210
-#: stack.c:3225 thread.c:1859
+#: frame.c:1607 stack.c:1932 stack.c:1960 stack.c:3173 stack.c:3221
+#: stack.c:3236 thread.c:1859
 msgid "No stack."
 msgstr ""
 
@@ -12776,43 +12818,43 @@ msgstr ""
 msgid "Don't know how to return a %d-byte value."
 msgstr ""
 
-#: f-typeprint.c:461
+#: f-typeprint.c:462
 #, possible-c-format
 msgid "Invalid type code (%d) in symbol table."
 msgstr ""
 
-#: f-valprint.c:48
+#: f-valprint.c:49
 msgid "Lower bound may not be '*' in F77"
 msgstr ""
 
-#: f-valprint.c:184
+#: f-valprint.c:185
 #, possible-c-format
 msgid "Type node corrupt! F77 arrays cannot have %d subscripts (%d Max)"
 msgstr ""
 
-#: f-valprint.c:398
+#: f-valprint.c:399
 #, possible-c-format
 msgid "Contents of F77 COMMON block '%s':\n"
 msgstr ""
 
-#: f-valprint.c:401
+#: f-valprint.c:402
 msgid "Contents of blank COMMON block:\n"
 msgstr ""
 
-#: f-valprint.c:451 stack.c:2564
+#: f-valprint.c:453 stack.c:2575
 msgid "No symbol table info available.\n"
 msgstr ""
 
-#: f-valprint.c:468
+#: f-valprint.c:470
 #, possible-c-format
 msgid "No common block '%s'.\n"
 msgstr ""
 
-#: f-valprint.c:470
+#: f-valprint.c:472
 msgid "No common blocks.\n"
 msgstr ""
 
-#: f-valprint.c:478
+#: f-valprint.c:480
 msgid "Print out the values contained in a Fortran COMMON block."
 msgstr ""
 
@@ -12974,7 +13016,7 @@ msgstr ""
 msgid "Could not convert the expanded inferior cwd to wide-char."
 msgstr ""
 
-#: gdbserver/ax.c:837 printcmd.c:2583
+#: gdbserver/ax.c:837 printcmd.c:2585
 msgid "Wrong number of arguments for specified format-string"
 msgstr ""
 
@@ -13034,71 +13076,71 @@ msgstr ""
 msgid "Can't debug x86-64 process with 32-bit GDBserver"
 msgstr ""
 
-#: gdbserver/server.c:275 remote-sim.c:627
+#: gdbserver/server.c:269 remote-sim.c:627
 msgid "No executable file specified."
 msgstr ""
 
-#: gdbserver/server.c:395 gdbserver/server.c:407
+#: gdbserver/server.c:389 gdbserver/server.c:401
 msgid "Btrace already enabled."
 msgstr ""
 
-#: gdbserver/server.c:420
+#: gdbserver/server.c:414
 msgid "Branch tracing not enabled."
 msgstr ""
 
-#: gdbserver/server.c:423 x86-linux-nat.c:241
+#: gdbserver/server.c:417 x86-linux-nat.c:241
 msgid "Could not disable branch tracing."
 msgstr ""
 
-#: gdbserver/server.c:465
+#: gdbserver/server.c:459
 msgid "Bad Qbtrace operation.  Use bts, pt, or off."
 msgstr ""
 
-#: gdbserver/server.c:669
+#: gdbserver/server.c:663
 #, possible-c-format
 msgid "[QEnvironmentHexEncoded received '%s']\n"
 msgstr ""
 
-#: gdbserver/server.c:670
+#: gdbserver/server.c:664
 #, possible-c-format
 msgid "[Environment variable to be set: '%s']\n"
 msgstr ""
 
-#: gdbserver/server.c:678
+#: gdbserver/server.c:672
 #, possible-c-format
 msgid "Unexpected format for environment variable: '%s'"
 msgstr ""
 
-#: gdbserver/server.c:700
+#: gdbserver/server.c:694
 #, possible-c-format
 msgid "[QEnvironmentUnset received '%s']\n"
 msgstr ""
 
-#: gdbserver/server.c:701
+#: gdbserver/server.c:695
 #, possible-c-format
 msgid "[Environment variable to be unset: '%s']\n"
 msgstr ""
 
-#: gdbserver/server.c:863
+#: gdbserver/server.c:857
 #, possible-c-format
 msgid "[Inferior will %s started with shell]"
 msgstr ""
 
-#: gdbserver/server.c:881
+#: gdbserver/server.c:875
 #, possible-c-format
 msgid "[Set the inferior's current directory to %s]\n"
 msgstr ""
 
-#: gdbserver/server.c:891
+#: gdbserver/server.c:885
 msgid "[Unset the inferior's current directory; will use gdbserver's cwd]\n"
 msgstr ""
 
-#: gdbserver/server.c:3566
+#: gdbserver/server.c:3560
 #, possible-c-format
 msgid "Could not find current working directory: %s"
 msgstr ""
 
-#: gdbserver/server.c:3775 maint.c:1089 maint.c:1103
+#: gdbserver/server.c:3769 maint.c:1089 maint.c:1103
 #, c-format
 msgid "Selftests have been disabled for this build.\n"
 msgstr ""
@@ -13237,19 +13279,19 @@ msgstr ""
 msgid "Could not load %s: %s"
 msgstr ""
 
-#: gdbsupport/gdb_string_view.h:189
+#: gdbsupport/gdb_string_view.h:190
 #, possible-c-format
 msgid ""
 "basic_string_view::at: __pos (which is %zu) >= this->size() (which is %zu)"
 msgstr ""
 
-#: gdbsupport/gdb_string_view.h:259
+#: gdbsupport/gdb_string_view.h:260
 #, possible-c-format
 msgid ""
 "basic_string_view::copy: __pos (which is %zu) > this->size() (which is %zu)"
 msgstr ""
 
-#: gdbsupport/gdb_string_view.h:279
+#: gdbsupport/gdb_string_view.h:280
 #, possible-c-format
 msgid ""
 "basic_string_view::substr: __pos (which is %zu) > this->size() (which is %zu)"
@@ -13259,12 +13301,12 @@ msgstr ""
 msgid "vasprintf call failed"
 msgstr ""
 
-#: gdbsupport/gdb_assert.h:40
+#: gdbsupport/gdb_assert.h:42
 #, possible-c-format
 msgid "%s: Assertion `%s' failed."
 msgstr ""
 
-#: gdbsupport/gdb_assert.h:44
+#: gdbsupport/gdb_assert.h:46
 #, possible-c-format
 msgid "Assertion `%s' failed."
 msgstr ""
@@ -13326,29 +13368,29 @@ msgid "Missing open bracket in hostname 
 msgstr ""
 
 #. ??? TODO: handle other escape sequences.
-#: gdbsupport/format.c:82
+#: gdbsupport/format.c:90
 #, possible-c-format
 msgid "Unrecognized escape character \\%c in format string."
 msgstr ""
 
-#: gdbsupport/format.c:285
+#: gdbsupport/format.c:326
 msgid "`*' not supported for precision or width in printf"
 msgstr ""
 
-#: gdbsupport/format.c:288
+#: gdbsupport/format.c:329
 msgid "Format specifier `n' not supported in printf"
 msgstr ""
 
-#: gdbsupport/format.c:291
+#: gdbsupport/format.c:332
 msgid "Incomplete format specifier at end of format string"
 msgstr ""
 
-#: gdbsupport/format.c:294
+#: gdbsupport/format.c:335
 #, possible-c-format
 msgid "Unrecognized format specifier '%c' in printf"
 msgstr ""
 
-#: gdbsupport/format.c:298
+#: gdbsupport/format.c:339
 #, possible-c-format
 msgid "Inappropriate modifiers to format specifier '%c' in printf"
 msgstr ""
@@ -13733,7 +13775,7 @@ msgstr ""
 msgid "%ld: %s."
 msgstr ""
 
-#: gnu-nat.c:3168 utils.c:604
+#: gnu-nat.c:3168 utils.c:606
 #, possible-c-format
 msgid "%s."
 msgstr ""
@@ -13968,62 +14010,62 @@ msgstr ""
 msgid "Baseclass offset not found"
 msgstr ""
 
-#: gnu-v3-abi.c:334
+#: gnu-v3-abi.c:335
 #, possible-c-format
 msgid "can't find linker symbol for virtual table for `%s' value"
 msgstr ""
 
-#: gnu-v3-abi.c:337
+#: gnu-v3-abi.c:338
 #, possible-c-format
 msgid "  found `%s' instead"
 msgstr ""
 
-#: gnu-v3-abi.c:419
+#: gnu-v3-abi.c:420
 msgid "Only classes can have virtual functions."
 msgstr ""
 
-#: gnu-v3-abi.c:469
+#: gnu-v3-abi.c:470
 msgid "Expected a negative vbase offset (old compiler?)"
 msgstr ""
 
-#: gnu-v3-abi.c:473
+#: gnu-v3-abi.c:474
 msgid "Misaligned vbase offset."
 msgstr ""
 
-#: gnu-v3-abi.c:887
+#: gnu-v3-abi.c:888
 #, possible-c-format
 msgid "vtable for '%s' @ %s (subobject @ %s):\n"
 msgstr ""
 
-#: gnu-v3-abi.c:915 printcmd.c:2038 stack.c:1546 value.c:2542
+#: gnu-v3-abi.c:917 printcmd.c:2040 stack.c:1557 value.c:2544
 #, possible-c-format
 msgid "<error: %s>"
 msgstr ""
 
-#: gnu-v3-abi.c:962
+#: gnu-v3-abi.c:964
 msgid "This object does not have a virtual function table\n"
 msgstr ""
 
-#: gnu-v3-abi.c:1085
+#: gnu-v3-abi.c:1087
 msgid "cannot find typeinfo for unnamed type"
 msgstr ""
 
-#: gnu-v3-abi.c:1108
+#: gnu-v3-abi.c:1110
 #, possible-c-format
 msgid "cannot find typeinfo for object of type '%s'"
 msgstr ""
 
-#: gnu-v3-abi.c:1121
+#: gnu-v3-abi.c:1123
 #, possible-c-format
 msgid "could not find typeinfo symbol for '%s'"
 msgstr ""
 
-#: gnu-v3-abi.c:1144
+#: gnu-v3-abi.c:1146
 #, possible-c-format
 msgid "could not find minimal symbol for typeinfo address %s"
 msgstr ""
 
-#: gnu-v3-abi.c:1152
+#: gnu-v3-abi.c:1154
 #, possible-c-format
 msgid "typeinfo symbol '%s' has unexpected name"
 msgstr ""
@@ -14870,7 +14912,7 @@ msgstr ""
 msgid "invalid result from pretty-printer to-string"
 msgstr ""
 
-#: guile/scm-pretty-print.c:620 python/py-prettyprint.c:262 valprint.c:1087
+#: guile/scm-pretty-print.c:620 python/py-prettyprint.c:264 valprint.c:1090
 msgid "<error reading variable>"
 msgstr ""
 
@@ -15337,7 +15379,7 @@ msgstr ""
 
 #: i387-tdep.c:111 i387-tdep.c:149 i387-tdep.c:297 i387-tdep.c:307
 #: i387-tdep.c:309 i387-tdep.c:311 i387-tdep.c:313 i387-tdep.c:315
-#: i387-tdep.c:319 tui/tui-stack.c:331 valprint.c:384
+#: i387-tdep.c:319 tui/tui-stack.c:331 valprint.c:386
 msgid "<unavailable>"
 msgstr ""
 
@@ -15636,136 +15678,136 @@ msgstr ""
 msgid "Argument given to \"disconnect\"."
 msgstr ""
 
-#: infcmd.c:71 infcmd.c:2490 infcmd.c:2877 linux-fork.c:651
-#: record-btrace.c:387 remote-sim.c:896
+#: infcmd.c:72 infcmd.c:2488 infcmd.c:2875 linux-fork.c:651
+#: record-btrace.c:388 remote-sim.c:896
 msgid "The program is not being run."
 msgstr ""
 
-#: infcmd.c:153
+#: infcmd.c:150
 #, possible-c-format
 msgid "Terminal for future runs of program being debugged is \"%s\".\n"
 msgstr ""
 
-#: infcmd.c:260
+#: infcmd.c:257
 msgid ""
 "You have not set the inferior's current working directory.\n"
 "The inferior will inherit GDB's cwd if native debugging, or the remote\n"
 "server's cwd if remote debugging.\n"
 msgstr ""
 
-#: infcmd.c:266
+#: infcmd.c:263
 #, possible-c-format
 msgid ""
 "Current working directory that will be used when starting the inferior is \"%"
 "s\".\n"
 msgstr ""
 
-#: infcmd.c:371
+#: infcmd.c:368
 msgid "can't handle command-line argument containing whitespace"
 msgstr ""
 
-#: infcmd.c:477
+#: infcmd.c:474
 msgid ""
 "platform-specific solib_create_inferior_hook did not load initial shared "
 "libraries."
 msgstr ""
 
-#: infcmd.c:517
+#: infcmd.c:514
 msgid ""
 "The program being debugged has been started already.\n"
 "Start it from the beginning? "
 msgstr ""
 
-#: infcmd.c:519
+#: infcmd.c:516
 msgid "Program not restarted."
 msgstr ""
 
-#: infcmd.c:532
+#: infcmd.c:529
 msgid "Asynchronous execution not supported on this target."
 msgstr ""
 
-#: infcmd.c:601
+#: infcmd.c:598
 msgid "The target does not support running in non-stop mode."
 msgstr ""
 
-#: infcmd.c:699
+#: infcmd.c:696
 msgid "No symbol table loaded.  Use the \"file\" command."
 msgstr ""
 
-#: infcmd.c:740
+#: infcmd.c:737
 msgid "Cannot execute this command without a live selected thread."
 msgstr ""
 
-#: infcmd.c:751
+#: infcmd.c:748
 msgid "Cannot execute this command while looking at trace frames."
 msgstr ""
 
-#: infcmd.c:759
+#: infcmd.c:756
 msgid "Cannot execute this command while the selected thread is running."
 msgstr ""
 
-#: infcmd.c:842
+#: infcmd.c:839
 msgid "`-a' is meaningless in all-stop mode."
 msgstr ""
 
-#: infcmd.c:845
+#: infcmd.c:842
 msgid "Can't resume all threads and specify proceed count simultaneously."
 msgstr ""
 
-#: infcmd.c:902
+#: infcmd.c:899
 msgid "Continuing.\n"
 msgstr ""
 
-#: infcmd.c:1148 infcmd.c:1780
+#: infcmd.c:1145 infcmd.c:1778
 msgid "Cannot find bounds of current function"
 msgstr ""
 
-#: infcmd.c:1151
+#: infcmd.c:1148
 #, possible-c-format
 msgid ""
 "Single stepping until exit from function %s,\n"
 "which has no line number information.\n"
 msgstr ""
 
-#: infcmd.c:1202
+#: infcmd.c:1199
 msgid "starting address"
 msgstr ""
 
-#: infcmd.c:1207
+#: infcmd.c:1204
 msgid "Unreasonable jump request"
 msgstr ""
 
-#: infcmd.c:1212
+#: infcmd.c:1209
 msgid "No source file has been specified."
 msgstr ""
 
-#: infcmd.c:1221
+#: infcmd.c:1218
 #, possible-c-format
 msgid "Line %d is not in `%s'.  Jump anyway? "
 msgstr ""
 
-#: infcmd.c:1238
+#: infcmd.c:1235
 msgid "WARNING!!!  Destination is in unmapped overlay!  Jump anyway? "
 msgstr ""
 
-#: infcmd.c:1251
+#: infcmd.c:1248
 msgid "Continuing at "
 msgstr ""
 
-#: infcmd.c:1282 infcmd.c:1367
+#: infcmd.c:1279 infcmd.c:1364
 msgid "signal number"
 msgstr ""
 
-#: infcmd.c:1323
+#: infcmd.c:1320
 msgid "Note:\n"
 msgstr ""
 
-#: infcmd.c:1324
+#: infcmd.c:1321
 #, possible-c-format
 msgid "  Thread %s previously stopped with signal %s, %s.\n"
 msgstr ""
 
-#: infcmd.c:1333
+#: infcmd.c:1330
 #, possible-c-format
 msgid ""
 "Continuing thread %s (the current thread) with specified signal will\n"
@@ -15773,188 +15815,188 @@ msgid ""
 "Continue anyway? "
 msgstr ""
 
-#: infcmd.c:1343
+#: infcmd.c:1340
 msgid "Continuing with no signal.\n"
 msgstr ""
 
-#: infcmd.c:1345
+#: infcmd.c:1342
 #, possible-c-format
 msgid "Continuing with signal %s.\n"
 msgstr ""
 
-#: infcmd.c:1387
+#: infcmd.c:1384
 msgid "Signal handling set to not pass this signal to the program."
 msgstr ""
 
-#: infcmd.c:1478
+#: infcmd.c:1475
 msgid "Execution is not within a known function."
 msgstr ""
 
-#: infcmd.c:1539
+#: infcmd.c:1536
 msgid "a location"
 msgstr ""
 
-#: infcmd.c:1631
+#: infcmd.c:1628
 msgid "<not displayed>"
 msgstr ""
 
-#: infcmd.c:1714
+#: infcmd.c:1712
 msgid "finish_command: function has no target type"
 msgstr ""
 
-#: infcmd.c:1894
+#: infcmd.c:1892
 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.
-#: infcmd.c:1896 infcmd.c:1910
+#: infcmd.c:1894 infcmd.c:1908
 msgid "No selected frame."
 msgstr ""
 
-#: infcmd.c:1898
+#: infcmd.c:1896
 msgid "\"finish\" not meaningful in the outermost frame."
 msgstr ""
 
-#: infcmd.c:1927 infcmd.c:1952
+#: infcmd.c:1925 infcmd.c:1950
 msgid "Run till exit from "
 msgstr ""
 
-#: infcmd.c:1944
+#: infcmd.c:1942
 msgid "Run back to call of "
 msgstr ""
 
-#: infcmd.c:1948
+#: infcmd.c:1946
 #, possible-c-format
 msgid ""
 "warning: Function %s does not return normally.\n"
 "Try to finish anyway? "
 msgstr ""
 
-#: infcmd.c:1981
+#: infcmd.c:1979
 msgid "The program being debugged is not being run.\n"
 msgstr ""
 
-#: infcmd.c:1995
+#: infcmd.c:1993
 msgid "No selected thread."
 msgstr ""
 
-#: infcmd.c:2000
+#: infcmd.c:1998
 msgid "Invalid selected thread."
 msgstr ""
 
-#: infcmd.c:2002 thread.c:921
+#: infcmd.c:2000 thread.c:921
 msgid "Selected thread is running."
 msgstr ""
 
-#: infcmd.c:2008
+#: infcmd.c:2006
 #, possible-c-format
 msgid "Program stopped at %s.\n"
 msgstr ""
 
-#: infcmd.c:2011
+#: infcmd.c:2009
 msgid "It stopped after being stepped.\n"
 msgstr ""
 
-#: infcmd.c:2020
+#: infcmd.c:2018
 msgid "It stopped at a breakpoint that has since been deleted.\n"
 msgstr ""
 
-#: infcmd.c:2024
+#: infcmd.c:2022
 #, possible-c-format
 msgid "It stopped at breakpoint %d.\n"
 msgstr ""
 
-#: infcmd.c:2030
+#: infcmd.c:2028
 #, possible-c-format
 msgid "It stopped with signal %s, %s.\n"
 msgstr ""
 
-#: infcmd.c:2037
+#: infcmd.c:2035
 msgid "Type \"info stack\" or \"info registers\" for more information.\n"
 msgstr ""
 
-#: infcmd.c:2082
+#: infcmd.c:2080
 msgid "environment variable and value"
 msgstr ""
 
-#: infcmd.c:2106
+#: infcmd.c:2104
 msgid "environment variable to set"
 msgstr ""
 
-#: infcmd.c:2128
+#: infcmd.c:2126
 #, 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:2144
+#: infcmd.c:2142
 msgid "Delete all environment variables? "
 msgstr ""
 
-#: infcmd.c:2334 infcmd.c:2475 infcmd.c:3001
+#: infcmd.c:2332 infcmd.c:2473 infcmd.c:2999
 msgid "The program has no registers now."
 msgstr ""
 
-#: infcmd.c:2358
+#: infcmd.c:2356
 msgid "Missing register name"
 msgstr ""
 
 #. Nothing matched.
-#: infcmd.c:2429
+#: infcmd.c:2427
 #, possible-c-format
 msgid "Invalid register `%.*s'"
 msgstr ""
 
-#: infcmd.c:2491
+#: infcmd.c:2489
 msgid "Kill the program being debugged? "
 msgstr ""
 
-#: infcmd.c:2503
+#: infcmd.c:2501
 #, possible-c-format
 msgid "[Inferior %d (%s) killed]\n"
 msgstr ""
 
-#: infcmd.c:2516
+#: infcmd.c:2514
 #, possible-c-format
 msgid "In %s,\n"
 msgstr ""
 
-#: infcmd.c:2710 target.c:1993
+#: infcmd.c:2708 target.c:1993
 msgid "A program is being debugged already.  Kill it? "
 msgstr ""
 
-#: infcmd.c:2713
+#: infcmd.c:2711
 msgid "Not killed."
 msgstr ""
 
-#: infcmd.c:2728
+#: infcmd.c:2726
 msgid "Cannot attach to this target in non-stop mode"
 msgstr ""
 
-#: infcmd.c:2967
+#: infcmd.c:2965
 msgid "-a is meaningless in all-stop mode."
 msgstr ""
 
-#: infcmd.c:3010
+#: infcmd.c:3008
 msgid "\"unset\" must be followed by the name of an unset subcommand.\n"
 msgstr ""
 
-#: infcmd.c:3110
+#: infcmd.c:3108
 #, possible-c-format
 msgid "Printing of return value after `finish' is %s.\n"
 msgstr ""
 
-#: infcmd.c:3141
+#: infcmd.c:3139
 msgid "Set terminal for future runs of program being debugged."
 msgstr ""
 
-#: infcmd.c:3142
+#: infcmd.c:3140
 msgid "Show terminal for future runs of program being debugged."
 msgstr ""
 
-#: infcmd.c:3143
+#: infcmd.c:3141
 msgid ""
 "Usage: set inferior-tty [TTY]\n"
 "\n"
@@ -15962,39 +16004,39 @@ msgid ""
 "is restored."
 msgstr ""
 
-#: infcmd.c:3157
+#: infcmd.c:3155
 msgid "Set argument list to give program being debugged when it is started."
 msgstr ""
 
-#: infcmd.c:3158
+#: infcmd.c:3156
 msgid "Show argument list to give program being debugged when it is started."
 msgstr ""
 
-#: infcmd.c:3159
+#: infcmd.c:3157
 msgid ""
 "Follow this command with any number of args, to be passed to the program."
 msgstr ""
 
-#: infcmd.c:3170
+#: infcmd.c:3168
 msgid ""
 "Set the current working directory to be used when the inferior is started.\n"
 "Changing this setting does not have any effect on inferiors that are\n"
 "already running."
 msgstr ""
 
-#: infcmd.c:3174
+#: infcmd.c:3172
 msgid ""
 "Show the current working directory that is used when the inferior is started."
 msgstr ""
 
-#: infcmd.c:3176
+#: infcmd.c:3174
 msgid ""
 "Use this command to change the current working directory that will be used\n"
 "when the inferior is started.  This setting does not affect GDB's current\n"
 "working directory."
 msgstr ""
 
-#: infcmd.c:3187
+#: infcmd.c:3185
 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"
@@ -16002,17 +16044,17 @@ msgid ""
 "environment to be given to the program."
 msgstr ""
 
-#: infcmd.c:3195
+#: infcmd.c:3193
 msgid "Complement to certain \"set\" commands."
 msgstr ""
 
-#: infcmd.c:3198
+#: infcmd.c:3196
 msgid ""
 "Cancel environment variable VAR for the program.\n"
 "This does not affect the program until the next \"run\" command."
 msgstr ""
 
-#: infcmd.c:3204
+#: infcmd.c:3202
 msgid ""
 "Set environment variable value to give the program.\n"
 "Arguments are VAR VALUE where VAR is variable name and VALUE is value.\n"
@@ -16020,7 +16062,7 @@ msgid ""
 "This does not affect the program until the next \"run\" command."
 msgstr ""
 
-#: infcmd.c:3212
+#: infcmd.c:3210
 msgid ""
 "Add directory DIR(s) to beginning of search path for object files.\n"
 "$cwd in the path means the current working directory.\n"
@@ -16029,7 +16071,7 @@ msgid ""
 "fully linked executable files and separately compiled object files as needed."
 msgstr ""
 
-#: infcmd.c:3221
+#: infcmd.c:3219
 msgid ""
 "Current search path for finding object files.\n"
 "$cwd in the path means the current working directory.\n"
@@ -16038,11 +16080,11 @@ msgid ""
 "fully linked executable files and separately compiled object files as needed."
 msgstr ""
 
-#: infcmd.c:3232
+#: infcmd.c:3230
 msgid "Kill execution of program being debugged."
 msgstr ""
 
-#: infcmd.c:3235
+#: infcmd.c:3233
 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"
@@ -16057,21 +16099,21 @@ msgid ""
 "to specify the program, and to load its symbol table."
 msgstr ""
 
-#: infcmd.c:3248
+#: infcmd.c:3246
 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:3254
+#: infcmd.c:3252
 msgid ""
 "Disconnect from a target.\n"
 "The target will wait for another debugger to connect.  Not available for\n"
 "all targets."
 msgstr ""
 
-#: infcmd.c:3259
+#: infcmd.c:3257
 msgid ""
 "Continue program with the specified signal.\n"
 "Usage: signal SIGNAL\n"
@@ -16086,7 +16128,7 @@ msgid ""
 "the current thread only."
 msgstr ""
 
-#: infcmd.c:3272
+#: infcmd.c:3270
 msgid ""
 "Queue a signal to be delivered to the current thread when it is resumed.\n"
 "Usage: queue-signal SIGNAL\n"
@@ -16101,28 +16143,28 @@ msgid ""
 "the current thread only."
 msgstr ""
 
-#: infcmd.c:3286
+#: infcmd.c:3284
 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:3293
+#: infcmd.c:3291
 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:3300
+#: infcmd.c:3298
 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:3306
+#: infcmd.c:3304
 msgid ""
 "Step program, proceeding through subroutine calls.\n"
 "Usage: next [N]\n"
@@ -16131,14 +16173,14 @@ msgid ""
 "the call, in effect treating it as a single source line."
 msgstr ""
 
-#: infcmd.c:3314
+#: infcmd.c:3312
 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:3321
+#: infcmd.c:3319
 msgid ""
 "Execute until past the current line or past a LOCATION.\n"
 "Execute until the program reaches a source line greater than the current\n"
@@ -16146,14 +16188,14 @@ msgid ""
 "frame."
 msgstr ""
 
-#: infcmd.c:3329
+#: infcmd.c:3327
 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:3335
+#: infcmd.c:3333
 msgid ""
 "Continue program being debugged at specified line or address.\n"
 "Usage: jump LOCATION\n"
@@ -16161,7 +16203,7 @@ msgid ""
 "for an address to start at."
 msgstr ""
 
-#: infcmd.c:3343
+#: infcmd.c:3341
 msgid ""
 "Continue program being debugged, after signal or breakpoint.\n"
 "Usage: continue [N]\n"
@@ -16175,20 +16217,20 @@ msgid ""
 "Specifying -a and an ignore count simultaneously is an error."
 msgstr ""
 
-#: infcmd.c:3357
+#: infcmd.c:3355
 msgid "Start debugged program.\n"
 msgstr ""
 
-#: infcmd.c:3363
+#: infcmd.c:3361
 msgid ""
 "Start the debugged program stopping at the beginning of the main procedure.\n"
 msgstr ""
 
-#: infcmd.c:3368
+#: infcmd.c:3366
 msgid "Start the debugged program stopping at the first instruction.\n"
 msgstr ""
 
-#: infcmd.c:3374
+#: infcmd.c:3372
 msgid ""
 "Interrupt the execution of the debugged program.\n"
 "If non-stop mode is enabled, interrupt only the current thread,\n"
@@ -16196,7 +16238,7 @@ msgid ""
 "interrupt all running threads in non-stop mode, use the -a option."
 msgstr ""
 
-#: infcmd.c:3379
+#: infcmd.c:3377
 msgid ""
 "List of integer registers and their contents, for selected stack frame.\n"
 "One or more register names as argument means describe the given registers.\n"
@@ -16204,7 +16246,7 @@ msgid ""
 "in the named register groups."
 msgstr ""
 
-#: infcmd.c:3387
+#: infcmd.c:3385
 msgid ""
 "List of all registers and their contents, for selected stack frame.\n"
 "One or more register names as argument means describe the given registers.\n"
@@ -16212,62 +16254,62 @@ msgid ""
 "in the named register groups."
 msgstr ""
 
-#: infcmd.c:3395
+#: infcmd.c:3393
 msgid "Execution status of the program."
 msgstr ""
 
-#: infcmd.c:3398
+#: infcmd.c:3396
 msgid "Print the status of the floating point unit."
 msgstr ""
 
-#: infcmd.c:3401
+#: infcmd.c:3399
 msgid "Print the status of the vector unit."
 msgstr ""
 
-#: infcmd.c:3404
+#: infcmd.c:3402
 msgid ""
 "Show additional information about a process.\n"
 "Specify any process id, or use the program being debugged by default."
 msgstr ""
 
 #. allow-unknown
-#: infcmd.c:3410
+#: infcmd.c:3408
 msgid "List memory regions mapped by the specified process."
 msgstr ""
 
-#: infcmd.c:3414
+#: infcmd.c:3412
 msgid "List process info from /proc/PID/stat."
 msgstr ""
 
-#: infcmd.c:3418
+#: infcmd.c:3416
 msgid "List process info from /proc/PID/status."
 msgstr ""
 
-#: infcmd.c:3422
+#: infcmd.c:3420
 msgid "List current working directory of the specified process."
 msgstr ""
 
-#: infcmd.c:3426
+#: infcmd.c:3424
 msgid "List command line arguments of the specified process."
 msgstr ""
 
-#: infcmd.c:3430
+#: infcmd.c:3428
 msgid "List absolute filename for executable of the specified process."
 msgstr ""
 
-#: infcmd.c:3434
+#: infcmd.c:3432
 msgid "List files opened by the specified process."
 msgstr ""
 
-#: infcmd.c:3438
+#: infcmd.c:3436
 msgid "List all available info about the specified process."
 msgstr ""
 
-#: infcmd.c:3443
+#: infcmd.c:3441
 msgid "Set whether `finish' prints the return value."
 msgstr ""
 
-#: infcmd.c:3444
+#: infcmd.c:3442
 msgid "Show whether `finish' prints the return value."
 msgstr ""
 
@@ -16330,7 +16372,7 @@ msgstr ""
 msgid "Requires argument (inferior id(s) to kill)"
 msgstr ""
 
-#: inferior.c:605 mi/mi-main.c:413
+#: inferior.c:605 mi/mi-main.c:412
 msgid "Inferior has no threads."
 msgstr ""
 
@@ -16356,7 +16398,7 @@ msgstr ""
 msgid "No argument to -exec"
 msgstr ""
 
-#: inferior.c:734 inferior.c:804 mi/mi-main.c:1611
+#: inferior.c:734 inferior.c:804 mi/mi-main.c:1610
 msgid "Invalid argument"
 msgstr ""
 
@@ -16524,7 +16566,7 @@ msgid ""
 "this platform."
 msgstr ""
 
-#: infrun.c:218 infrun.c:247 mi/mi-main.c:117 target.c:3855 target.c:3908
+#: infrun.c:218 infrun.c:247 mi/mi-main.c:116 target.c:3855 target.c:3908
 #: target.c:3964
 msgid "Cannot change this setting while the inferior is running."
 msgstr ""
@@ -16643,7 +16685,7 @@ msgstr ""
 msgid "disabling displaced stepping: %s"
 msgstr ""
 
-#: infrun.c:2011 infrun.c:3031 infrun.c:3041 utils.c:437
+#: infrun.c:2011 infrun.c:3031 infrun.c:3041 utils.c:439
 msgid "Command aborted."
 msgstr ""
 
@@ -16679,99 +16721,99 @@ msgstr ""
 msgid "Cannot fill $_exitsignal with the correct signal number.\n"
 msgstr ""
 
-#: infrun.c:7798
+#: infrun.c:7793
 msgid "Unknown value."
 msgstr ""
 
-#: infrun.c:7853
+#: infrun.c:7848
 msgid ""
 "Cannot remove breakpoints because program is no longer writable.\n"
 "Further execution is probably impossible.\n"
 msgstr ""
 
-#: infrun.c:8006 linux-fork.c:354 linux-fork.c:387
+#: infrun.c:8001 linux-fork.c:354 linux-fork.c:387
 #, possible-c-format
 msgid "[Switching to %s]\n"
 msgstr ""
 
-#: infrun.c:8019
+#: infrun.c:8014
 msgid "No unwaited-for children left.\n"
 msgstr ""
 
-#: infrun.c:8203
+#: infrun.c:8198
 msgid "Signal        Stop\tPrint\tPass to program\tDescription\n"
 msgstr ""
 
-#: infrun.c:8236
+#: infrun.c:8231
 msgid "signal to handle"
 msgstr ""
 
 #. Not a number and not a recognized flag word => complain.
-#: infrun.c:8335
+#: infrun.c:8330
 #, possible-c-format
 msgid "Unrecognized or ambiguous flag word: \"%s\"."
 msgstr ""
 
-#: infrun.c:8350
+#: infrun.c:8345
 #, possible-c-format
 msgid ""
 "%s is used by the debugger.\n"
 "Are you sure you want to change it? "
 msgstr ""
 
-#: infrun.c:8357
+#: infrun.c:8352
 msgid "Not confirmed, unchanged.\n"
 msgstr ""
 
-#: infrun.c:8422
+#: infrun.c:8417
 msgid ""
 "Only signals 1-15 are valid as numeric signals.\n"
 "Use \"info signals\" for a list of symbolic signals."
 msgstr ""
 
-#: infrun.c:8465
+#: infrun.c:8460
 msgid ""
 "\n"
 "Use the \"handle\" command to change these tables.\n"
 msgstr ""
 
-#: infrun.c:8499
+#: infrun.c:8494
 msgid "Unable to read siginfo"
 msgstr ""
 
-#: infrun.c:8522
+#: infrun.c:8517
 msgid "Unable to write siginfo"
 msgstr ""
 
-#: infrun.c:8851
+#: infrun.c:8846
 msgid "Target does not support this operation."
 msgstr ""
 
-#: infrun.c:8861
+#: infrun.c:8856
 msgid "Forward.\n"
 msgstr ""
 
-#: infrun.c:8864
+#: infrun.c:8859
 msgid "Reverse.\n"
 msgstr ""
 
-#: infrun.c:8868
+#: infrun.c:8863
 #, possible-c-format
 msgid "bogus execution_direction value: %d"
 msgstr ""
 
-#: infrun.c:8877
+#: infrun.c:8872
 #, possible-c-format
 msgid "Resuming the execution of threads of all processes is %s.\n"
 msgstr ""
 
-#: infrun.c:8908
+#: infrun.c:8903
 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:8913
+#: infrun.c:8908
 msgid ""
 "Specify how to handle signals.\n"
 "Usage: handle SIGNAL [ACTIONS]\n"
@@ -16798,46 +16840,46 @@ msgid ""
 "all signals cumulatively specified."
 msgstr ""
 
-#: infrun.c:8941
+#: infrun.c:8936
 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:8946
+#: infrun.c:8941
 msgid "Set inferior debugging."
 msgstr ""
 
-#: infrun.c:8947
+#: infrun.c:8942
 msgid "Show inferior debugging."
 msgstr ""
 
-#: infrun.c:8948
+#: infrun.c:8943
 msgid "When non-zero, inferior specific debugging is enabled."
 msgstr ""
 
-#: infrun.c:8955
+#: infrun.c:8950
 msgid "Set displaced stepping debugging."
 msgstr ""
 
-#: infrun.c:8956
+#: infrun.c:8951
 msgid "Show displaced stepping debugging."
 msgstr ""
 
-#: infrun.c:8957
+#: infrun.c:8952
 msgid "When non-zero, displaced stepping specific debugging is enabled."
 msgstr ""
 
-#: infrun.c:8964
+#: infrun.c:8959
 msgid "Set whether gdb controls the inferior in non-stop mode."
 msgstr ""
 
-#: infrun.c:8965
+#: infrun.c:8960
 msgid "Show whether gdb controls the inferior in non-stop mode."
 msgstr ""
 
-#: infrun.c:8966
+#: infrun.c:8961
 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"
@@ -16852,30 +16894,30 @@ msgid ""
 "leave it stopped or free to run as needed."
 msgstr ""
 
-#: infrun.c:9044
+#: infrun.c:9039
 msgid "Set stopping for shared library events."
 msgstr ""
 
-#: infrun.c:9045
+#: infrun.c:9040
 msgid "Show stopping for shared library events."
 msgstr ""
 
-#: infrun.c:9046
+#: infrun.c:9041
 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:9056
+#: infrun.c:9051
 msgid "Set debugger response to a program call of fork or vfork."
 msgstr ""
 
-#: infrun.c:9057
+#: infrun.c:9052
 msgid "Show debugger response to a program call of fork or vfork."
 msgstr ""
 
-#: infrun.c:9058
+#: infrun.c:9053
 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"
@@ -16884,15 +16926,15 @@ msgid ""
 "By default, the debugger will follow the parent process."
 msgstr ""
 
-#: infrun.c:9070
+#: infrun.c:9065
 msgid "Set debugger response to a program call of exec."
 msgstr ""
 
-#: infrun.c:9071
+#: infrun.c:9066
 msgid "Show debugger response to a program call of exec."
 msgstr ""
 
-#: infrun.c:9072
+#: infrun.c:9067
 msgid ""
 "An exec call replaces the program image of a process.\n"
 "\n"
@@ -16911,15 +16953,15 @@ msgid ""
 "By default, the debugger will use the same inferior."
 msgstr ""
 
-#: infrun.c:9093
+#: infrun.c:9088
 msgid "Set mode for locking scheduler during execution."
 msgstr ""
 
-#: infrun.c:9094
+#: infrun.c:9089
 msgid "Show mode for locking scheduler during execution."
 msgstr ""
 
-#: infrun.c:9095
+#: infrun.c:9090
 msgid ""
 "off    == no locking (threads may preempt at any time)\n"
 "on     == full locking (no thread except the current thread may run)\n"
@@ -16932,15 +16974,15 @@ msgid ""
 "execution."
 msgstr ""
 
-#: infrun.c:9107
+#: infrun.c:9102
 msgid "Set mode for resuming threads of all processes."
 msgstr ""
 
-#: infrun.c:9108
+#: infrun.c:9103
 msgid "Show mode for resuming threads of all processes."
 msgstr ""
 
-#: infrun.c:9109
+#: infrun.c:9104
 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"
@@ -16949,30 +16991,30 @@ msgid ""
 "mode (see help set scheduler-locking)."
 msgstr ""
 
-#: infrun.c:9119
+#: infrun.c:9114
 msgid "Set mode of the step operation."
 msgstr ""
 
-#: infrun.c:9120
+#: infrun.c:9115
 msgid "Show mode of the step operation."
 msgstr ""
 
-#: infrun.c:9121
+#: infrun.c:9116
 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:9130
+#: infrun.c:9125
 msgid "Set debugger's willingness to use displaced stepping."
 msgstr ""
 
-#: infrun.c:9131
+#: infrun.c:9126
 msgid "Show debugger's willingness to use displaced stepping."
 msgstr ""
 
-#: infrun.c:9132
+#: infrun.c:9127
 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"
@@ -16984,57 +17026,57 @@ msgid ""
 "use it in all-stop mode (see help set non-stop)."
 msgstr ""
 
-#: infrun.c:9144
+#: infrun.c:9139
 msgid ""
 "Set direction of execution.\n"
 "Options are 'forward' or 'reverse'."
 msgstr ""
 
-#: infrun.c:9146
+#: infrun.c:9141
 msgid "Show direction of execution (forward/reverse)."
 msgstr ""
 
-#: infrun.c:9147
+#: infrun.c:9142
 msgid "Tells gdb whether to execute forward or backward."
 msgstr ""
 
 #. Set/show detach-on-fork: user-settable mode.
-#: infrun.c:9153
+#: infrun.c:9148
 msgid "Set whether gdb will detach the child of a fork."
 msgstr ""
 
-#: infrun.c:9154
+#: infrun.c:9149
 msgid "Show whether gdb will detach the child of a fork."
 msgstr ""
 
-#: infrun.c:9155
+#: infrun.c:9150
 msgid "Tells gdb whether to detach the child of a fork."
 msgstr ""
 
-#: infrun.c:9162
+#: infrun.c:9157
 msgid "Set disabling of debuggee's virtual address space randomization."
 msgstr ""
 
-#: infrun.c:9163
+#: infrun.c:9158
 msgid "Show disabling of debuggee's virtual address space randomization."
 msgstr ""
 
-#: infrun.c:9164
+#: infrun.c:9159
 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:9188
+#: infrun.c:9183
 msgid "Set whether gdb controls the inferior in observer mode."
 msgstr ""
 
-#: infrun.c:9189
+#: infrun.c:9184
 msgid "Show whether gdb controls the inferior in observer mode."
 msgstr ""
 
-#: infrun.c:9190
+#: infrun.c:9185
 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"
@@ -17631,29 +17673,29 @@ msgstr ""
 msgid "wait returned unexpected status 0x%x"
 msgstr ""
 
-#: linux-nat.c:4019 linux-nat.c:4032
+#: linux-nat.c:4022 linux-nat.c:4035
 #, possible-c-format
 msgid "Could not parse signal set: %s"
 msgstr ""
 
-#: linux-nat.c:4064
+#: linux-nat.c:4067
 #, possible-c-format
 msgid "Could not open %s"
 msgstr ""
 
-#: linux-nat.c:4538
+#: linux-nat.c:4541
 msgid "Set debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4539
+#: linux-nat.c:4542
 msgid "Show debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4547
+#: linux-nat.c:4550
 msgid "Set debugging of GNU/Linux namespaces module."
 msgstr ""
 
-#: linux-nat.c:4548
+#: linux-nat.c:4551
 msgid "Show debugging of GNU/Linux namespaces module."
 msgstr ""
 
@@ -18008,231 +18050,231 @@ msgid ""
 "(5)."
 msgstr ""
 
-#: linux-thread-db.c:81
+#: linux-thread-db.c:82
 msgid "multi-threaded child process."
 msgstr ""
 
-#: linux-thread-db.c:82
+#: linux-thread-db.c:83
 msgid "Threads and pthreads support."
 msgstr ""
 
-#: linux-thread-db.c:127
+#: linux-thread-db.c:128
 #, possible-c-format
 msgid "Auto-loading of inferior specific libthread_db is %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:151
+#: linux-thread-db.c:152
 #, possible-c-format
 msgid "libthread-db debugging is %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:285
+#: linux-thread-db.c:286
 #, possible-c-format
 msgid "Cannot deregister process %d from libthread_db: %s"
 msgstr ""
 
-#: linux-thread-db.c:415
+#: linux-thread-db.c:416
 #, possible-c-format
 msgid "Cannot find user-level thread for LWP %ld: %s"
 msgstr ""
 
-#: linux-thread-db.c:420
+#: linux-thread-db.c:421
 #, possible-c-format
 msgid "thread_get_info_callback: cannot get thread info: %s"
 msgstr ""
 
-#: linux-thread-db.c:456
+#: linux-thread-db.c:457
 #, possible-c-format
 msgid "Symbol \"%s\" not found in libthread_db: %s"
 msgstr ""
 
-#: linux-thread-db.c:531
+#: linux-thread-db.c:532
 msgid "Warning: couldn't activate thread debugging using libthread_db: "
 msgstr ""
 
-#: linux-thread-db.c:620
+#: linux-thread-db.c:621
 #, possible-c-format
 msgid "%s failed: %s"
 msgstr ""
 
 #. Some platforms require execution for td_ta_map_lwp2thr.
-#: linux-thread-db.c:658
+#: linux-thread-db.c:659
 msgid "; can't map_lwp2thr"
 msgstr ""
 
-#: linux-thread-db.c:730
+#: linux-thread-db.c:731
 msgid "Running libthread_db integrity checks:\n"
 msgstr ""
 
-#: linux-thread-db.c:771
+#: linux-thread-db.c:772
 #, possible-c-format
 msgid "td_ta_thr_iter failed: %s"
 msgstr ""
 
-#: linux-thread-db.c:774
+#: linux-thread-db.c:775
 msgid "no threads seen"
 msgstr ""
 
-#: linux-thread-db.c:782
+#: linux-thread-db.c:783
 msgid "libthread_db integrity checks failed: "
 msgstr ""
 
-#: linux-thread-db.c:788
+#: linux-thread-db.c:789
 msgid "libthread_db integrity checks passed.\n"
 msgstr ""
 
-#: linux-thread-db.c:829
+#: linux-thread-db.c:830
 #, possible-c-format
 msgid "Cannot initialize libthread_db: %s"
 msgstr ""
 
-#: linux-thread-db.c:844
+#: linux-thread-db.c:845
 #, possible-c-format
 msgid "td_ta_new failed: %s\n"
 msgstr ""
 
-#: linux-thread-db.c:858
+#: linux-thread-db.c:859
 #, possible-c-format
 msgid "td_ta_new failed: %s"
 msgstr ""
 
-#: linux-thread-db.c:920 sol-thread.c:647
+#: linux-thread-db.c:921 sol-thread.c:647
 msgid "[Thread debugging using libthread_db enabled]\n"
 msgstr ""
 
-#: linux-thread-db.c:936
+#: linux-thread-db.c:938
 #, possible-c-format
-msgid "Using host libthread_db library \"%s\".\n"
+msgid "Using host libthread_db library \"%ps\".\n"
 msgstr ""
 
-#: linux-thread-db.c:959
+#: linux-thread-db.c:961
 #, possible-c-format
 msgid "Trying host libthread_db library: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:969
+#: linux-thread-db.c:971
 #, possible-c-format
 msgid "open failed: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:974
+#: linux-thread-db.c:976
 #, possible-c-format
 msgid ""
 "auto-load: Loading libthread-db library \"%s\" from explicit directory.\n"
 msgstr ""
 
-#: linux-thread-db.c:985
+#: linux-thread-db.c:987
 #, possible-c-format
 msgid "dlopen failed: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:999
+#: linux-thread-db.c:1001
 #, possible-c-format
 msgid "Host %s resolved to: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:1030
+#: linux-thread-db.c:1032
 #, possible-c-format
-msgid "Expected absolute pathname for libpthread in the inferior, but got %s."
+msgid "Expected absolute pathname for libpthread in the inferior, but got %ps."
 msgstr ""
 
-#: linux-thread-db.c:1158
+#: linux-thread-db.c:1161
 #, possible-c-format
 msgid "thread_db_load_search returning %d\n"
 msgstr ""
 
-#: linux-thread-db.c:1203
+#: linux-thread-db.c:1206
 msgid ""
 "Unable to find libthread_db matching inferior's thread library, thread "
 "debugging will not be available."
 msgstr ""
 
-#: linux-thread-db.c:1293
+#: linux-thread-db.c:1296
 msgid ""
 "Target and debugger are in different PID namespaces; thread lists and other "
 "data are likely unreliable.  Connect to gdbserver inside the container."
 msgstr ""
 
-#: linux-thread-db.c:1443
+#: linux-thread-db.c:1446
 #, possible-c-format
 msgid "find_new_threads_callback: cannot get thread info: %s"
 msgstr ""
 
-#: linux-thread-db.c:1534
+#: linux-thread-db.c:1537
 #, possible-c-format
 msgid "Found %d new threads in iteration %d.\n"
 msgstr ""
 
-#: linux-thread-db.c:1577
+#: linux-thread-db.c:1580
 #, possible-c-format
 msgid "Cannot find new threads: %s"
 msgstr ""
 
-#: linux-thread-db.c:1687
+#: linux-thread-db.c:1690
 #, possible-c-format
 msgid "Thread handle size mismatch: %d vs %zu (from libthread_db)"
 msgstr ""
 
-#: linux-thread-db.c:1749
+#: linux-thread-db.c:1752
 msgid "No TLS library support"
 msgstr ""
 
-#: linux-thread-db.c:1764
+#: linux-thread-db.c:1767
 msgid "TLS load module not found"
 msgstr ""
 
-#: linux-thread-db.c:1783
+#: linux-thread-db.c:1786
 msgid "TLS not allocated yet"
 msgstr ""
 
-#: linux-thread-db.c:1861
+#: linux-thread-db.c:1864
 msgid "'info auto-load libthread-db' does not accept any parameters"
 msgstr ""
 
-#: linux-thread-db.c:1939
+#: linux-thread-db.c:1942
 msgid "No auto-loaded libthread-db.\n"
 msgstr ""
 
-#: linux-thread-db.c:1955
+#: linux-thread-db.c:1958
 msgid "No libthread_db loaded"
 msgstr ""
 
-#: linux-thread-db.c:1973
+#: linux-thread-db.c:1976
 msgid "Set search path for libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:1974
+#: linux-thread-db.c:1977
 msgid "Show the current search path or libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:1975
+#: linux-thread-db.c:1978
 msgid ""
 "This path is used to search for libthread_db to be loaded into gdb itself.\n"
 "Its value is a colon (':') separate list of directories to search.\n"
 "Setting the search path to an empty list resets it to its default value."
 msgstr ""
 
-#: linux-thread-db.c:1985
+#: linux-thread-db.c:1988
 msgid "Set libthread-db debugging."
 msgstr ""
 
-#: linux-thread-db.c:1986
+#: linux-thread-db.c:1989
 msgid "Show libthread-db debugging."
 msgstr ""
 
-#: linux-thread-db.c:1987
+#: linux-thread-db.c:1990
 msgid "When non-zero, libthread-db debugging is enabled."
 msgstr ""
 
-#: linux-thread-db.c:1994
+#: linux-thread-db.c:1997
 msgid "Enable or disable auto-loading of inferior specific libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:1995
+#: linux-thread-db.c:1998
 msgid "Show whether auto-loading inferior specific libthread_db is enabled."
 msgstr ""
 
-#: linux-thread-db.c:1996
+#: linux-thread-db.c:1999
 msgid ""
 "If enabled, libthread_db will be searched in 'set libthread-db-search-path'\n"
 "locations to load libthread_db compatible with the inferior.\n"
@@ -18240,25 +18282,25 @@ msgid ""
 "This option has security implications for untrusted inferiors."
 msgstr ""
 
-#: linux-thread-db.c:2006
+#: linux-thread-db.c:2009
 msgid ""
 "Print the list of loaded inferior specific libthread_db.\n"
 "Usage: info auto-load libthread-db"
 msgstr ""
 
-#: linux-thread-db.c:2011
+#: linux-thread-db.c:2014
 msgid "Run integrity checks on the current inferior's libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:2017
+#: linux-thread-db.c:2020
 msgid "Set whether to check libthread_db at load time."
 msgstr ""
 
-#: linux-thread-db.c:2018
+#: linux-thread-db.c:2021
 msgid "Show whether to check libthread_db at load time."
 msgstr ""
 
-#: linux-thread-db.c:2019
+#: linux-thread-db.c:2022
 msgid ""
 "If enabled GDB will run integrity checks on inferior specific libthread_db\n"
 "as they are loaded."
@@ -18341,57 +18383,57 @@ msgstr ""
 msgid "unbounded structure missing _m2_contents field"
 msgstr ""
 
-#: m2-typeprint.c:118
+#: m2-typeprint.c:119
 msgid "method"
 msgstr ""
 
 #. i18n: Do not translate the "struct" part!
-#: m2-typeprint.c:138
+#: m2-typeprint.c:139
 msgid "undef"
 msgstr ""
 
-#: m2-typeprint.c:142
+#: m2-typeprint.c:143
 msgid "error"
 msgstr ""
 
-#: m2-typeprint.c:269
+#: m2-typeprint.c:270
 msgid "is unknown"
 msgstr ""
 
-#: m2-typeprint.c:423
+#: m2-typeprint.c:424
 msgid "long_set failed to find discrete bounds for its subtype"
 msgstr ""
 
-#: m2-typeprint.c:426 m2-valprint.c:64
+#: m2-typeprint.c:427 m2-valprint.c:65
 msgid "expecting long_set"
 msgstr ""
 
 #. i18n: Do not translate the "SET OF" part!
-#: m2-typeprint.c:471
+#: m2-typeprint.c:472
 msgid "SET OF <unknown>"
 msgstr ""
 
 #. i18n: Do not translate "CASE" and "OF".
-#: m2-typeprint.c:558
+#: m2-typeprint.c:559
 msgid "CASE <variant> OF\n"
 msgstr ""
 
-#: m2-valprint.c:95
+#: m2-valprint.c:97
 msgid "<unknown bounds of set>"
 msgstr ""
 
-#: m2-valprint.c:109
+#: m2-valprint.c:111
 msgid "bit test is out of range"
 msgstr ""
 
 #. This happens (without TYPE_STUB set) on systems which don't use
 #. dbx xrefs (NO_DBX_XREFS in gcc) if a file has a "struct foo *bar"
 #. and no complete type for struct foo in that file.
-#: m2-valprint.c:410 valprint.c:991 valprint.c:1050
+#: m2-valprint.c:413 valprint.c:993 valprint.c:1052
 msgid "<incomplete type>"
 msgstr ""
 
-#: m2-valprint.c:426
+#: m2-valprint.c:429
 msgid "<error value>"
 msgstr ""
 
@@ -18502,7 +18544,7 @@ msgstr ""
 msgid "Loading debugging symbols from oso: %s\n"
 msgstr ""
 
-#: machoread.c:431 symfile.c:1762
+#: machoread.c:431 symfile.c:1761
 #, possible-c-format
 msgid "`%s': can't read symbols: %s."
 msgstr ""
@@ -18552,7 +18594,7 @@ msgstr ""
 msgid "Could not find specified archive member for OSO name \"%s\""
 msgstr ""
 
-#: machoread.c:712 symfile.c:1755
+#: machoread.c:712 symfile.c:1754
 #, possible-c-format
 msgid "`%s': can't open to read symbols: %s."
 msgstr ""
@@ -18606,51 +18648,51 @@ msgid ""
 "you want to expand."
 msgstr ""
 
-#: macrocmd.c:129
+#: macrocmd.c:131
 msgid "  included at "
 msgstr ""
 
-#: macrocmd.c:209
+#: macrocmd.c:211
 msgid ""
 "You must follow the `info macro' command with the name of the macro\n"
 "whose definition you want to see."
 msgstr ""
 
-#: macrocmd.c:350
+#: macrocmd.c:352
 msgid "usage: macro define NAME[(ARGUMENT-LIST)] [REPLACEMENT-LIST]"
 msgstr ""
 
-#: macrocmd.c:355 macrocmd.c:427
+#: macrocmd.c:357 macrocmd.c:429
 msgid "Invalid macro name."
 msgstr ""
 
-#: macrocmd.c:383
+#: macrocmd.c:385
 msgid "Macro is missing an argument."
 msgstr ""
 
-#: macrocmd.c:389
+#: macrocmd.c:391
 msgid "Two macro arguments with identical names."
 msgstr ""
 
-#: macrocmd.c:399
+#: macrocmd.c:401
 msgid "',' or ')' expected at end of macro arguments."
 msgstr ""
 
-#: macrocmd.c:422
+#: macrocmd.c:424
 msgid "usage: macro undef NAME"
 msgstr ""
 
-#: macrocmd.c:465
+#: macrocmd.c:467
 msgid "Prefix for commands dealing with C preprocessor macros."
 msgstr ""
 
-#: macrocmd.c:468
+#: macrocmd.c:470
 msgid ""
 "Fully expand any C/C++ preprocessor macro invocations in EXPRESSION.\n"
 "Show the expanded expression."
 msgstr ""
 
-#: macrocmd.c:473
+#: macrocmd.c:475
 msgid ""
 "Expand C/C++ preprocessor macro invocations appearing directly in "
 "EXPRESSION.\n"
@@ -18665,7 +18707,7 @@ msgid ""
 "expression work together to yield a pre-processed expression."
 msgstr ""
 
-#: macrocmd.c:488
+#: macrocmd.c:490
 msgid ""
 "Show the definition of MACRO, and it's source location.\n"
 "Usage: info macro [-a|-all] [--] MACRO\n"
@@ -18675,14 +18717,14 @@ msgid ""
 "  --           Specify the end of arguments and the beginning of the MACRO."
 msgstr ""
 
-#: macrocmd.c:496
+#: macrocmd.c:498
 msgid ""
 "Show the definitions of all macros at LINESPEC, or the current source "
 "location.\n"
 "Usage: info macros [LINESPEC]"
 msgstr ""
 
-#: macrocmd.c:500
+#: macrocmd.c:502
 msgid ""
 "Define a new C/C++ preprocessor macro.\n"
 "The GDB command `macro define DEFINITION' is equivalent to placing a\n"
@@ -18693,12 +18735,12 @@ msgid ""
 "  (gdb) macro define MIN(x,y) ((x) < (y) ? (x) : (y))"
 msgstr ""
 
-#: macrocmd.c:510
+#: macrocmd.c:512
 msgid ""
 "Remove the definition of the C/C++ preprocessor macro with the given name."
 msgstr ""
 
-#: macrocmd.c:515
+#: macrocmd.c:517
 msgid "List all the macros defined using the `macro define' command."
 msgstr ""
 
@@ -18795,80 +18837,80 @@ msgstr ""
 msgid "no definition for macro `%s' in scope to #undef at %s:%d"
 msgstr ""
 
-#: main.c:122 source.c:551
+#: main.c:122 source.c:569
 #, possible-c-format
 msgid "%s is not a directory."
 msgstr ""
 
-#: main.c:411
+#: main.c:410
 #, possible-c-format
 msgid "%s: '--readnow' and '--readnever' cannot be specified simultaneously"
 msgstr ""
 
-#: main.c:518
+#: main.c:517
 msgid "fatal error: libbfd ABI mismatch"
 msgstr ""
 
-#: main.c:535
+#: main.c:534
 msgid "error finding working directory"
 msgstr ""
 
-#: main.c:711
+#: main.c:709
 #, possible-c-format
 msgid "%s: TUI mode is not supported"
 msgstr ""
 
-#: main.c:761
+#: main.c:759
 #, possible-c-format
 msgid "%s: empty path for `--data-directory'"
 msgstr ""
 
-#: main.c:772
+#: main.c:770
 #, possible-c-format
 msgid "%s: unable to load tclcommand file \"%s\""
 msgstr ""
 
-#: main.c:809
+#: main.c:807
 #, possible-c-format
 msgid "could not set baud rate to `%s'."
 msgstr ""
 
-#: main.c:822
+#: main.c:820
 #, possible-c-format
 msgid "could not set timeout limit to `%s'."
 msgstr ""
 
-#: main.c:844
+#: main.c:842
 #, possible-c-format
 msgid "Use `%s --help' for a complete list of options."
 msgstr ""
 
-#: main.c:875
+#: main.c:873
 #, possible-c-format
 msgid "%s: `--args' specified but no program specified"
 msgstr ""
 
-#: main.c:910
+#: main.c:908
 #, possible-c-format
 msgid "Excess command line arguments ignored. (%s%s)\n"
 msgstr ""
 
-#: main.c:992
+#: main.c:990
 msgid ""
 "\n"
 "warning: "
 msgstr ""
 
-#: main.c:1066
+#: main.c:1064
 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:1106
+#: main.c:1104
 msgid "warning: "
 msgstr ""
 
-#: main.c:1117
+#: main.c:1115
 #, possible-c-format
 msgid "auto-load: Loading .gdbinit file \"%s\".\n"
 msgstr ""
@@ -18876,7 +18918,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:1226
+#: main.c:1224
 msgid ""
 "This is the GNU debugger.  Usage:\n"
 "\n"
@@ -18885,7 +18927,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1231
+#: main.c:1229
 msgid ""
 "Selection of debuggee and its files:\n"
 "\n"
@@ -18902,7 +18944,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1244
+#: main.c:1242
 msgid ""
 "Initial commands and command files:\n"
 "\n"
@@ -18920,7 +18962,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1258
+#: main.c:1256
 msgid ""
 "Output and user interface control:\n"
 "\n"
@@ -18933,11 +18975,11 @@ msgid ""
 "  --nw               Do not use the GUI interface.\n"
 msgstr ""
 
-#: main.c:1268
+#: main.c:1266
 msgid "  --tui              Use a terminal user interface.\n"
 msgstr ""
 
-#: main.c:1272
+#: main.c:1270
 msgid ""
 "  --dbx              DBX compatibility mode.\n"
 "  -q, --quiet, --silent\n"
@@ -18945,7 +18987,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: main.c:1277
+#: main.c:1275
 msgid ""
 "Operating modes:\n"
 "\n"
@@ -18969,35 +19011,35 @@ msgid ""
 "                     Set GDB's data-directory to DIR.\n"
 msgstr ""
 
-#: main.c:1294
+#: main.c:1292
 msgid ""
 "\n"
 "At startup, GDB reads the following init files and executes their commands:\n"
 msgstr ""
 
-#: main.c:1298
+#: main.c:1296
 #, possible-c-format
 msgid "   * system-wide init file: %s\n"
 msgstr ""
 
-#: main.c:1302
+#: main.c:1300
 #, possible-c-format
 msgid "   * user-specific init file: %s\n"
 msgstr ""
 
-#: main.c:1306
+#: main.c:1304
 #, possible-c-format
 msgid "   * local init file (see also 'set auto-load local-gdbinit'): ./%s\n"
 msgstr ""
 
-#: main.c:1309
+#: main.c:1307
 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:1314
+#: main.c:1312
 #, possible-c-format
 msgid "Report bugs to \"%s\".\n"
 msgstr ""
@@ -19533,7 +19575,7 @@ msgstr ""
 msgid "You should compile with -g2 or -g3 for best debugging support.\n"
 msgstr ""
 
-#: mdebugread.c:521 stabsread.c:183
+#: mdebugread.c:521 stabsread.c:184
 #, possible-c-format
 msgid "bad register number %d (max %d) in symbol %s"
 msgstr ""
@@ -20041,7 +20083,7 @@ msgid "-stack-info-frame: No arguments a
 msgstr ""
 
 #: mi/mi-cmd-catch.c:79 mi/mi-cmd-catch.c:147 mi/mi-cmd-catch.c:215
-#: mi/mi-main.c:464 skip.c:298
+#: mi/mi-main.c:463 skip.c:299
 #, possible-c-format
 msgid "Invalid argument: %s"
 msgstr ""
@@ -20232,288 +20274,288 @@ msgstr ""
 msgid "command `%s' appears to be duplicated"
 msgstr ""
 
-#: mi/mi-main.c:129
+#: mi/mi-main.c:128
 #, possible-c-format
 msgid "Whether MI is in asynchronous mode is %s.\n"
 msgstr ""
 
-#: mi/mi-main.c:323
+#: mi/mi-main.c:322
 msgid "Already in reverse mode."
 msgstr ""
 
-#: mi/mi-main.c:326 reverse.c:48
+#: mi/mi-main.c:325 reverse.c:48
 #, possible-c-format
 msgid "Target %s does not support this command."
 msgstr ""
 
-#: mi/mi-main.c:499
+#: mi/mi-main.c:498
 msgid "Usage: -target-detach [pid | thread-group]"
 msgstr ""
 
-#: mi/mi-main.c:514
+#: mi/mi-main.c:513
 #, possible-c-format
 msgid "Invalid syntax of thread-group id '%s'"
 msgstr ""
 
-#: mi/mi-main.c:518
+#: mi/mi-main.c:517
 #, possible-c-format
 msgid "Non-existent thread-group id '%d'"
 msgstr ""
 
-#: mi/mi-main.c:528
+#: mi/mi-main.c:527
 #, possible-c-format
 msgid "Invalid identifier '%s'"
 msgstr ""
 
-#: mi/mi-main.c:535
+#: mi/mi-main.c:534
 msgid "Thread group is empty"
 msgstr ""
 
-#: mi/mi-main.c:553
+#: mi/mi-main.c:552
 msgid "-thread-select: USAGE: threadnum."
 msgstr ""
 
-#: mi/mi-main.c:558
+#: mi/mi-main.c:557
 #, possible-c-format
 msgid "Thread ID %d not known."
 msgstr ""
 
-#: mi/mi-main.c:579
+#: mi/mi-main.c:578
 msgid "-thread-list-ids: No arguments required."
 msgstr ""
 
-#: mi/mi-main.c:608 mi/mi-main.c:2452
+#: mi/mi-main.c:607 mi/mi-main.c:2451
 msgid "Invalid MI command"
 msgstr ""
 
-#: mi/mi-main.c:822
+#: mi/mi-main.c:821
 msgid "only '0' and '1' are valid values for the '--recurse' option"
 msgstr ""
 
-#: mi/mi-main.c:834 mi/mi-main.c:839
+#: mi/mi-main.c:833 mi/mi-main.c:838
 #, possible-c-format
 msgid "invalid syntax of group id '%s'"
 msgstr ""
 
-#: mi/mi-main.c:854
+#: mi/mi-main.c:853
 #, possible-c-format
 msgid "Non-existent thread group id '%d'"
 msgstr ""
 
-#: mi/mi-main.c:914 mi/mi-main.c:986 mi/mi-main.c:1107 mi/mi-main.c:1198
+#: mi/mi-main.c:913 mi/mi-main.c:985 mi/mi-main.c:1106 mi/mi-main.c:1197
 msgid "bad register number"
 msgstr ""
 
-#: mi/mi-main.c:1069
+#: mi/mi-main.c:1068
 msgid ""
 "-data-list-register-values: Usage: -data-list-register-values [--skip-"
 "unavailable] <format> [<regnum1>...<regnumN>]"
 msgstr ""
 
-#: mi/mi-main.c:1168
+#: mi/mi-main.c:1167
 msgid ""
 "-data-write-register-values: Usage: -data-write-register-values <format> "
 "[<regnum1> <value1>...<regnumN> <valueN>]"
 msgstr ""
 
-#: mi/mi-main.c:1172
+#: mi/mi-main.c:1171
 msgid "-data-write-register-values: No registers."
 msgstr ""
 
-#: mi/mi-main.c:1175
+#: mi/mi-main.c:1174
 msgid "-data-write-register-values: No regs and values specified."
 msgstr ""
 
-#: mi/mi-main.c:1178
+#: mi/mi-main.c:1177
 msgid "-data-write-register-values: Regs and vals are not in pairs."
 msgstr ""
 
-#: mi/mi-main.c:1214
+#: mi/mi-main.c:1213
 msgid "-data-evaluate-expression: Usage: -data-evaluate-expression expression"
 msgstr ""
 
-#: mi/mi-main.c:1294
+#: mi/mi-main.c:1293
 msgid ""
 "-data-read-memory: Usage: ADDR WORD-FORMAT WORD-SIZE NR-ROWS NR-COLS "
 "[ASCHAR]."
 msgstr ""
 
-#: mi/mi-main.c:1331
+#: mi/mi-main.c:1330
 msgid "-data-read-memory: invalid number of rows."
 msgstr ""
 
-#: mi/mi-main.c:1336
+#: mi/mi-main.c:1335
 msgid "-data-read-memory: invalid number of columns."
 msgstr ""
 
-#: mi/mi-main.c:1352 mi/mi-main.c:1472
+#: mi/mi-main.c:1351 mi/mi-main.c:1471
 msgid "Unable to read memory."
 msgstr ""
 
-#: mi/mi-main.c:1463
+#: mi/mi-main.c:1462
 msgid "Usage: [ -o OFFSET ] ADDR LENGTH."
 msgstr ""
 
-#: mi/mi-main.c:1548
+#: mi/mi-main.c:1547
 msgid ""
 "-data-write-memory: Usage: [-o COLUMN_OFFSET] ADDR FORMAT WORD-SIZE VALUE."
 msgstr ""
 
-#: mi/mi-main.c:1585
+#: mi/mi-main.c:1584
 msgid "Usage: ADDR DATA [COUNT]."
 msgstr ""
 
-#: mi/mi-main.c:1593
+#: mi/mi-main.c:1592
 #, possible-c-format
 msgid ""
 "Hex-encoded '%s' must represent an integral number of addressable memory "
 "units."
 msgstr ""
 
-#: mi/mi-main.c:1663
+#: mi/mi-main.c:1662
 #, possible-c-format
 msgid "-enable-timings: Usage: %s {yes|no}"
 msgstr ""
 
-#: mi/mi-main.c:1692
+#: mi/mi-main.c:1691
 msgid "-list-features should be passed no arguments"
 msgstr ""
 
-#: mi/mi-main.c:1710
+#: mi/mi-main.c:1709
 msgid "-list-target-features should be passed no arguments"
 msgstr ""
 
-#: mi/mi-main.c:1719
+#: mi/mi-main.c:1718
 msgid "-add-inferior should be passed no arguments"
 msgstr ""
 
-#: mi/mi-main.c:1745
+#: mi/mi-main.c:1744
 msgid "-remove-inferior should be passed a single argument"
 msgstr ""
 
-#: mi/mi-main.c:1748
+#: mi/mi-main.c:1747
 msgid "the thread group id is syntactically invalid"
 msgstr ""
 
-#: mi/mi-main.c:1752
+#: mi/mi-main.c:1751
 msgid "the specified thread group does not exist"
 msgstr ""
 
-#: mi/mi-main.c:1755
+#: mi/mi-main.c:1754
 msgid "cannot remove an active inferior"
 msgstr ""
 
-#: mi/mi-main.c:1764
+#: mi/mi-main.c:1763
 msgid "Cannot remove last inferior"
 msgstr ""
 
-#: mi/mi-main.c:2029
+#: mi/mi-main.c:2028
 msgid "Cannot specify --thread-group together with --all"
 msgstr ""
 
-#: mi/mi-main.c:2032
+#: mi/mi-main.c:2031
 msgid "Cannot specify --thread together with --all"
 msgstr ""
 
-#: mi/mi-main.c:2035
+#: mi/mi-main.c:2034
 msgid "Cannot specify --thread together with --thread-group"
 msgstr ""
 
-#: mi/mi-main.c:2038
+#: mi/mi-main.c:2037
 msgid "Cannot specify --frame without --thread"
 msgstr ""
 
-#: mi/mi-main.c:2046
+#: mi/mi-main.c:2045
 msgid "Invalid thread group for the --thread-group option"
 msgstr ""
 
-#: mi/mi-main.c:2068
+#: mi/mi-main.c:2067
 #, possible-c-format
 msgid "Invalid thread id: %d"
 msgstr ""
 
-#: mi/mi-main.c:2071
+#: mi/mi-main.c:2070
 #, possible-c-format
 msgid "Thread id: %d has terminated"
 msgstr ""
 
-#: mi/mi-main.c:2086
+#: mi/mi-main.c:2085
 #, possible-c-format
 msgid "Invalid frame id: %d"
 msgstr ""
 
-#: mi/mi-main.c:2274
+#: mi/mi-main.c:2273
 msgid "Usage: -trace-define-variable VARIABLE [VALUE]"
 msgstr ""
 
-#: mi/mi-main.c:2278 tracepoint.c:343
+#: mi/mi-main.c:2277 tracepoint.c:343
 msgid "Name of trace variable should start with '$'"
 msgstr ""
 
-#: mi/mi-main.c:2296
+#: mi/mi-main.c:2295
 msgid "-trace-list-variables: no arguments allowed"
 msgstr ""
 
-#: mi/mi-main.c:2307
+#: mi/mi-main.c:2306
 msgid "trace selection mode is required"
 msgstr ""
 
-#: mi/mi-main.c:2322
+#: mi/mi-main.c:2321
 msgid "frame number is required"
 msgstr ""
 
-#: mi/mi-main.c:2328
+#: mi/mi-main.c:2327
 msgid "tracepoint number is required"
 msgstr ""
 
-#: mi/mi-main.c:2334
+#: mi/mi-main.c:2333
 msgid "PC is required"
 msgstr ""
 
-#: mi/mi-main.c:2340 mi/mi-main.c:2347
+#: mi/mi-main.c:2339 mi/mi-main.c:2346
 msgid "Start and end PC are required"
 msgstr ""
 
-#: mi/mi-main.c:2354
+#: mi/mi-main.c:2353
 msgid "Line is required"
 msgstr ""
 
-#: mi/mi-main.c:2362 mi/mi-main.c:2368
+#: mi/mi-main.c:2361 mi/mi-main.c:2367
 msgid "Could not find the specified line"
 msgstr ""
 
-#: mi/mi-main.c:2371
+#: mi/mi-main.c:2370
 #, possible-c-format
 msgid "Invalid mode '%s'"
 msgstr ""
 
-#: mi/mi-main.c:2416
+#: mi/mi-main.c:2415
 msgid "Exactly one argument required (file in which to save trace data)"
 msgstr ""
 
-#: mi/mi-main.c:2568
+#: mi/mi-main.c:2567
 msgid ""
 "Usage: -trace-frame-collected [--var-print-values PRINT_VALUES] [--comp-"
 "print-values PRINT_VALUES] [--registers-format FORMAT][--memory-contents]"
 msgstr ""
 
-#: mi/mi-main.c:2717
+#: mi/mi-main.c:2716
 msgid "Usage: -complete COMMAND"
 msgstr ""
 
-#: mi/mi-main.c:2720
+#: mi/mi-main.c:2719
 msgid "max-completions is zero, completion is disabled."
 msgstr ""
 
-#: mi/mi-main.c:2762
+#: mi/mi-main.c:2761
 msgid "Set whether MI asynchronous mode is enabled."
 msgstr ""
 
-#: mi/mi-main.c:2763
+#: mi/mi-main.c:2762
 msgid "Show whether MI asynchronous mode is enabled."
 msgstr ""
 
-#: mi/mi-main.c:2764
+#: mi/mi-main.c:2763
 msgid "Tells GDB whether MI should be in asynchronous mode."
 msgstr ""
 
@@ -20564,25 +20606,25 @@ msgid ""
 "time"
 msgstr ""
 
-#: minsyms.c:912
+#: minsyms.c:935
 #, possible-c-format
 msgid ""
 "GDB cannot resolve STT_GNU_IFUNC symbol at address %s without the ELF "
 "support compiled in."
 msgstr ""
 
-#: minsyms.c:923
+#: minsyms.c:946
 #, possible-c-format
 msgid ""
 "GDB cannot resolve STT_GNU_IFUNC symbol \"%s\" without the ELF support "
 "compiled in."
 msgstr ""
 
-#: minsyms.c:934
+#: minsyms.c:957
 msgid "elf_gnu_ifunc_resolver_stop cannot be reached."
 msgstr ""
 
-#: minsyms.c:943
+#: minsyms.c:966
 msgid "elf_gnu_ifunc_resolver_return_stop cannot be reached."
 msgstr ""
 
@@ -21366,7 +21408,7 @@ msgstr ""
 msgid "unlink_objfile: objfile already unlinked"
 msgstr ""
 
-#: objfiles.c:1219
+#: objfiles.c:1221
 #, possible-c-format
 msgid ""
 "unexpected overlap between:\n"
@@ -21915,7 +21957,7 @@ msgstr ""
 msgid "bad display number at or near '%s'"
 msgstr ""
 
-#: printcmd.c:1870 printcmd.c:2075
+#: printcmd.c:1870 printcmd.c:2077
 #, possible-c-format
 msgid "No display number %d.\n"
 msgstr ""
@@ -21931,55 +21973,55 @@ msgstr ""
 
 #: printcmd.c:2004
 #, possible-c-format
-msgid "<error: %s>\n"
+msgid "%p[<error: %s>%p]\n"
 msgstr ""
 
-#: printcmd.c:2085
+#: printcmd.c:2087
 #, possible-c-format
 msgid "Disabling display %d to avoid infinite recursion.\n"
 msgstr ""
 
-#: printcmd.c:2098
+#: printcmd.c:2100
 msgid "There are no auto-display expressions now.\n"
 msgstr ""
 
-#: printcmd.c:2100
+#: printcmd.c:2102
 msgid ""
 "Auto-display expressions now in effect:\n"
 "Num Enb Expression\n"
 msgstr ""
 
-#: printcmd.c:2113
+#: printcmd.c:2115
 msgid " (cannot be evaluated in the current context)"
 msgstr ""
 
-#: printcmd.c:2535
+#: printcmd.c:2537
 msgid "format-control string and values to print"
 msgstr ""
 
-#: printcmd.c:2610
+#: printcmd.c:2612
 #, possible-c-format
 msgid "expected wchar_t argument for %%lc"
 msgstr ""
 
-#: printcmd.c:2642
+#: printcmd.c:2644
 msgid "long long not supported in printf"
 msgstr ""
 
-#: printcmd.c:2736
+#: printcmd.c:2738
 msgid ""
 "Describe where symbol SYM is stored.\n"
 "Usage: info address SYM"
 msgstr ""
 
-#: printcmd.c:2739
+#: printcmd.c:2741
 msgid ""
 "Describe what symbol is at location ADDR.\n"
 "Usage: info symbol ADDR\n"
 "Only for symbols with fixed locations (global or static scope)."
 msgstr ""
 
-#: printcmd.c:2744
+#: printcmd.c:2746
 msgid ""
 "Examine memory: x/FMT ADDRESS.\n"
 "ADDRESS is an expression for the memory address to examine.\n"
@@ -21997,13 +22039,13 @@ msgid ""
 "with this command or \"print\"."
 msgstr ""
 
-#: printcmd.c:2759
+#: printcmd.c:2761
 msgid ""
 "Expressions to display when program stops, with code numbers.\n"
 "Usage: info display"
 msgstr ""
 
-#: printcmd.c:2763
+#: printcmd.c:2765
 msgid ""
 "Cancel some expressions to be displayed when program stops.\n"
 "Usage: undisplay [NUM]...\n"
@@ -22013,7 +22055,7 @@ msgid ""
 "Do \"info display\" to see current list of code numbers."
 msgstr ""
 
-#: printcmd.c:2772
+#: printcmd.c:2774
 msgid ""
 "Print value of expression EXP each time the program stops.\n"
 "Usage: display[/FMT] EXP\n"
@@ -22026,7 +22068,7 @@ msgid ""
 "Use \"undisplay\" to cancel display requests previously made."
 msgstr ""
 
-#: printcmd.c:2782
+#: printcmd.c:2784
 msgid ""
 "Enable some expressions to be displayed when program stops.\n"
 "Usage: enable display [NUM]...\n"
@@ -22035,7 +22077,7 @@ msgid ""
 "Do \"info display\" to see current list of code numbers."
 msgstr ""
 
-#: printcmd.c:2789
+#: printcmd.c:2791
 msgid ""
 "Disable some expressions to be displayed when program stops.\n"
 "Usage: disable display [NUM]...\n"
@@ -22044,7 +22086,7 @@ msgid ""
 "Do \"info display\" to see current list of code numbers."
 msgstr ""
 
-#: printcmd.c:2796
+#: printcmd.c:2798
 msgid ""
 "Cancel some expressions to be displayed when program stops.\n"
 "Usage: delete display [NUM]...\n"
@@ -22053,7 +22095,7 @@ msgid ""
 "Do \"info display\" to see current list of code numbers."
 msgstr ""
 
-#: printcmd.c:2803
+#: printcmd.c:2805
 #, possible-c-format
 msgid ""
 "Formatted printing, like the C \"printf\" function.\n"
@@ -22061,14 +22103,14 @@ msgid ""
 "This supports most C printf format specifications, like %s, %d, etc."
 msgstr ""
 
-#: printcmd.c:2808
+#: printcmd.c:2810
 msgid ""
 "Like \"print\" but don't put in value history and don't print newline.\n"
 "Usage: output EXP\n"
 "This is useful in user-defined commands."
 msgstr ""
 
-#: printcmd.c:2813
+#: printcmd.c:2815
 msgid ""
 "Evaluate expression EXP and assign result to variable VAR.\n"
 "Usage: set VAR = EXP\n"
@@ -22083,7 +22125,7 @@ msgid ""
 "You can see these environment settings with the \"show\" command."
 msgstr ""
 
-#: printcmd.c:2827
+#: printcmd.c:2829
 msgid ""
 "Evaluate expression EXP and assign result to variable VAR.\n"
 "Usage: assign VAR = EXP\n"
@@ -22099,7 +22141,7 @@ msgid ""
 msgstr ""
 
 #. "call" is the same as "set", but handy for dbx users to call fns.
-#: printcmd.c:2840
+#: printcmd.c:2842
 msgid ""
 "Call a function in the program.\n"
 "Usage: call EXP\n"
@@ -22108,7 +22150,7 @@ msgid ""
 "history, if it is not void."
 msgstr ""
 
-#: printcmd.c:2848
+#: printcmd.c:2850
 msgid ""
 "Evaluate expression EXP and assign result to variable VAR.\n"
 "Usage: set variable VAR = EXP\n"
@@ -22120,7 +22162,7 @@ msgid ""
 "This may usually be abbreviated to simply \"set\"."
 msgstr ""
 
-#: printcmd.c:2862
+#: printcmd.c:2864
 msgid ""
 "Print value of expression EXP.\n"
 "Usage: print [[OPTION]... --] [/FMT] [EXP]\n"
@@ -22155,15 +22197,15 @@ msgid ""
 "but no count or size letter (see \"x\" command)."
 msgstr ""
 
-#: printcmd.c:2901
+#: printcmd.c:2903
 msgid "Set the largest offset that will be printed in <SYMBOL+1234> form."
 msgstr ""
 
-#: printcmd.c:2902
+#: printcmd.c:2904
 msgid "Show the largest offset that will be printed in <SYMBOL+1234> form."
 msgstr ""
 
-#: printcmd.c:2903
+#: printcmd.c:2905
 msgid ""
 "Tell GDB to only display the symbolic form of an address if the\n"
 "offset between the closest earlier symbol and the address is less than\n"
@@ -22173,15 +22215,15 @@ msgid ""
 "it.  Zero is equivalent to \"unlimited\"."
 msgstr ""
 
-#: printcmd.c:2913
+#: printcmd.c:2915
 msgid "Set printing of source filename and line number with <SYMBOL>."
 msgstr ""
 
-#: printcmd.c:2914
+#: printcmd.c:2916
 msgid "Show printing of source filename and line number with <SYMBOL>."
 msgstr ""
 
-#: printcmd.c:2920
+#: printcmd.c:2922
 msgid ""
 "Construct a GDB command and then evaluate it.\n"
 "Usage: eval \"format string\", ARG1, ARG2, ARG3, ..., ARGN\n"
@@ -22527,7 +22569,7 @@ msgstr ""
 msgid "Reading symbols from %s...\n"
 msgstr ""
 
-#: psymtab.c:116 symfile.c:1137
+#: psymtab.c:116
 #, possible-c-format
 msgid "(No debugging symbols found in %s)\n"
 msgstr ""
@@ -22549,29 +22591,29 @@ msgstr ""
 msgid "  Number of psym tables (not yet expanded): %d\n"
 msgstr ""
 
-#: psymtab.c:1811 symmisc.c:409
+#: psymtab.c:1811 symmisc.c:413
 msgid "Missing pc value"
 msgstr ""
 
-#: psymtab.c:1817 symmisc.c:415
+#: psymtab.c:1817 symmisc.c:419
 msgid "Missing source file"
 msgstr ""
 
-#: psymtab.c:1823 symmisc.c:421 symmisc.c:694
+#: psymtab.c:1823 symmisc.c:425 symmisc.c:698
 msgid "Missing objfile name"
 msgstr ""
 
 #. Future proofing: Don't allow OUTFILE to begin with "-".
-#: psymtab.c:1835 symmisc.c:433 symmisc.c:706
+#: psymtab.c:1835 symmisc.c:437 symmisc.c:710
 #, possible-c-format
 msgid "Unknown option: %s"
 msgstr ""
 
-#: psymtab.c:1843 symmisc.c:441
+#: psymtab.c:1843 symmisc.c:445
 msgid "Must specify at most one of -pc and -source"
 msgstr ""
 
-#: psymtab.c:1850 symmisc.c:448 symmisc.c:718
+#: psymtab.c:1850 symmisc.c:452 symmisc.c:722
 msgid "Junk at end of command"
 msgstr ""
 
@@ -22608,29 +22650,29 @@ msgstr ""
 msgid "Check consistency of currently expanded psymtabs versus symtabs."
 msgstr ""
 
-#: p-typeprint.c:302
+#: p-typeprint.c:303
 msgid "type not handled in pascal_type_print_varspec_prefix()"
 msgstr ""
 
-#: p-typeprint.c:435
+#: p-typeprint.c:436
 msgid "type not handled in pascal_type_print_varspec_suffix()"
 msgstr ""
 
-#: p-valprint.c:416
+#: p-valprint.c:417
 #, possible-c-format
 msgid "Invalid pascal type code %d in symbol table."
 msgstr ""
 
-#: p-valprint.c:463
+#: p-valprint.c:464
 #, possible-c-format
 msgid "Printing of pascal static members is %s.\n"
 msgstr ""
 
-#: p-valprint.c:895
+#: p-valprint.c:899
 msgid "Set printing of pascal static members."
 msgstr ""
 
-#: p-valprint.c:896
+#: p-valprint.c:900
 msgid "Show printing of pascal static members."
 msgstr ""
 
@@ -22723,7 +22765,7 @@ msgstr ""
 #: python/py-xmethods.c:537 python/py-xmethods.c:544 python/py-xmethods.c:558
 #: python/py-xmethods.c:569 python/py-xmethods.c:578 python/python.c:310
 #: python/python.c:393 python/python.c:409 python/py-function.c:94
-#: python/py-prettyprint.c:517
+#: python/py-prettyprint.c:519
 msgid "Error while executing Python code."
 msgstr ""
 
@@ -23171,21 +23213,21 @@ msgstr ""
 msgid "This function is not documented."
 msgstr ""
 
-#: python/py-framefilter.c:98
+#: python/py-framefilter.c:99
 msgid "Unexpected value.  Expecting a gdb.Symbol or a Python string."
 msgstr ""
 
-#: python/py-framefilter.c:482
+#: python/py-framefilter.c:483
 msgid "No symbol or value provided."
 msgstr ""
 
-#: python/py-framefilter.c:941
+#: python/py-framefilter.c:942
 msgid "FrameDecorator.function: expecting a String, integer or None."
 msgstr ""
 
 #. We've printed all the frames we were asked to
 #. print, but more frames existed.
-#: python/py-framefilter.c:1228 stack.c:2052
+#: python/py-framefilter.c:1229 stack.c:2063
 msgid "(More stack frames follow...)\n"
 msgstr ""
 
@@ -23216,7 +23258,7 @@ msgid "Must be gdb.RecordInstruction"
 msgstr ""
 
 #: python/py-record-btrace.c:90 python/py-record-btrace.c:96
-#: record-btrace.c:2836
+#: record-btrace.c:2837
 msgid "No such instruction."
 msgstr ""
 
@@ -23528,15 +23570,15 @@ msgstr ""
 msgid "The value of `internal' must be a boolean."
 msgstr ""
 
-#: python/py-prettyprint.c:416
+#: python/py-prettyprint.c:418
 msgid "Result of children iterator not a tuple of two elements."
 msgstr ""
 
-#: python/py-prettyprint.c:427
+#: python/py-prettyprint.c:429
 msgid "Bad result from children iterator.\n"
 msgstr ""
 
-#: python/py-prettyprint.c:684
+#: python/py-prettyprint.c:686
 msgid "Argument must be a gdb.Value."
 msgstr ""
 
@@ -23587,186 +23629,186 @@ msgid ""
 "Ravenscar run-time library for bareboard configuration."
 msgstr ""
 
-#: record-btrace.c:48
+#: record-btrace.c:49
 msgid "Branch tracing target"
 msgstr ""
 
-#: record-btrace.c:49
+#: record-btrace.c:50
 msgid "Collect control-flow trace and provide the execution history."
 msgstr ""
 
-#: record-btrace.c:236
+#: record-btrace.c:237
 msgid "Internal error: bad record btrace cpu state."
 msgstr ""
 
-#: record-btrace.c:502 record-btrace.c:518
+#: record-btrace.c:503 record-btrace.c:519
 #, possible-c-format
 msgid "Buffer size: %u%s.\n"
 msgstr ""
 
-#: record-btrace.c:527
+#: record-btrace.c:528
 #, possible-c-format
 msgid "Recording format: %s.\n"
 msgstr ""
 
-#: record-btrace.c:597
+#: record-btrace.c:598
 #, possible-c-format
 msgid ""
 "Recorded %u instructions in %u functions (%u gaps) for thread %s (%s).\n"
 msgstr ""
 
-#: record-btrace.c:603
+#: record-btrace.c:604
 #, possible-c-format
 msgid "Replay in progress.  At instruction %u.\n"
 msgstr ""
 
-#: record-btrace.c:615
+#: record-btrace.c:616
 msgid "["
 msgstr ""
 
-#: record-btrace.c:619
+#: record-btrace.c:620
 msgid "decode error ("
 msgstr ""
 
-#: record-btrace.c:621
+#: record-btrace.c:622
 msgid "): "
 msgstr ""
 
-#: record-btrace.c:624
+#: record-btrace.c:625
 msgid "]\n"
 msgstr ""
 
-#: record-btrace.c:864 record-btrace.c:990
+#: record-btrace.c:865 record-btrace.c:991
 msgid "Bad record instruction-history-size."
 msgstr ""
 
-#: record-btrace.c:924 record-btrace.c:1281
+#: record-btrace.c:925 record-btrace.c:1282
 msgid "At the start of the branch trace record.\n"
 msgstr ""
 
-#: record-btrace.c:926 record-btrace.c:1283
+#: record-btrace.c:927 record-btrace.c:1284
 msgid "At the end of the branch trace record.\n"
 msgstr ""
 
-#: record-btrace.c:953 record-btrace.c:956 record-btrace.c:1310
-#: record-btrace.c:1313
+#: record-btrace.c:954 record-btrace.c:957 record-btrace.c:1311
+#: record-btrace.c:1314
 msgid "Bad range."
 msgstr ""
 
-#: record-btrace.c:962 record-btrace.c:1319
+#: record-btrace.c:963 record-btrace.c:1320
 msgid "Range out of bounds."
 msgstr ""
 
-#: record-btrace.c:1189
+#: record-btrace.c:1190
 msgid "\tinst "
 msgstr ""
 
-#: record-btrace.c:1195
+#: record-btrace.c:1196
 msgid "\tat "
 msgstr ""
 
-#: record-btrace.c:1218 record-btrace.c:1347
+#: record-btrace.c:1219 record-btrace.c:1348
 msgid "Bad record function-call-history-size."
 msgstr ""
 
-#: record-btrace.c:1560
+#: record-btrace.c:1561
 msgid "Cannot write registers while replaying."
 msgstr ""
 
-#: record-btrace.c:1725
+#: record-btrace.c:1726
 msgid "Registers are not available in btrace record history"
 msgstr ""
 
-#: record-btrace.c:1733
+#: record-btrace.c:1734
 msgid "No caller in btrace record history"
 msgstr ""
 
-#: record-btrace.c:2444
+#: record-btrace.c:2445
 msgid "invalid stepping type."
 msgstr ""
 
-#: record-btrace.c:2828
+#: record-btrace.c:2829
 msgid "Instruction number out of range."
 msgstr ""
 
-#: record-btrace.c:2951
+#: record-btrace.c:2952
 msgid "\"set record btrace\" must be followed by an appropriate subcommand.\n"
 msgstr ""
 
-#: record-btrace.c:2971
+#: record-btrace.c:2972
 #, possible-c-format
 msgid "Replay memory access is %s.\n"
 msgstr ""
 
-#: record-btrace.c:2981 record-btrace.c:2992 record-btrace.c:3012
-#: record-btrace.c:3017 record-btrace.c:3047
+#: record-btrace.c:2982 record-btrace.c:2993 record-btrace.c:3013
+#: record-btrace.c:3018 record-btrace.c:3048
 #, possible-c-format
 msgid "Trailing junk: '%s'."
 msgstr ""
 
-#: record-btrace.c:3022
+#: record-btrace.c:3023
 msgid "Bad format.  See \"help set record btrace cpu\"."
 msgstr ""
 
-#: record-btrace.c:3025
+#: record-btrace.c:3026
 msgid "Cpu family too big."
 msgstr ""
 
-#: record-btrace.c:3028
+#: record-btrace.c:3029
 msgid "Cpu model too big."
 msgstr ""
 
-#: record-btrace.c:3031
+#: record-btrace.c:3032
 msgid "Cpu stepping too big."
 msgstr ""
 
-#: record-btrace.c:3052
+#: record-btrace.c:3053
 msgid "btrace cpu is 'auto'.\n"
 msgstr ""
 
-#: record-btrace.c:3056
+#: record-btrace.c:3057
 msgid "btrace cpu is 'none'.\n"
 msgstr ""
 
-#: record-btrace.c:3064
+#: record-btrace.c:3065
 #, possible-c-format
 msgid "btrace cpu is 'intel: %u/%u'.\n"
 msgstr ""
 
-#: record-btrace.c:3068
+#: record-btrace.c:3069
 #, possible-c-format
 msgid "btrace cpu is 'intel: %u/%u/%u'.\n"
 msgstr ""
 
-#: record-btrace.c:3076
+#: record-btrace.c:3077
 msgid "Internal error: bad cpu state."
 msgstr ""
 
-#: record-btrace.c:3084
+#: record-btrace.c:3085
 msgid ""
 "\"set record btrace bts\" must be followed by an appropriate subcommand.\n"
 msgstr ""
 
-#: record-btrace.c:3103
+#: record-btrace.c:3104
 msgid ""
 "\"set record btrace pt\" must be followed by an appropriate subcommand.\n"
 msgstr ""
 
-#: record-btrace.c:3124
+#: record-btrace.c:3125
 #, possible-c-format
 msgid "The record/replay bts buffer size is %s.\n"
 msgstr ""
 
-#: record-btrace.c:3135
+#: record-btrace.c:3136
 #, possible-c-format
 msgid "The record/replay pt buffer size is %s.\n"
 msgstr ""
 
-#: record-btrace.c:3145
+#: record-btrace.c:3146
 msgid "Start branch trace recording."
 msgstr ""
 
-#: record-btrace.c:3150
+#: record-btrace.c:3151
 msgid ""
 "Start branch trace recording in Branch Trace Store (BTS) format.\n"
 "\n"
@@ -23774,30 +23816,30 @@ msgid ""
 "This format may not be available on all processors."
 msgstr ""
 
-#: record-btrace.c:3158
+#: record-btrace.c:3159
 msgid ""
 "Start branch trace recording in Intel Processor Trace format.\n"
 "\n"
 "This format may not be available on all processors."
 msgstr ""
 
-#: record-btrace.c:3165 record.c:811 record-full.c:2834
+#: record-btrace.c:3166 record.c:811 record-full.c:2834
 msgid "Set record options."
 msgstr ""
 
-#: record-btrace.c:3169 record.c:815 record-full.c:2838
+#: record-btrace.c:3170 record.c:815 record-full.c:2838
 msgid "Show record options."
 msgstr ""
 
-#: record-btrace.c:3173
+#: record-btrace.c:3174
 msgid "Set what memory accesses are allowed during replay."
 msgstr ""
 
-#: record-btrace.c:3174
+#: record-btrace.c:3175
 msgid "Show what memory accesses are allowed during replay."
 msgstr ""
 
-#: record-btrace.c:3176
+#: record-btrace.c:3177
 msgid ""
 "Default is READ-ONLY.\n"
 "\n"
@@ -23810,7 +23852,7 @@ msgid ""
 "replay."
 msgstr ""
 
-#: record-btrace.c:3188
+#: record-btrace.c:3189
 msgid ""
 "Set the cpu to be used for trace decode.\n"
 "\n"
@@ -23827,35 +23869,35 @@ msgid ""
 "When set to \"none\", errata workarounds are disabled."
 msgstr ""
 
-#: record-btrace.c:3201
+#: record-btrace.c:3202
 msgid "Automatically determine the cpu to be used for trace decode."
 msgstr ""
 
-#: record-btrace.c:3205
+#: record-btrace.c:3206
 msgid "Do not enable errata workarounds for trace decode."
 msgstr ""
 
-#: record-btrace.c:3209
+#: record-btrace.c:3210
 msgid "Show the cpu to be used for trace decode."
 msgstr ""
 
-#: record-btrace.c:3214
+#: record-btrace.c:3215
 msgid "Set record btrace bts options."
 msgstr ""
 
-#: record-btrace.c:3219
+#: record-btrace.c:3220
 msgid "Show record btrace bts options."
 msgstr ""
 
-#: record-btrace.c:3225
+#: record-btrace.c:3226
 msgid "Set the record/replay bts buffer size."
 msgstr ""
 
-#: record-btrace.c:3226
+#: record-btrace.c:3227
 msgid "Show the record/replay bts buffer size."
 msgstr ""
 
-#: record-btrace.c:3226
+#: record-btrace.c:3227
 msgid ""
 "When starting recording request a trace buffer of this size.  The actual "
 "buffer size may differ from the requested size.  Use \"info record\" to see "
@@ -23867,23 +23909,23 @@ msgid ""
 "The trace buffer size may not be changed while recording."
 msgstr ""
 
-#: record-btrace.c:3238
+#: record-btrace.c:3239
 msgid "Set record btrace pt options."
 msgstr ""
 
-#: record-btrace.c:3243
+#: record-btrace.c:3244
 msgid "Show record btrace pt options."
 msgstr ""
 
-#: record-btrace.c:3249
+#: record-btrace.c:3250
 msgid "Set the record/replay pt buffer size."
 msgstr ""
 
-#: record-btrace.c:3250
+#: record-btrace.c:3251
 msgid "Show the record/replay pt buffer size."
 msgstr ""
 
-#: record-btrace.c:3250
+#: record-btrace.c:3251
 msgid ""
 "Bigger buffers allow longer recording but also take more time to process the "
 "recorded execution.\n"
@@ -26283,127 +26325,127 @@ msgid "%s in expression, near `%s'."
 msgstr ""
 
 #. Print the enum type name here to be more clear.
-#: rust-lang.c:476
+#: rust-lang.c:477
 #, possible-c-format
-msgid "%s {<No data fields>}"
+msgid "%s {%p[<No data fields>%p]}"
 msgstr ""
 
-#: rust-lang.c:612
+#: rust-lang.c:615
 msgid "Could not determine the array bounds"
 msgstr ""
 
-#: rust-lang.c:1177
+#: rust-lang.c:1180
 msgid "Method calls only supported on struct or enum types"
 msgstr ""
 
-#: rust-lang.c:1179
+#: rust-lang.c:1182
 msgid "Method call on nameless type"
 msgstr ""
 
-#: rust-lang.c:1186
+#: rust-lang.c:1189
 #, possible-c-format
 msgid "Could not find function named '%s'"
 msgstr ""
 
-#: rust-lang.c:1190
+#: rust-lang.c:1193
 #, possible-c-format
 msgid "Function '%s' takes no arguments"
 msgstr ""
 
-#: rust-lang.c:1259
+#: rust-lang.c:1262
 msgid "Range expression with different types"
 msgstr ""
 
-#: rust-lang.c:1368
+#: rust-lang.c:1371
 msgid "Can't take slice of array without '&'"
 msgstr ""
 
-#: rust-lang.c:1392
+#: rust-lang.c:1395
 msgid "Could not find 'data_ptr' in slice type"
 msgstr ""
 
-#: rust-lang.c:1397 rust-lang.c:1448
+#: rust-lang.c:1400 rust-lang.c:1451
 msgid "Cannot subscript non-array type"
 msgstr ""
 
-#: rust-lang.c:1427
+#: rust-lang.c:1430
 msgid "Can't compute array bounds"
 msgstr ""
 
-#: rust-lang.c:1429
+#: rust-lang.c:1432
 msgid "Found array with non-zero lower bound"
 msgstr ""
 
-#: rust-lang.c:1454
+#: rust-lang.c:1457
 msgid "Index less than zero"
 msgstr ""
 
-#: rust-lang.c:1456
+#: rust-lang.c:1459
 msgid "Index greater than length"
 msgstr ""
 
-#: rust-lang.c:1472
+#: rust-lang.c:1475
 msgid "High index less than zero"
 msgstr ""
 
-#: rust-lang.c:1474
+#: rust-lang.c:1477
 msgid "Low index greater than high index"
 msgstr ""
 
-#: rust-lang.c:1476
+#: rust-lang.c:1479
 msgid "High index greater than length"
 msgstr ""
 
-#: rust-lang.c:1639
+#: rust-lang.c:1642
 msgid "Array with negative number of elements"
 msgstr ""
 
-#: rust-lang.c:1680
+#: rust-lang.c:1683
 #, possible-c-format
 msgid "Cannot access field %d of empty enum %s"
 msgstr ""
 
-#: rust-lang.c:1703
+#: rust-lang.c:1706
 #, possible-c-format
 msgid "Cannot access field %d of variant %s::%s, there are only %d fields"
 msgstr ""
 
-#: rust-lang.c:1709
+#: rust-lang.c:1712
 #, possible-c-format
 msgid "Cannot access field %d of %s, there are only %d fields"
 msgstr ""
 
-#: rust-lang.c:1718
+#: rust-lang.c:1721
 #, possible-c-format
 msgid "Variant %s::%s is not a tuple variant"
 msgstr ""
 
-#: rust-lang.c:1722
+#: rust-lang.c:1725
 #, possible-c-format
 msgid ""
 "Attempting to access anonymous field %d of %s, which is not a tuple, tuple "
 "struct, or tuple-like variant"
 msgstr ""
 
-#: rust-lang.c:1731
+#: rust-lang.c:1734
 msgid ""
 "Anonymous field access is only allowed on tuples, tuple structs, and tuple-"
 "like enum variants"
 msgstr ""
 
-#: rust-lang.c:1752
+#: rust-lang.c:1755
 #, possible-c-format
 msgid "Cannot access field %s of empty enum %s"
 msgstr ""
 
-#: rust-lang.c:1769
+#: rust-lang.c:1772
 #, possible-c-format
 msgid ""
 "Attempting to access named field %s of tuple variant %s::%s, which has only "
 "anonymous fields"
 msgstr ""
 
-#: rust-lang.c:1781
+#: rust-lang.c:1784
 #, possible-c-format
 msgid "Could not find field %s of struct variant %s::%s"
 msgstr ""
@@ -26767,96 +26809,96 @@ msgid ""
 "renesas   - Enforce Renesas calling convention."
 msgstr ""
 
-#: skip.c:149
+#: skip.c:150
 msgid "regexp"
 msgstr ""
 
-#: skip.c:179
+#: skip.c:180
 msgid "No default file now."
 msgstr ""
 
-#: skip.c:191
+#: skip.c:192
 #, possible-c-format
 msgid "File %s will be skipped when stepping.\n"
 msgstr ""
 
-#: skip.c:202
+#: skip.c:203
 #, possible-c-format
 msgid "Function %s will be skipped when stepping.\n"
 msgstr ""
 
-#: skip.c:215
+#: skip.c:216
 msgid "No default function now."
 msgstr ""
 
-#: skip.c:220
+#: skip.c:221
 #, possible-c-format
 msgid "No function found containing current program point %s."
 msgstr ""
 
-#: skip.c:258 skip.c:266 skip.c:274 skip.c:282
+#: skip.c:259 skip.c:267 skip.c:275 skip.c:283
 #, possible-c-format
 msgid "Missing value for %s option."
 msgstr ""
 
-#: skip.c:287
+#: skip.c:288
 #, possible-c-format
 msgid "Invalid skip option: %s"
 msgstr ""
 
-#: skip.c:302
+#: skip.c:303
 msgid "Cannot specify both -file and -gfile."
 msgstr ""
 
-#: skip.c:305
+#: skip.c:306
 msgid "Cannot specify both -function and -rfunction."
 msgstr ""
 
-#: skip.c:334
+#: skip.c:335
 msgid "File(s)"
 msgstr ""
 
-#: skip.c:334
+#: skip.c:335
 msgid "File"
 msgstr ""
 
-#: skip.c:335
+#: skip.c:336
 msgid "file(s)"
 msgstr ""
 
-#: skip.c:337
+#: skip.c:338
 msgid "Function(s)"
 msgstr ""
 
-#: skip.c:337
+#: skip.c:338
 msgid "Function"
 msgstr ""
 
-#: skip.c:341 skip.c:346
+#: skip.c:342 skip.c:347
 #, possible-c-format
 msgid "%s %s will be skipped when stepping.\n"
 msgstr ""
 
-#: skip.c:351
+#: skip.c:352
 #, possible-c-format
 msgid "%s %s in %s %s will be skipped when stepping.\n"
 msgstr ""
 
-#: skip.c:376
+#: skip.c:377
 msgid "Not skipping any files or functions.\n"
 msgstr ""
 
-#: skip.c:379
+#: skip.c:380
 #, possible-c-format
 msgid "No skiplist entries found with number %s.\n"
 msgstr ""
 
-#: skip.c:445 skip.c:461 skip.c:485
+#: skip.c:450 skip.c:466 skip.c:490
 #, possible-c-format
 msgid "No skiplist entries found with number %s."
 msgstr ""
 
-#: skip.c:669
+#: skip.c:674
 msgid ""
 "Ignore a function while stepping.\n"
 "\n"
@@ -26872,21 +26914,21 @@ msgid ""
 "       -rfu|-rfunction FUNCTION-NAME-REGULAR-EXPRESSION"
 msgstr ""
 
-#: skip.c:684
+#: skip.c:689
 msgid ""
 "Ignore a file while stepping.\n"
 "Usage: skip file [FILE-NAME]\n"
 "If no filename is given, ignore the current file."
 msgstr ""
 
-#: skip.c:691
+#: skip.c:696
 msgid ""
 "Ignore a function while stepping.\n"
 "Usage: skip function [FUNCTION-NAME]\n"
 "If no function name is given, skip the current function."
 msgstr ""
 
-#: skip.c:698
+#: skip.c:703
 msgid ""
 "Enable skip entries.\n"
 "Usage: skip enable [NUMBER | RANGE]...\n"
@@ -26896,7 +26938,7 @@ msgid ""
 "If you don't specify any numbers or ranges, we'll enable all skip entries."
 msgstr ""
 
-#: skip.c:707
+#: skip.c:712
 msgid ""
 "Disable skip entries.\n"
 "Usage: skip disable [NUMBER | RANGE]...\n"
@@ -26907,7 +26949,7 @@ msgid ""
 "If you don't specify any numbers or ranges, we'll disable all skip entries."
 msgstr ""
 
-#: skip.c:716
+#: skip.c:721
 msgid ""
 "Delete skip entries.\n"
 "Usage: skip delete [NUMBER | RANGES]...\n"
@@ -26917,7 +26959,7 @@ msgid ""
 "If you don't specify any numbers or ranges, we'll delete all skip entries."
 msgstr ""
 
-#: skip.c:725
+#: skip.c:730
 msgid ""
 "Display the status of skips.\n"
 "Usage: info skip [NUMBER | RANGES]...\n"
@@ -26927,17 +26969,17 @@ msgid ""
 "If you don't specify any numbers or ranges, we'll show all skips."
 msgstr ""
 
-#: skip.c:734
+#: skip.c:739
 msgid ""
 "Set whether to print the debug output about skipping files and functions."
 msgstr ""
 
-#: skip.c:736
+#: skip.c:741
 msgid ""
 "Show whether the debug output about skipping files and functions is printed."
 msgstr ""
 
-#: skip.c:738
+#: skip.c:743
 msgid ""
 "When non-zero, debug output about skipping files and functions is displayed."
 msgstr ""
@@ -26979,7 +27021,7 @@ msgid "missing '(' in shared object path
 msgstr ""
 
 #. Arrange to free PATHNAME when the error is thrown.
-#: solib-aix.c:599 solib.c:471
+#: solib-aix.c:599 solib.c:472
 #, possible-c-format
 msgid "Could not open `%s' as an executable file: %s"
 msgstr ""
@@ -27026,50 +27068,50 @@ msgstr ""
 msgid "When on, solib-aix debugging traces are enabled."
 msgstr ""
 
-#: solib.c:103
+#: solib.c:104
 #, possible-c-format
 msgid ""
 "The search path for loading non-absolute shared library symbol files is %s.\n"
 msgstr ""
 
-#: solib.c:504
+#: solib.c:505
 #, possible-c-format
 msgid "`%s': not in executable format: %s"
 msgstr ""
 
-#: solib.c:510
+#: solib.c:511
 #, possible-c-format
 msgid ""
 "`%s': Shared library architecture %s is not compatible with target "
 "architecture %s."
 msgstr ""
 
-#: solib.c:552
+#: solib.c:553
 msgid "Shared library file name is too long."
 msgstr ""
 
-#: solib.c:557
+#: solib.c:558
 #, possible-c-format
 msgid "Can't find the file sections in `%s': %s"
 msgstr ""
 
-#: solib.c:705
+#: solib.c:706
 #, possible-c-format
 msgid "Error while reading shared library symbols for %s:\n"
 msgstr ""
 
-#: solib.c:883 solib.c:1341
+#: solib.c:884 solib.c:1342
 msgid "Error while mapping shared library sections:\n"
 msgstr ""
 
-#: solib.c:900
+#: solib.c:901
 #, possible-c-format
 msgid ""
 "Could not load shared library symbols for %s.\n"
 "Do you need \"set solib-search-path\" or \"set sysroot\"?"
 msgstr ""
 
-#: solib.c:905
+#: solib.c:906
 #, possible-c-format
 msgid ""
 "Could not load shared library symbols for %d libraries, e.g. %s.\n"
@@ -27077,68 +27119,68 @@ msgid ""
 "Do you need \"set solib-search-path\" or \"set sysroot\"?"
 msgstr ""
 
-#: solib.c:952
+#: solib.c:953
 #, possible-c-format
 msgid "Loading symbols for shared libraries: %s\n"
 msgstr ""
 
-#: solib.c:956 solib.c:1295
+#: solib.c:957 solib.c:1296
 msgid "Loading symbols for shared libraries.\n"
 msgstr ""
 
-#: solib.c:1001
+#: solib.c:1002
 #, possible-c-format
 msgid "Symbols already loaded for %s\n"
 msgstr ""
 
-#: solib.c:1116
+#: solib.c:1117
 msgid "No shared libraries matched.\n"
 msgstr ""
 
-#: solib.c:1118
+#: solib.c:1119
 msgid "No shared libraries loaded at this time.\n"
 msgstr ""
 
-#: solib.c:1123
+#: solib.c:1124
 msgid "(*): Shared library is missing debugging information.\n"
 msgstr ""
 
-#: solib.c:1424
+#: solib.c:1425
 #, possible-c-format
 msgid "\"%s\" is deprecated, use \"%s\" instead."
 msgstr ""
 
-#: solib.c:1426
+#: solib.c:1427
 #, possible-c-format
 msgid "sysroot set to \"%s\"."
 msgstr ""
 
-#: solib.c:1439
+#: solib.c:1440
 #, possible-c-format
 msgid "Autoloading of shared library symbols is %s.\n"
 msgstr ""
 
-#: solib.c:1585
+#: solib.c:1586
 msgid "Load shared object library symbols for files matching REGEXP."
 msgstr ""
 
-#: solib.c:1587
+#: solib.c:1588
 msgid "Status of loaded shared object libraries."
 msgstr ""
 
-#: solib.c:1590
+#: solib.c:1591
 msgid "Unload all shared object library symbols."
 msgstr ""
 
-#: solib.c:1593
+#: solib.c:1594
 msgid "Set autoloading of shared library symbols."
 msgstr ""
 
-#: solib.c:1594
+#: solib.c:1595
 msgid "Show autoloading of shared library symbols."
 msgstr ""
 
-#: solib.c:1595
+#: solib.c:1596
 msgid ""
 "If \"on\", symbols from all shared object libraries will be loaded\n"
 "automatically when the inferior begins execution, when the dynamic linker\n"
@@ -27146,32 +27188,32 @@ msgid ""
 "inferior.  Otherwise, symbols must be loaded manually, using `sharedlibrary'."
 msgstr ""
 
-#: solib.c:1606
+#: solib.c:1607
 msgid "Set an alternate system root."
 msgstr ""
 
-#: solib.c:1607
+#: solib.c:1608
 msgid "Show the current system root."
 msgstr ""
 
-#: solib.c:1608
+#: solib.c:1609
 msgid ""
 "The system root is used to load absolute shared library symbol files.\n"
 "For other (relative) files, you can add directories using\n"
 "`set solib-search-path'."
 msgstr ""
 
-#: solib.c:1622
+#: solib.c:1623
 msgid ""
 "Set the search path for loading non-absolute shared library symbol files."
 msgstr ""
 
-#: solib.c:1624
+#: solib.c:1625
 msgid ""
 "Show the search path for loading non-absolute shared library symbol files."
 msgstr ""
 
-#: solib.c:1626
+#: solib.c:1627
 msgid ""
 "This takes precedence over the environment variables PATH and "
 "LD_LIBRARY_PATH."
@@ -27521,136 +27563,136 @@ msgstr ""
 msgid "Show info on Solaris user threads."
 msgstr ""
 
-#: source.c:91
+#: source.c:97
 #, possible-c-format
 msgid "Number of source lines gdb will list by default is %s.\n"
 msgstr ""
 
-#: source.c:114
+#: source.c:120
 #, possible-c-format
 msgid "Filenames are displayed as \"%s\".\n"
 msgstr ""
 
-#: source.c:304
+#: source.c:322
 msgid "Can't find a default source file"
 msgstr ""
 
-#: source.c:408
+#: source.c:426
 msgid "Reinitialize source path to empty? "
 msgstr ""
 
-#: source.c:630
+#: source.c:650
 msgid "No current source file.\n"
 msgstr ""
 
-#: source.c:635
+#: source.c:655
 #, possible-c-format
 msgid "Current source file is %s\n"
 msgstr ""
 
-#: source.c:637
+#: source.c:657
 #, possible-c-format
 msgid "Compilation directory is %s\n"
 msgstr ""
 
-#: source.c:639
+#: source.c:659
 #, possible-c-format
 msgid "Located in %s\n"
 msgstr ""
 
-#: source.c:642
+#: source.c:662
 #, possible-c-format
 msgid "Contains %d line%s.\n"
 msgstr ""
 
-#: source.c:645
+#: source.c:665
 #, possible-c-format
 msgid "Source language is %s.\n"
 msgstr ""
 
-#: source.c:646
+#: source.c:666
 #, possible-c-format
 msgid "Producer is %s.\n"
 msgstr ""
 
-#: source.c:649
+#: source.c:669
 #, possible-c-format
 msgid "Compiled with %s debugging format.\n"
 msgstr ""
 
-#: source.c:651
+#: source.c:671
 #, possible-c-format
 msgid "%s preprocessor macro info.\n"
 msgstr ""
 
-#: source.c:1167
+#: source.c:1187
 msgid "invalid filename_display_string"
 msgstr ""
 
-#: source.c:1269
+#: source.c:1292
 #, possible-c-format
 msgid "Line number %d out of range; %s has %d lines."
 msgstr ""
 
-#: source.c:1406
+#: source.c:1431
 msgid "No line number information available"
 msgstr ""
 
 #. Is there any case in which we get here, and have an address
 #. which the user would want to see?  If we have debugging symbols
 #. and no line numbers?
-#: source.c:1466
+#: source.c:1491
 #, possible-c-format
 msgid "Line number %d is out of range for \"%s\".\n"
 msgstr ""
 
-#: source.c:1499
+#: source.c:1526
 msgid "Expression not found"
 msgstr ""
 
-#: source.c:1559
+#: source.c:1586
 msgid "Expression not found\n"
 msgstr ""
 
-#: source.c:1676
+#: source.c:1703
 msgid "Too many arguments in command"
 msgstr ""
 
-#: source.c:1685
+#: source.c:1712
 #, possible-c-format
 msgid "Source path substitution rule matching `%s':\n"
 msgstr ""
 
-#: source.c:1687
+#: source.c:1714
 msgid "List of all source path substitution rules:\n"
 msgstr ""
 
-#: source.c:1710 source.c:1761
+#: source.c:1737 source.c:1788
 msgid "Incorrect usage, too many arguments in command"
 msgstr ""
 
-#: source.c:1720
+#: source.c:1747
 msgid "Delete all source path substitution rules? "
 msgstr ""
 
-#: source.c:1721
+#: source.c:1748
 msgid "Canceled"
 msgstr ""
 
-#: source.c:1743
+#: source.c:1770
 #, possible-c-format
 msgid "No substitution rule defined for `%s'"
 msgstr ""
 
-#: source.c:1758
+#: source.c:1785
 msgid "Incorrect usage, too few arguments in command"
 msgstr ""
 
-#: source.c:1764
+#: source.c:1791
 msgid "First argument must be at least one character long"
 msgstr ""
 
-#: source.c:1826
+#: source.c:1852
 msgid ""
 "Add directory DIR to beginning of search path for source files.\n"
 "Forget cached info on source file locations and line positions.\n"
@@ -27659,15 +27701,15 @@ msgid ""
 "With no argument, reset the search path to $cdir:$cwd, the default."
 msgstr ""
 
-#: source.c:1842
+#: source.c:1868
 msgid "Set the search path for finding source files."
 msgstr ""
 
-#: source.c:1844
+#: source.c:1870
 msgid "Show the search path for finding source files."
 msgstr ""
 
-#: source.c:1846
+#: source.c:1872
 msgid ""
 "$cwd in the path means the current working directory.\n"
 "$cdir in the path means the compilation directory of the source file.\n"
@@ -27676,11 +27718,11 @@ msgid ""
 "Setting the value to an empty string sets it to $cdir:$cwd, the default."
 msgstr ""
 
-#: source.c:1857
+#: source.c:1883
 msgid "Information about the current source file."
 msgstr ""
 
-#: source.c:1859
+#: source.c:1885
 msgid ""
 "Core addresses of the code for a source line.\n"
 "Line can be specified as\n"
@@ -27695,35 +27737,35 @@ msgid ""
 "The address is also stored as the value of \"$_\"."
 msgstr ""
 
-#: source.c:1871
+#: source.c:1897
 msgid ""
 "Search for regular expression (see regex(3)) from last line listed.\n"
 "The matching line number is also stored as the value of \"$_\"."
 msgstr ""
 
-#: source.c:1877
+#: source.c:1903
 msgid ""
 "Search backward for regular expression (see regex(3)) from last line "
 "listed.\n"
 "The matching line number is also stored as the value of \"$_\"."
 msgstr ""
 
-#: source.c:1882
+#: source.c:1908
 msgid "Set number of source lines gdb will list by default."
 msgstr ""
 
-#: source.c:1883
+#: source.c:1909
 msgid "Show number of source lines gdb will list by default."
 msgstr ""
 
-#: source.c:1884
+#: source.c:1910
 msgid ""
 "Use this to choose how many source lines the \"list\" displays (unless\n"
 "the \"list\" argument explicitly specifies some other number).\n"
 "A value of \"unlimited\", or zero, means there's no limit."
 msgstr ""
 
-#: source.c:1893
+#: source.c:1919
 msgid ""
 "Add a substitution rule to rewrite the source directories.\n"
 "Usage: set substitute-path FROM TO\n"
@@ -27733,7 +27775,7 @@ msgid ""
 "is replaced by the new one."
 msgstr ""
 
-#: source.c:1903
+#: source.c:1929
 msgid ""
 "Delete one or all substitution rules rewriting the source directories.\n"
 "Usage: unset substitute-path [FROM]\n"
@@ -27742,7 +27784,7 @@ msgid ""
 "If the debugger cannot find a rule for FROM, it will display a warning."
 msgstr ""
 
-#: source.c:1912
+#: source.c:1938
 msgid ""
 "Show one or all substitution rules rewriting the source directories.\n"
 "Usage: show substitute-path [FROM]\n"
@@ -27750,15 +27792,15 @@ msgid ""
 "is not specified, print all substitution rules."
 msgstr ""
 
-#: source.c:1921
+#: source.c:1947
 msgid "Set how to display filenames."
 msgstr ""
 
-#: source.c:1922
+#: source.c:1948
 msgid "Show how to display filenames."
 msgstr ""
 
-#: source.c:1923
+#: source.c:1949
 msgid ""
 "filename-display can be:\n"
 "  basename - display only basename of a filename\n"
@@ -27858,112 +27900,112 @@ msgstr ""
 msgid "sparc32_pseudo_register_type: bad register number %d"
 msgstr ""
 
-#: stabsread.c:177
+#: stabsread.c:178
 #, possible-c-format
 msgid "invalid C++ abbreviation `%s'"
 msgstr ""
 
-#: stabsread.c:261
+#: stabsread.c:262
 #, possible-c-format
 msgid "Invalid symbol data: type number (%d,%d) out of range at symtab pos %d."
 msgstr ""
 
-#: stabsread.c:312
+#: stabsread.c:313
 msgid "GDB internal error: bad real_filenum"
 msgstr ""
 
-#: stabsread.c:681
+#: stabsread.c:682
 #, possible-c-format
 msgid "Bad stabs string '%s'"
 msgstr ""
 
-#: stabsread.c:733
+#: stabsread.c:734
 #, possible-c-format
 msgid "Unknown C++ symbol name `%s'"
 msgstr ""
 
-#: stabsread.c:1499
+#: stabsread.c:1496
 msgid "couldn't parse type; debugger out of date?"
 msgstr ""
 
 #. Complain and keep going, so compilers can invent new
 #. cross-reference types.
-#: stabsread.c:1619
+#: stabsread.c:1616
 #, possible-c-format
 msgid "Unrecognized cross-reference type `%c'"
 msgstr ""
 
-#: stabsread.c:1844
+#: stabsread.c:1841
 #, possible-c-format
 msgid ""
 "Prototyped function type didn't end arguments with `#':\n"
 "%s"
 msgstr ""
 
-#: stabsread.c:1956
+#: stabsread.c:1953
 #, possible-c-format
 msgid "invalid (minimal) member type data format at symtab pos %d."
 msgstr ""
 
-#: stabsread.c:2060
+#: stabsread.c:2057
 msgid "GDB internal error, type is NULL in stabsread.c."
 msgstr ""
 
-#: stabsread.c:2089
+#: stabsread.c:2086
 #, possible-c-format
 msgid "Unknown builtin type %d"
 msgstr ""
 
-#: stabsread.c:2255
+#: stabsread.c:2252
 #, possible-c-format
 msgid "Method has bad physname %s\n"
 msgstr ""
 
-#: stabsread.c:2444
+#: stabsread.c:2441
 #, possible-c-format
 msgid "const/volatile indicator missing, got '%c'"
 msgstr ""
 
 #. error
-#: stabsread.c:2527
+#: stabsread.c:2524
 #, possible-c-format
 msgid "member function type missing, got '%c'"
 msgstr ""
 
-#: stabsread.c:2781
+#: stabsread.c:2778
 #, possible-c-format
 msgid "C++ abbreviated type name unknown at symtab pos %d"
 msgstr ""
 
-#: stabsread.c:3141
+#: stabsread.c:3138
 #, possible-c-format
 msgid "Unknown virtual character `%c' for baseclass"
 msgstr ""
 
-#: stabsread.c:3158
+#: stabsread.c:3155
 #, possible-c-format
 msgid "Unknown visibility `%c' for baseclass"
 msgstr ""
 
 #. Virtual function table field not found.
-#: stabsread.c:3266
+#: stabsread.c:3263
 #, possible-c-format
 msgid "virtual function table pointer not found when defining class `%s'"
 msgstr ""
 
-#: stabsread.c:3378
+#: stabsread.c:3375
 #, possible-c-format
 msgid "Unknown visibility `%c' for field"
 msgstr ""
 
-#: stabsread.c:3414
+#: stabsread.c:3411
 #, possible-c-format
 msgid "struct/union type gets multiply defined: %s%s"
 msgstr ""
 
 #. Does this actually ever happen?  Is that why we are worrying
 #. about dealing with it rather than just calling error_type?
-#: stabsread.c:4205
+#: stabsread.c:4202
 #, possible-c-format
 msgid "base type %d of range type is not defined"
 msgstr ""
@@ -27972,23 +28014,23 @@ msgstr ""
 #. output contained `(0,41),(0,42)=@s8;-16;,(0,43),(0,1);' where should
 #. have been present ";-16,(0,43)" reference instead.  This way the
 #. excessive ";" marker prematurely stops the parameters parsing.
-#: stabsread.c:4246
+#: stabsread.c:4243
 msgid "Invalid (empty) method arguments"
 msgstr ""
 
-#: stabsread.c:4288
+#: stabsread.c:4285
 msgid "Invalid symbol data: common block within common block"
 msgstr ""
 
-#: stabsread.c:4313
+#: stabsread.c:4310
 msgid "ECOMM symbol unmatched by BCOMM"
 msgstr ""
 
-#: stabsread.c:4515
+#: stabsread.c:4514
 msgid "need a type name"
 msgstr ""
 
-#: stabsread.c:4541
+#: stabsread.c:4540
 #, possible-c-format
 msgid "forward-referenced types left unresolved, type code %d."
 msgstr ""
@@ -28004,15 +28046,15 @@ msgid "invalid symbol name \"%s\""
 msgstr ""
 
 #. show_cmd_cb
-#: stack.c:142
+#: stack.c:143
 msgid "Set printing of function arguments at function entry."
 msgstr ""
 
-#: stack.c:143
+#: stack.c:144
 msgid "Show printing of function arguments at function entry."
 msgstr ""
 
-#: stack.c:144
+#: stack.c:145
 msgid ""
 "GDB can sometimes determine the values of function arguments at entry,\n"
 "in addition to their current values.  This option tells GDB whether\n"
@@ -28021,126 +28063,126 @@ msgid ""
 msgstr ""
 
 #. show_cmd_cb
-#: stack.c:155
+#: stack.c:156
 msgid "Set printing of non-scalar frame arguments."
 msgstr ""
 
-#: stack.c:156
+#: stack.c:157
 msgid "Show printing of non-scalar frame arguments."
 msgstr ""
 
 #. show_cmd_cb
-#: stack.c:164 stack.c:3579
+#: stack.c:165 stack.c:3590
 msgid "Set whether to print frame arguments in raw form."
 msgstr ""
 
-#: stack.c:165 stack.c:3580
+#: stack.c:166 stack.c:3591
 msgid "Show whether to print frame arguments in raw form."
 msgstr ""
 
-#: stack.c:166 stack.c:3581
+#: stack.c:167 stack.c:3592
 msgid ""
 "If set, frame arguments are printed in raw form, bypassing any\n"
 "pretty-printers for that value."
 msgstr ""
 
 #. show_cmd_cb
-#: stack.c:175
+#: stack.c:176
 msgid "Set printing of frame information."
 msgstr ""
 
-#: stack.c:176
+#: stack.c:177
 msgid "Show printing of frame information."
 msgstr ""
 
-#: stack.c:198
+#: stack.c:199
 msgid "Print values of local variables."
 msgstr ""
 
-#: stack.c:204
+#: stack.c:205
 msgid "Prohibit frame filters from executing on a backtrace."
 msgstr ""
 
-#: stack.c:210
+#: stack.c:211
 msgid "Causes Python frame filter elided frames to not be printed."
 msgstr ""
 
-#: stack.c:883
+#: stack.c:889
 #, possible-c-format
 msgid "Debugger's willingness to use disassemble-next-line is %s.\n"
 msgstr ""
 
-#: stack.c:1130
+#: stack.c:1136
 msgid "Trying to set NULL pspace."
 msgstr ""
 
-#: stack.c:1496
+#: stack.c:1503
 #, possible-c-format
 msgid "Stack level %d, frame at "
 msgstr ""
 
-#: stack.c:1501
+#: stack.c:1508
 msgid "Stack frame at "
 msgstr ""
 
-#: stack.c:1563
+#: stack.c:1574
 #, possible-c-format
 msgid " Outermost frame: %s\n"
 msgstr ""
 
-#: stack.c:1847
+#: stack.c:1858
 #, possible-c-format
 msgid "No frame at level %s."
 msgstr ""
 
-#: stack.c:1861
+#: stack.c:1872
 #, possible-c-format
 msgid "No frame at address %s."
 msgstr ""
 
-#: stack.c:1875
+#: stack.c:1886
 msgid "Missing address argument to view a frame"
 msgstr ""
 
-#: stack.c:1903
+#: stack.c:1914
 msgid "Missing function name argument"
 msgstr ""
 
-#: stack.c:1906
+#: stack.c:1917
 #, possible-c-format
 msgid "No frame for function \"%s\"."
 msgstr ""
 
-#: stack.c:2062
+#: stack.c:2073
 #, possible-c-format
 msgid "Backtrace stopped: %s\n"
 msgstr ""
 
-#: stack.c:2382
+#: stack.c:2393
 msgid "PC unavailable, cannot determine locals.\n"
 msgstr ""
 
-#: stack.c:2414
+#: stack.c:2425
 msgid "No locals.\n"
 msgstr ""
 
-#: stack.c:2416
+#: stack.c:2427
 msgid "No matching locals.\n"
 msgstr ""
 
-#: stack.c:2556
+#: stack.c:2567
 msgid "PC unavailable, cannot determine args.\n"
 msgstr ""
 
-#: stack.c:2584
+#: stack.c:2595
 msgid "No arguments.\n"
 msgstr ""
 
-#: stack.c:2586
+#: stack.c:2597
 msgid "No matching arguments.\n"
 msgstr ""
 
-#: stack.c:2674
+#: stack.c:2685
 msgid "Initial frame selected; you cannot go up."
 msgstr ""
 
@@ -28148,76 +28190,76 @@ msgstr ""
 #. "down" means to really go down (and let me know if that is
 #. impossible), but "down 9999" can be used to mean go all the
 #. way down without getting an error.
-#: stack.c:2711
+#: stack.c:2722
 msgid "Bottom (innermost) frame selected; you cannot go down."
 msgstr ""
 
-#: stack.c:2747
+#: stack.c:2758
 msgid "Can not force return from an inlined function."
 msgstr ""
 
-#: stack.c:2770
+#: stack.c:2781
 msgid ""
 "Return value type not available for selected stack frame.\n"
 "Please use an explicit cast of the value to return."
 msgstr ""
 
-#: stack.c:2817
+#: stack.c:2828
 #, possible-c-format
 msgid "%sMake selected stack frame return now? "
 msgstr ""
 
-#: stack.c:2822
+#: stack.c:2833
 msgid "Function does not return normally to caller."
 msgstr ""
 
-#: stack.c:2823
+#: stack.c:2834
 #, possible-c-format
 msgid "%sMake %s return now? "
 msgstr ""
 
-#: stack.c:2827
+#: stack.c:2838
 msgid "Not confirmed"
 msgstr ""
 
-#: stack.c:2920
+#: stack.c:2931
 #, possible-c-format
 msgid "'%s' not within current stack frame."
 msgstr ""
 
-#: stack.c:2937
+#: stack.c:2948
 msgid "Disables printing the frame location information."
 msgstr ""
 
-#: stack.c:2942 thread.c:1564
+#: stack.c:2953 thread.c:1564
 msgid "Print any error raised by COMMAND and continue."
 msgstr ""
 
-#: stack.c:2947 thread.c:1569
+#: stack.c:2958 thread.c:1569
 msgid "Silently ignore any errors or empty output produced by COMMAND."
 msgstr ""
 
-#: stack.c:3002
+#: stack.c:3013
 msgid "Please specify a command to apply on the selected frames"
 msgstr ""
 
-#: stack.c:3032 stack.c:3043
+#: stack.c:3043 stack.c:3054
 msgid "frame apply unable to get selected frame."
 msgstr ""
 
-#: stack.c:3180
+#: stack.c:3191
 msgid "Missing or invalid LEVEL... argument"
 msgstr ""
 
-#: stack.c:3228
+#: stack.c:3239
 msgid "Missing COUNT argument."
 msgstr ""
 
-#: stack.c:3231
+#: stack.c:3242
 msgid "Invalid COUNT argument."
 msgstr ""
 
-#: stack.c:3311
+#: stack.c:3322
 msgid ""
 "Make selected stack frame return to its caller.\n"
 "Control remains in the debugger, but when you continue\n"
@@ -28225,31 +28267,31 @@ msgid ""
 "If an argument is given, it is an expression for the value to return."
 msgstr ""
 
-#: stack.c:3317
+#: stack.c:3328
 msgid ""
 "Select and print stack frame that called this one.\n"
 "An argument says how many frames up to go."
 msgstr ""
 
-#: stack.c:3320
+#: stack.c:3331
 msgid ""
 "Same as the `up' command, but does not print anything.\n"
 "This is useful in command scripts."
 msgstr ""
 
-#: stack.c:3324
+#: stack.c:3335
 msgid ""
 "Select and print stack frame called by this one.\n"
 "An argument says how many frames down to go."
 msgstr ""
 
-#: stack.c:3329
+#: stack.c:3340
 msgid ""
 "Same as the `down' command, but does not print anything.\n"
 "This is useful in command scripts."
 msgstr ""
 
-#: stack.c:3334 stack.c:3400
+#: stack.c:3345 stack.c:3411
 msgid ""
 "Select and print a stack frame.\n"
 "With no argument, print the selected stack frame.  (See also \"info frame"
@@ -28257,7 +28299,7 @@ msgid ""
 "A single numerical argument specifies the frame to select."
 msgstr ""
 
-#: stack.c:3354
+#: stack.c:3365
 msgid ""
 "Apply a command to a number of frames.\n"
 "Usage: frame apply COUNT [OPTION]... COMMAND\n"
@@ -28265,14 +28307,14 @@ msgid ""
 "frames.\n"
 msgstr ""
 
-#: stack.c:3367
+#: stack.c:3378
 msgid ""
 "Apply a command to all frames.\n"
 "\n"
 "Usage: frame apply all [OPTION]... COMMAND\n"
 msgstr ""
 
-#: stack.c:3379
+#: stack.c:3390
 msgid ""
 "Apply a command to a list of frames.\n"
 "\n"
@@ -28280,7 +28322,7 @@ msgid ""
 "LEVEL is a space-separated list of levels of frames to apply COMMAND on.\n"
 msgstr ""
 
-#: stack.c:3392
+#: stack.c:3403
 msgid ""
 "Apply a command to all frames (ignoring errors and empty output).\n"
 "Usage: faas [OPTION]... COMMAND\n"
@@ -28288,14 +28330,14 @@ msgid ""
 "See \"help frame apply all\" for available options."
 msgstr ""
 
-#: stack.c:3408
+#: stack.c:3419
 msgid ""
 "Select and print a stack frame by stack address.\n"
 "\n"
 "Usage: frame address STACK-ADDRESS"
 msgstr ""
 
-#: stack.c:3415
+#: stack.c:3426
 msgid ""
 "View a stack frame that might be outside the current backtrace.\n"
 "\n"
@@ -28303,7 +28345,7 @@ msgid ""
 "       frame view STACK-ADDRESS PC-ADDRESS"
 msgstr ""
 
-#: stack.c:3423
+#: stack.c:3434
 msgid ""
 "Select and print a stack frame by function name.\n"
 "\n"
@@ -28312,27 +28354,27 @@ msgid ""
 "The innermost frame that visited function NAME is selected."
 msgstr ""
 
-#: stack.c:3434
+#: stack.c:3445
 msgid ""
 "Select and print a stack frame by level.\n"
 "\n"
 "Usage: frame level LEVEL"
 msgstr ""
 
-#: stack.c:3441
+#: stack.c:3452
 msgid ""
 "Select a stack frame without printing anything.\n"
 "A single numerical argument specifies the frame to select."
 msgstr ""
 
-#: stack.c:3448
+#: stack.c:3459
 msgid ""
 "Select a stack frame by stack address.\n"
 "\n"
 "Usage: select-frame address STACK-ADDRESS"
 msgstr ""
 
-#: stack.c:3457
+#: stack.c:3468
 msgid ""
 "Select a stack frame that might be outside the current backtrace.\n"
 "\n"
@@ -28340,21 +28382,21 @@ msgid ""
 "       select-frame view STACK-ADDRESS PC-ADDRESS"
 msgstr ""
 
-#: stack.c:3466
+#: stack.c:3477
 msgid ""
 "Select a stack frame by function name.\n"
 "\n"
 "Usage: select-frame function NAME"
 msgstr ""
 
-#: stack.c:3475
+#: stack.c:3486
 msgid ""
 "Select a stack frame by level.\n"
 "\n"
 "Usage: select-frame level LEVEL"
 msgstr ""
 
-#: stack.c:3486
+#: stack.c:3497
 msgid ""
 "Print backtrace of all stack frames, or innermost COUNT frames.\n"
 "Usage: backtrace [OPTION]... [QUALIFIER]... [COUNT | -COUNT]\n"
@@ -28371,11 +28413,11 @@ msgid ""
 "With a negative COUNT, print outermost -COUNT frames."
 msgstr ""
 
-#: stack.c:3511
+#: stack.c:3522
 msgid "Backtrace of the stack, or innermost COUNT frames."
 msgstr ""
 
-#: stack.c:3515
+#: stack.c:3526
 msgid ""
 "All about the selected stack frame.\n"
 "With no arguments, displays information about the currently selected stack\n"
@@ -28383,14 +28425,14 @@ msgid ""
 "the information is then printed about the specified frame."
 msgstr ""
 
-#: stack.c:3523
+#: stack.c:3534
 msgid ""
 "Print information about a stack frame selected by stack address.\n"
 "\n"
 "Usage: info frame address STACK-ADDRESS"
 msgstr ""
 
-#: stack.c:3530
+#: stack.c:3541
 msgid ""
 "Print information about a stack frame outside the current backtrace.\n"
 "\n"
@@ -28398,59 +28440,59 @@ msgid ""
 "       info frame view STACK-ADDRESS PC-ADDRESS"
 msgstr ""
 
-#: stack.c:3538
+#: stack.c:3549
 msgid ""
 "Print information about a stack frame selected by function name.\n"
 "\n"
 "Usage: info frame function NAME"
 msgstr ""
 
-#: stack.c:3546
+#: stack.c:3557
 msgid ""
 "Print information about a stack frame selected by level.\n"
 "\n"
 "Usage: info frame level LEVEL"
 msgstr ""
 
-#: stack.c:3553
+#: stack.c:3564
 msgid ""
 "All local variables of current stack frame or those matching REGEXPs.\n"
 "Usage: info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the local variables of the current stack frame.\n"
 msgstr ""
 
-#: stack.c:3557
+#: stack.c:3568
 msgid "local variables"
 msgstr ""
 
-#: stack.c:3561
+#: stack.c:3572
 msgid ""
 "All argument variables of current stack frame or those matching REGEXPs.\n"
 "Usage: info args [-q] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the argument variables of the current stack frame.\n"
 msgstr ""
 
-#: stack.c:3565
+#: stack.c:3576
 msgid "argument variables"
 msgstr ""
 
-#: stack.c:3570
+#: stack.c:3581
 msgid ""
 "Select the stack frame that contains NAME.\n"
 "Usage: func NAME"
 msgstr ""
 
-#: stack.c:3589
+#: stack.c:3600
 msgid ""
 "Set whether to disassemble next source line or insn when execution stops."
 msgstr ""
 
-#: stack.c:3591
+#: stack.c:3602
 msgid ""
 "Show whether to disassemble next source line or insn when execution stops."
 msgstr ""
 
-#: stack.c:3593
+#: stack.c:3604
 msgid ""
 "If ON, GDB will display disassembly of the next source line, in addition\n"
 "to displaying the source line itself.  If the next source line cannot\n"
@@ -28635,130 +28677,136 @@ msgstr ""
 msgid "Load new symbol table from \"%s\"? "
 msgstr ""
 
-#: symfile.c:1110
-msgid "Reading symbols from "
+#: symfile.c:1109
+#, possible-c-format
+msgid "Reading symbols from %ps...\n"
 msgstr ""
 
-#: symfile.c:1125
+#: symfile.c:1122
 #, possible-c-format
-msgid "Expanding full symbols from %s...\n"
+msgid "Expanding full symbols from %ps...\n"
 msgstr ""
 
-#: symfile.c:1249
+#: symfile.c:1135
+#, possible-c-format
+msgid "(No debugging symbols found in %ps)\n"
+msgstr ""
+
+#: symfile.c:1248
 #, possible-c-format
 msgid "Discard symbol table from `%s'? "
 msgstr ""
 
-#: symfile.c:1251
+#: symfile.c:1250
 msgid "Discard symbol table? "
 msgstr ""
 
-#: symfile.c:1262
+#: symfile.c:1261
 msgid "No symbol file now.\n"
 msgstr ""
 
-#: symfile.c:1322
+#: symfile.c:1321
 msgid " no, same file as the objfile.\n"
 msgstr ""
 
-#: symfile.c:1336 symfile.c:1354
+#: symfile.c:1335 symfile.c:1353
 msgid " no, error computing CRC.\n"
 msgstr ""
 
-#: symfile.c:1361
+#: symfile.c:1360
 #, possible-c-format
 msgid ""
 "the debug information found in \"%s\" does not match \"%s\" (CRC mismatch).\n"
 msgstr ""
 
-#: symfile.c:1366
+#: symfile.c:1365
 msgid " no, CRC doesn't match.\n"
 msgstr ""
 
-#: symfile.c:1383
+#: symfile.c:1382
 #, possible-c-format
 msgid ""
 "The directory where separate debug symbols are searched for is \"%s\".\n"
 msgstr ""
 
-#: symfile.c:1407
+#: symfile.c:1406
 #, possible-c-format
 msgid ""
 "\n"
 "Looking for separate debug info (debug link) for %s\n"
 msgstr ""
 
-#: symfile.c:1594
+#: symfile.c:1593
 msgid "-readnow and -readnever cannot be used simultaneously"
 msgstr ""
 
-#: symfile.c:1641 symfile.c:1658 symfile.c:2270 symfile.c:2300
+#: symfile.c:1640 symfile.c:1657 symfile.c:2269 symfile.c:2299
 #, possible-c-format
 msgid "Unrecognized argument \"%s\""
 msgstr ""
 
-#: symfile.c:1651 symfile.c:2292
+#: symfile.c:1650 symfile.c:2291
 msgid "Missing argument to -o"
 msgstr ""
 
-#: symfile.c:1662
+#: symfile.c:1661
 msgid "no symbol file name was specified"
 msgstr ""
 
-#: symfile.c:1813
+#: symfile.c:1812
 #, possible-c-format
 msgid "I'm sorry, Dave, I can't do that.  Symbol format `%s' unknown."
 msgstr ""
 
-#: symfile.c:1972
+#: symfile.c:1971
 #, possible-c-format
 msgid "Download verify read failed at %s"
 msgstr ""
 
-#: symfile.c:1975
+#: symfile.c:1974
 #, possible-c-format
 msgid "Download verify compare failed at %s"
 msgstr ""
 
-#: symfile.c:1987
+#: symfile.c:1986
 msgid "Canceled the download"
 msgstr ""
 
-#: symfile.c:2039
+#: symfile.c:2038
 msgid "file to load"
 msgstr ""
 
-#: symfile.c:2054
+#: symfile.c:2053
 #, possible-c-format
 msgid "Invalid download offset:%s."
 msgstr ""
 
-#: symfile.c:2057
+#: symfile.c:2056
 msgid "Too many parameters."
 msgstr ""
 
-#: symfile.c:2067
+#: symfile.c:2066
 #, possible-c-format
 msgid "\"%s\" is not an object file: %s"
 msgstr ""
 
-#: symfile.c:2082
+#: symfile.c:2081
 msgid "Load failed"
 msgstr ""
 
-#: symfile.c:2247
+#: symfile.c:2246
 msgid "add-symbol-file takes a file name and an address"
 msgstr ""
 
-#: symfile.c:2279
+#: symfile.c:2278
 msgid "Missing section name after \"-s\""
 msgstr ""
 
-#: symfile.c:2281
+#: symfile.c:2280
 msgid "Missing section address after \"-s\""
 msgstr ""
 
-#: symfile.c:2304
+#: symfile.c:2303
 msgid "You must provide a filename to be loaded."
 msgstr ""
 
@@ -28767,157 +28815,157 @@ msgstr ""
 #. functions.  We have to split this up into separate print
 #. statements because hex_string returns a local static
 #. string.
-#: symfile.c:2314
+#: symfile.c:2313
 #, possible-c-format
 msgid "add symbol table from file \"%s\""
 msgstr ""
 
-#: symfile.c:2327
+#: symfile.c:2326
 msgid " at\n"
 msgstr ""
 
-#: symfile.c:2347
+#: symfile.c:2346
 #, possible-c-format
 msgid "%s offset by %s\n"
 msgstr ""
 
-#: symfile.c:2349
+#: symfile.c:2348
 msgid " with all sections"
 msgstr ""
 
-#: symfile.c:2350
+#: symfile.c:2349
 msgid "with other sections"
 msgstr ""
 
-#: symfile.c:2361
+#: symfile.c:2360
 #, possible-c-format
 msgid "newly-added symbol file \"%s\" does not provide any symbols"
 msgstr ""
 
-#: symfile.c:2386
+#: symfile.c:2385
 msgid "remove-symbol-file: no symbol file provided"
 msgstr ""
 
-#: symfile.c:2396
+#: symfile.c:2395
 msgid "Missing address argument"
 msgstr ""
 
-#: symfile.c:2399 symfile.c:2420
+#: symfile.c:2398 symfile.c:2419
 #, possible-c-format
 msgid "Junk after %s"
 msgstr ""
 
-#: symfile.c:2438
+#: symfile.c:2437
 msgid "No symbol file found"
 msgstr ""
 
-#: symfile.c:2441
+#: symfile.c:2440
 #, possible-c-format
 msgid "Remove symbol table from file \"%s\"? "
 msgstr ""
 
 #. FIXME, should use print_sys_errmsg but it's not filtered.
-#: symfile.c:2479
+#: symfile.c:2478
 #, possible-c-format
 msgid "`%s' has disappeared; keeping its symbols.\n"
 msgstr ""
 
-#: symfile.c:2489
+#: symfile.c:2488
 #, possible-c-format
 msgid "`%s' has changed; re-reading symbols.\n"
 msgstr ""
 
-#: symfile.c:2550
+#: symfile.c:2549
 #, possible-c-format
 msgid "Can't open %s to read symbols."
 msgstr ""
 
-#: symfile.c:2557
+#: symfile.c:2556
 #, possible-c-format
 msgid "Can't read symbols from %s: %s."
 msgstr ""
 
-#: symfile.c:2642
+#: symfile.c:2641
 msgid "(no debugging symbols found)\n"
 msgstr ""
 
-#: symfile.c:2711
+#: symfile.c:2710
 #, possible-c-format
 msgid "Mapping between filename extension and source language is \"%s\".\n"
 msgstr ""
 
-#: symfile.c:2725
+#: symfile.c:2724
 #, possible-c-format
 msgid "'%s': Filename extension must begin with '.'"
 msgstr ""
 
-#: symfile.c:2732 symfile.c:2743
+#: symfile.c:2731 symfile.c:2742
 #, possible-c-format
 msgid "'%s': two arguments required -- filename extension and language"
 msgstr ""
 
-#: symfile.c:2778
+#: symfile.c:2777
 msgid "Filename extensions and the languages they represent:"
 msgstr ""
 
-#: symfile.c:3260
+#: symfile.c:3259
 msgid "No sections are mapped.\n"
 msgstr ""
 
-#: symfile.c:3272 symfile.c:3318
+#: symfile.c:3271 symfile.c:3317
 msgid ""
 "Overlay debugging not enabled.  Use either the 'overlay auto' or\n"
 "the 'overlay manual' command."
 msgstr ""
 
-#: symfile.c:3277 symfile.c:3323
+#: symfile.c:3276 symfile.c:3322
 msgid "Argument required: name of an overlay section"
 msgstr ""
 
-#: symfile.c:3299
+#: symfile.c:3298
 #, possible-c-format
 msgid "Note: section %s unmapped by overlap\n"
 msgstr ""
 
-#: symfile.c:3305 symfile.c:3335
+#: symfile.c:3304 symfile.c:3334
 #, possible-c-format
 msgid "No overlay section called %s"
 msgstr ""
 
-#: symfile.c:3331
+#: symfile.c:3330
 #, possible-c-format
 msgid "Section %s is not mapped"
 msgstr ""
 
-#: symfile.c:3348
+#: symfile.c:3347
 msgid "Automatic overlay debugging enabled."
 msgstr ""
 
-#: symfile.c:3361
+#: symfile.c:3360
 msgid "Overlay debugging enabled."
 msgstr ""
 
-#: symfile.c:3374
+#: symfile.c:3373
 msgid "Overlay debugging disabled."
 msgstr ""
 
-#: symfile.c:3385
+#: symfile.c:3384
 msgid "This target does not know how to read its overlay state."
 msgstr ""
 
-#: symfile.c:3488
+#: symfile.c:3487
 msgid ""
 "Error reading inferior's overlay table: couldn't find `_novlys' variable\n"
 "in inferior.  Use `overlay manual' mode."
 msgstr ""
 
-#: symfile.c:3497 symfile.c:3577
+#: symfile.c:3496 symfile.c:3576
 msgid ""
 "Error reading inferior's overlay table: couldn't find `_ovly_table' array\n"
 "in inferior.  Use `overlay manual' mode."
 msgstr ""
 
-#: symfile.c:3912
+#: symfile.c:3911
 msgid ""
 "Load symbol table from executable file FILE.\n"
 "Usage: symbol-file [-readnow | -readnever] [-o OFF] FILE\n"
@@ -28926,7 +28974,7 @@ msgid ""
 "to execute.\n"
 msgstr ""
 
-#: symfile.c:3920
+#: symfile.c:3919
 msgid ""
 "Load symbols from FILE, assuming FILE has been dynamically loaded.\n"
 "Usage: add-symbol-file FILE [-readnow | -readnever] [-o OFF] [ADDR] [-s SECT-"
@@ -28939,7 +28987,7 @@ msgid ""
 "of all sections for which no other address was specified.\n"
 msgstr ""
 
-#: symfile.c:3935
+#: symfile.c:3934
 msgid ""
 "Remove a symbol file added via the add-symbol-file command.\n"
 "Usage: remove-symbol-file FILENAME\n"
@@ -28948,7 +28996,7 @@ msgid ""
 "that lies within the boundaries of this symbol file in memory."
 msgstr ""
 
-#: symfile.c:3943
+#: symfile.c:3942
 msgid ""
 "Dynamically load FILE into the running program.\n"
 "FILE symbols are recorded for access from GDB.\n"
@@ -28958,77 +29006,77 @@ msgid ""
 "on its own."
 msgstr ""
 
-#: symfile.c:3953
+#: symfile.c:3952
 msgid "Commands for debugging overlays."
 msgstr ""
 
-#: symfile.c:3960
+#: symfile.c:3959
 msgid "Assert that an overlay section is mapped."
 msgstr ""
 
-#: symfile.c:3963
+#: symfile.c:3962
 msgid "Assert that an overlay section is unmapped."
 msgstr ""
 
-#: symfile.c:3966
+#: symfile.c:3965
 msgid "List mappings of overlay sections."
 msgstr ""
 
-#: symfile.c:3969
+#: symfile.c:3968
 msgid "Enable overlay debugging."
 msgstr ""
 
-#: symfile.c:3971
+#: symfile.c:3970
 msgid "Disable overlay debugging."
 msgstr ""
 
-#: symfile.c:3973
+#: symfile.c:3972
 msgid "Enable automatic overlay debugging."
 msgstr ""
 
-#: symfile.c:3975
+#: symfile.c:3974
 msgid "Read the overlay mapping state from the target."
 msgstr ""
 
-#: symfile.c:3979
+#: symfile.c:3978
 msgid "Set mapping between filename extension and source language."
 msgstr ""
 
-#: symfile.c:3980
+#: symfile.c:3979
 msgid "Show mapping between filename extension and source language."
 msgstr ""
 
-#: symfile.c:3981
+#: symfile.c:3980
 msgid "Usage: set extension-language .foo bar"
 msgstr ""
 
-#: symfile.c:3988
+#: symfile.c:3987
 msgid "All filename extensions associated with a source language."
 msgstr ""
 
-#: symfile.c:3991
+#: symfile.c:3990
 msgid "Set the directories where separate debug symbols are searched for."
 msgstr ""
 
-#: symfile.c:3992
+#: symfile.c:3991
 msgid "Show the directories where separate debug symbols are searched for."
 msgstr ""
 
-#: symfile.c:3993
+#: symfile.c:3992
 msgid ""
 "Separate debug symbols are first searched for in the same\n"
 "directory as the binary, then in the `"
 msgstr ""
 
-#: symfile.c:4004
+#: symfile.c:4003
 msgid "Set printing of symbol loading messages."
 msgstr ""
 
-#: symfile.c:4005
+#: symfile.c:4004
 msgid "Show printing of symbol loading messages."
 msgstr ""
 
-#: symfile.c:4006
+#: symfile.c:4005
 msgid ""
 "off   == turn all messages off\n"
 "brief == print messages for the executable,\n"
@@ -29037,15 +29085,15 @@ msgid ""
 "         and messages for each shared library."
 msgstr ""
 
-#: symfile.c:4017
+#: symfile.c:4016
 msgid "Set printing of separate debug info file search debug."
 msgstr ""
 
-#: symfile.c:4018
+#: symfile.c:4017
 msgid "Show printing of separate debug info file search debug."
 msgstr ""
 
-#: symfile.c:4019
+#: symfile.c:4018
 msgid ""
 "When on, GDB prints the searched locations while looking for separate debug "
 "info files."
@@ -29179,78 +29227,78 @@ msgstr ""
 msgid "  Total memory used for file name cache: %d\n"
 msgstr ""
 
-#: symmisc.c:263
+#: symmisc.c:267
 #, possible-c-format
 msgid "internal error:  minimal symbol count %d != %d"
 msgstr ""
 
-#: symmisc.c:462
+#: symmisc.c:466
 #, possible-c-format
 msgid "No symtab for address: %s"
 msgstr ""
 
-#: symmisc.c:502
+#: symmisc.c:506
 #, possible-c-format
 msgid "No symtab for source file: %s"
 msgstr ""
 
-#: symmisc.c:911
+#: symmisc.c:915
 msgid "Extra arguments after regexp."
 msgstr ""
 
-#: symmisc.c:969
+#: symmisc.c:973
 #, possible-c-format
 msgid "objfile: %s ((struct objfile *) %s)\n"
 msgstr ""
 
-#: symmisc.c:972
+#: symmisc.c:976
 #, possible-c-format
 msgid "compunit_symtab: ((struct compunit_symtab *) %s)\n"
 msgstr ""
 
-#: symmisc.c:974
+#: symmisc.c:978
 #, possible-c-format
 msgid "symtab: %s ((struct symtab *) %s)\n"
 msgstr ""
 
-#: symmisc.c:978
+#: symmisc.c:982
 #, possible-c-format
 msgid "linetable: ((struct linetable *) %s):\n"
 msgstr ""
 
-#: symmisc.c:982
+#: symmisc.c:986
 msgid "No line table.\n"
 msgstr ""
 
-#: symmisc.c:984
+#: symmisc.c:988
 msgid "Line table has no lines.\n"
 msgstr ""
 
 #. Leave space for 6 digits of index and line number.  After that the
 #. tables will just not format as well.
-#: symmisc.c:991
+#: symmisc.c:995
 #, possible-c-format
 msgid "%-6s %6s %s\n"
 msgstr ""
 
-#: symmisc.c:992
+#: symmisc.c:996
 msgid "INDEX"
 msgstr ""
 
-#: symmisc.c:992
+#: symmisc.c:996
 msgid "LINE"
 msgstr ""
 
-#: symmisc.c:992
+#: symmisc.c:996
 msgid "ADDRESS"
 msgstr ""
 
-#: symmisc.c:999
+#: symmisc.c:1003
 #, possible-c-format
 msgid "%-6d %6d %s\n"
 msgstr ""
 
-#: symmisc.c:1047
+#: symmisc.c:1051
 msgid ""
 "Print dump of current symbol definitions.\n"
 "Usage: mt print symbols [-pc ADDRESS] [--] [OUTFILE]\n"
@@ -29262,7 +29310,7 @@ msgid ""
 "If OBJFILE is provided, dump only that file's minimal symbols."
 msgstr ""
 
-#: symmisc.c:1058
+#: symmisc.c:1062
 msgid ""
 "Print dump of current minimal symbol definitions.\n"
 "Usage: mt print msymbols [-objfile OBJFILE] [--] [OUTFILE]\n"
@@ -29271,13 +29319,13 @@ msgid ""
 "If OBJFILE is provided, dump only that file's minimal symbols."
 msgstr ""
 
-#: symmisc.c:1067
+#: symmisc.c:1071
 msgid ""
 "Print dump of current object file definitions.\n"
 "With an argument REGEXP, list the object files with matching names."
 msgstr ""
 
-#: symmisc.c:1071
+#: symmisc.c:1075
 msgid ""
 "List the full symbol tables for all object files.\n"
 "This does not include information about individual symbols, blocks, or\n"
@@ -29285,18 +29333,18 @@ msgid ""
 "With an argument REGEXP, list the symbol tables with matching names."
 msgstr ""
 
-#: symmisc.c:1078
+#: symmisc.c:1082
 msgid ""
 "List the contents of all line tables, from all symbol tables.\n"
 "With an argument REGEXP, list just the line tables for the symbol\n"
 "tables with matching names."
 msgstr ""
 
-#: symmisc.c:1085
+#: symmisc.c:1089
 msgid "Check consistency of currently expanded symtabs."
 msgstr ""
 
-#: symmisc.c:1090
+#: symmisc.c:1094
 msgid ""
 "Expand symbol tables.\n"
 "With an argument REGEXP, only expand the symbol tables with matching names."
@@ -29334,128 +29382,140 @@ msgid ""
 "\t (if a template, try specifying an instantiation: %s<type>)."
 msgstr ""
 
-#: symtab.c:4032
+#: symtab.c:4017
 msgid "mismatched quoting on brackets, try 'operator\\[\\]'"
 msgstr ""
 
-#: symtab.c:4040
+#: symtab.c:4025
 msgid "nothing is allowed between '[' and ']'"
 msgstr ""
 
-#: symtab.c:4096
+#: symtab.c:4081
 msgid "`operator ()' must be specified without whitespace in `()'"
 msgstr ""
 
-#: symtab.c:4102
+#: symtab.c:4087
 msgid "`operator ?:' must be specified without whitespace in `?:'"
 msgstr ""
 
-#: symtab.c:4108
+#: symtab.c:4093
 msgid "`operator []' must be specified without whitespace in `[]'"
 msgstr ""
 
-#: symtab.c:4113
+#: symtab.c:4098
 #, possible-c-format
 msgid "`operator %s' not supported"
 msgstr ""
 
-#: symtab.c:4222
+#: symtab.c:4207
 msgid "Show only the files having a dirname matching REGEXP."
 msgstr ""
 
-#: symtab.c:4228
+#: symtab.c:4213
 msgid "Show only the files having a basename matching REGEXP."
 msgstr ""
 
-#: symtab.c:4255
+#: symtab.c:4240
 #, possible-c-format
 msgid "(dirname matching regular expression \"%s\")"
 msgstr ""
 
-#: symtab.c:4258
+#: symtab.c:4243
 #, possible-c-format
 msgid "(basename matching regular expression \"%s\")"
 msgstr ""
 
-#: symtab.c:4261
+#: symtab.c:4246
 #, possible-c-format
 msgid "(filename matching regular expression \"%s\")"
 msgstr ""
 
-#: symtab.c:4304
+#: symtab.c:4289
 msgid "You cannot give both -basename and -dirname to 'info sources'."
 msgstr ""
 
-#: symtab.c:4307
+#: symtab.c:4292
 msgid "Missing REGEXP for 'info sources'."
 msgstr ""
 
-#: symtab.c:4322
+#: symtab.c:4307
 msgid "Source files for which symbols have been read in:\n"
 msgstr ""
 
-#: symtab.c:4339
+#: symtab.c:4324
 msgid "Source files for which symbols will be read in on demand:\n"
 msgstr ""
 
-#: symtab.c:4857
+#: symtab.c:4736
+#, possible-c-format
+msgid ""
+"\n"
+"File %ps:\n"
+msgstr ""
+
+#: symtab.c:4805
+#, possible-c-format
+msgid "%ps  %ps\n"
+msgstr ""
+
+#: symtab.c:4842
 #, possible-c-format
 msgid ""
 "All %ss matching regular expression \"%s\" with type matching regular "
 "expression \"%s\":\n"
 msgstr ""
 
-#: symtab.c:4861
+#: symtab.c:4846
 #, possible-c-format
 msgid "All %ss matching regular expression \"%s\":\n"
 msgstr ""
 
-#: symtab.c:4868
+#: symtab.c:4853
 #, possible-c-format
 msgid "All defined %ss with type matching regular expression \"%s\" :\n"
 msgstr ""
 
-#: symtab.c:4872
+#: symtab.c:4857
 #, possible-c-format
 msgid "All defined %ss:\n"
 msgstr ""
 
-#: symtab.c:4885
+#: symtab.c:4870
 msgid ""
 "\n"
 "Non-debugging symbols:\n"
 msgstr ""
 
-#: symtab.c:6289
+#: symtab.c:6318
 msgid ""
 "All global and static variable names or those matching REGEXPs.\n"
 "Usage: info variables [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the global and static variables.\n"
 msgstr ""
 
-#: symtab.c:6293 symtab.c:6303
+#: symtab.c:6322 symtab.c:6332
 msgid "global and static variables"
 msgstr ""
 
-#: symtab.c:6299
+#: symtab.c:6328
 msgid ""
 "All global and static variable names, or those matching REGEXPs.\n"
 "Usage: whereis [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the global and static variables.\n"
 msgstr ""
 
-#: symtab.c:6309
+#: symtab.c:6338
 msgid ""
 "All function names or those matching REGEXPs.\n"
 "Usage: info functions [-q] [-n] [-t TYPEREGEXP] [NAMEREGEXP]\n"
 "Prints the functions.\n"
 msgstr ""
 
-#: symtab.c:6313
+#: symtab.c:6342
 msgid "functions"
 msgstr ""
 
-#: symtab.c:6317
+#: symtab.c:6346
 msgid ""
 "All type names, or those matching REGEXP.\n"
 "Usage: info types [-q] [REGEXP]\n"
@@ -29463,7 +29523,7 @@ msgid ""
 "REGEXP is given.  The optional flag -q disables printing of headers."
 msgstr ""
 
-#: symtab.c:6327
+#: symtab.c:6356
 msgid ""
 "All source files in the program or those matching REGEXP.\n"
 "Usage: info sources [OPTION]... [REGEXP]\n"
@@ -29473,32 +29533,32 @@ msgid ""
 "%OPTIONS%"
 msgstr ""
 
-#: symtab.c:6340
+#: symtab.c:6369
 msgid "Set a breakpoint for all functions matching REGEXP."
 msgstr ""
 
-#: symtab.c:6344
+#: symtab.c:6373
 msgid "Set how the debugger handles ambiguities in expressions."
 msgstr ""
 
-#: symtab.c:6345
+#: symtab.c:6374
 msgid "Show how the debugger handles ambiguities in expressions."
 msgstr ""
 
-#: symtab.c:6346
+#: symtab.c:6375
 msgid ""
 "Valid values are \"ask\", \"all\", \"cancel\", and the default is \"all\"."
 msgstr ""
 
-#: symtab.c:6351
+#: symtab.c:6380
 msgid "Set whether a source file may have multiple base names."
 msgstr ""
 
-#: symtab.c:6352
+#: symtab.c:6381
 msgid "Show whether a source file may have multiple base names."
 msgstr ""
 
-#: symtab.c:6353
+#: symtab.c:6382
 msgid ""
 "(A \"base name\" is the name of a file with the directory part removed.\n"
 "Example: The base name of \"/home/user/hello.c\" is \"hello.c\".)\n"
@@ -29509,60 +29569,60 @@ msgid ""
 "one base name, and gdb will do file name comparisons more efficiently."
 msgstr ""
 
-#: symtab.c:6365
+#: symtab.c:6394
 msgid "Set debugging of symbol table creation."
 msgstr ""
 
-#: symtab.c:6366
+#: symtab.c:6395
 msgid "Show debugging of symbol table creation."
 msgstr ""
 
-#: symtab.c:6366
+#: symtab.c:6395
 msgid ""
 "When enabled (non-zero), debugging messages are printed when building\n"
 "symbol tables.  A value of 1 (one) normally provides enough information.\n"
 "A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: symtab.c:6375
+#: symtab.c:6404
 msgid "Set debugging of symbol lookup."
 msgstr ""
 
-#: symtab.c:6376
+#: symtab.c:6405
 msgid "Show debugging of symbol lookup."
 msgstr ""
 
-#: symtab.c:6377
+#: symtab.c:6406
 msgid "When enabled (non-zero), symbol lookups are logged."
 msgstr ""
 
-#: symtab.c:6384
+#: symtab.c:6413
 msgid "Set the size of the symbol cache."
 msgstr ""
 
-#: symtab.c:6385
+#: symtab.c:6414
 msgid "Show the size of the symbol cache."
 msgstr ""
 
-#: symtab.c:6385
+#: symtab.c:6414
 msgid ""
 "The size of the symbol cache.\n"
 "If zero then the symbol cache is disabled."
 msgstr ""
 
-#: symtab.c:6393
+#: symtab.c:6422
 msgid "Dump the symbol cache for each program space."
 msgstr ""
 
-#: symtab.c:6398
+#: symtab.c:6427
 msgid "Print symbol cache statistics for each program space."
 msgstr ""
 
-#: symtab.c:6403
+#: symtab.c:6432
 msgid "Flush the symbol cache for each program space."
 msgstr ""
 
-#: symtab.h:1292
+#: symtab.h:1330
 msgid "Section index is uninitialized"
 msgstr ""
 
@@ -30841,6 +30901,83 @@ msgid ""
 "The second argument is the terminal the UI runs on."
 msgstr ""
 
+#: tracectf.c:41
+msgid "CTF file"
+msgstr ""
+
+#: tracectf.c:42
+msgid ""
+"(Use a CTF directory as a target.\n"
+"Specify the filename of the CTF directory."
+msgstr ""
+
+#: tracectf.c:147
+#, possible-c-format
+msgid "Unable to write metadata file (%s)"
+msgstr ""
+
+#: tracectf.c:160
+#, possible-c-format
+msgid "Unable to write file for saving trace data (%s)"
+msgstr ""
+
+#: tracectf.c:192
+#, possible-c-format
+msgid "Unable to seek file for saving trace data (%s)"
+msgstr ""
+
+#: tracectf.c:352
+#, possible-c-format
+msgid "Unable to open directory '%s' for saving trace data (%s)"
+msgstr ""
+
+#: tracectf.c:362 tracectf.c:371 tracefile-tfile.c:127
+#, possible-c-format
+msgid "Unable to open file '%s' for saving trace data (%s)"
+msgstr ""
+
+#: tracectf.c:897
+msgid "Unable to create bt_context"
+msgstr ""
+
+#: tracectf.c:902
+#, possible-c-format
+msgid "Unable to use libbabeltrace on directory \"%s\""
+msgstr ""
+
+#: tracectf.c:911
+msgid "Unable to create bt_iterator"
+msgstr ""
+
+#: tracectf.c:1125
+msgid "No CTF directory specified."
+msgstr ""
+
+#: tracectf.c:1137
+msgid "Wrong event id of the first event"
+msgstr ""
+
+#: tracectf.c:1144
+msgid "Wrong event id of the second event"
+msgstr ""
+
+#: tracectf.c:1161
+msgid "Wrong event id of the first event of the second packet"
+msgstr ""
+
+#: tracectf.c:1306
+msgid "ctf_xfer_partial: trace file is read-only"
+msgstr ""
+
+#: tracectf.c:1624 tracefile-tfile.c:755
+msgid "unknown tfind type"
+msgstr ""
+
+#: tracectf.c:1704
+#, possible-c-format
+msgid "Unhandled trace block type (%s) while building trace frame info."
+msgstr ""
+
 #: tracefile.c:80
 #, possible-c-format
 msgid "Target failed to save trace data to '%s'."
@@ -30981,455 +31118,455 @@ msgstr ""
 msgid "Name \"%s\" not prefixed with '$', ignoring"
 msgstr ""
 
-#: tracepoint.c:458
+#: tracepoint.c:465
 msgid "No trace state variables.\n"
 msgstr ""
 
-#: tracepoint.c:497
+#: tracepoint.c:504
 msgid "This command cannot be used at the top level."
 msgstr ""
 
-#: tracepoint.c:503 tracepoint.c:509 tracepoint.c:515
+#: tracepoint.c:510 tracepoint.c:516 tracepoint.c:522
 msgid "This command can only be used in a tracepoint actions list."
 msgstr ""
 
-#: tracepoint.c:550
+#: tracepoint.c:557
 msgid "Target does not support \"/s\" option for string tracing."
 msgstr ""
 
-#: tracepoint.c:553
+#: tracepoint.c:560
 #, possible-c-format
 msgid "Undefined collection format \"%c\"."
 msgstr ""
 
-#: tracepoint.c:593
+#: tracepoint.c:600
 msgid "expression is malformed"
 msgstr ""
 
-#: tracepoint.c:599
+#: tracepoint.c:606
 msgid "expression has min height < 0"
 msgstr ""
 
-#: tracepoint.c:608 tracepoint.c:619
+#: tracepoint.c:615 tracepoint.c:626
 msgid "Expression is too complicated."
 msgstr ""
 
-#: tracepoint.c:649
+#: tracepoint.c:656
 #, possible-c-format
 msgid "`%s' is not a tracepoint action, or is ambiguous."
 msgstr ""
 
-#: tracepoint.c:687
+#: tracepoint.c:694
 #, possible-c-format
 msgid "constant `%s' (value %s) will not be collected."
 msgstr ""
 
-#: tracepoint.c:695
+#: tracepoint.c:702
 #, possible-c-format
 msgid "`%s' is optimized away and cannot be collected."
 msgstr ""
 
-#: tracepoint.c:748
+#: tracepoint.c:755
 #, possible-c-format
 msgid "while-stepping step count `%s' is malformed."
 msgstr ""
 
-#: tracepoint.c:756
+#: tracepoint.c:763
 #, possible-c-format
 msgid "`%s' is not a supported tracepoint action."
 msgstr ""
 
-#: tracepoint.c:861
+#: tracepoint.c:868
 #, possible-c-format
 msgid "Can't collect register %d"
 msgstr ""
 
-#: tracepoint.c:1096
+#: tracepoint.c:1103
 msgid "Can't collect locals; no symbol table info available.\n"
 msgstr ""
 
-#: tracepoint.c:1103
+#: tracepoint.c:1110
 msgid "No locals found in scope."
 msgstr ""
 
-#: tracepoint.c:1111
+#: tracepoint.c:1118
 msgid "Can't collect args; no symbol table info available."
 msgstr ""
 
-#: tracepoint.c:1117
+#: tracepoint.c:1124
 msgid "No args found in scope."
 msgstr ""
 
-#: tracepoint.c:1307 tracepoint.c:2677
+#: tracepoint.c:1314 tracepoint.c:2684
 #, possible-c-format
 msgid "Bad action list item: %s"
 msgstr ""
 
-#: tracepoint.c:1485
+#: tracepoint.c:1492
 #, possible-c-format
 msgid "Invalid tracepoint command '%s'"
 msgstr ""
 
-#: tracepoint.c:1567
+#: tracepoint.c:1574
 msgid "Pending tracepoints will not be resolved while GDB is disconnected\n"
 msgstr ""
 
-#: tracepoint.c:1592
+#: tracepoint.c:1599
 msgid "No tracepoints defined, not starting trace"
 msgstr ""
 
-#: tracepoint.c:1604
+#: tracepoint.c:1611
 #, possible-c-format
 msgid "May not insert %stracepoints, skipping tracepoint %d"
 msgstr ""
 
-#: tracepoint.c:1611
+#: tracepoint.c:1618
 msgid "No tracepoints enabled"
 msgstr ""
 
 #. No point in tracing with only disabled tracepoints that
 #. cannot be re-enabled.
-#: tracepoint.c:1616
+#: tracepoint.c:1623
 msgid "No tracepoints enabled, not starting trace"
 msgstr ""
 
-#: tracepoint.c:1621
+#: tracepoint.c:1628
 msgid "No tracepoints that may be downloaded, not starting trace"
 msgstr ""
 
-#: tracepoint.c:1681
+#: tracepoint.c:1688
 msgid "Target does not support trace user/notes, info ignored"
 msgstr ""
 
-#: tracepoint.c:1705
+#: tracepoint.c:1712
 msgid "A trace is running already.  Start a new run? "
 msgstr ""
 
-#: tracepoint.c:1706
+#: tracepoint.c:1713
 msgid "New trace run not started."
 msgstr ""
 
-#: tracepoint.c:1721
+#: tracepoint.c:1728
 msgid "Trace is not running."
 msgstr ""
 
-#: tracepoint.c:1759 tracepoint.c:2901
+#: tracepoint.c:1766 tracepoint.c:2908
 msgid "Target does not support trace notes, note ignored"
 msgstr ""
 
-#: tracepoint.c:1777
+#: tracepoint.c:1784
 msgid "Using a trace file.\n"
 msgstr ""
 
-#: tracepoint.c:1780
+#: tracepoint.c:1787
 msgid "Trace can not be run on this target.\n"
 msgstr ""
 
-#: tracepoint.c:1787
+#: tracepoint.c:1794
 msgid "Run/stop status is unknown.\n"
 msgstr ""
 
-#: tracepoint.c:1791
+#: tracepoint.c:1798
 msgid "Trace is running on the target.\n"
 msgstr ""
 
-#: tracepoint.c:1798
+#: tracepoint.c:1805
 msgid "No trace has been run on the target.\n"
 msgstr ""
 
-#: tracepoint.c:1802
+#: tracepoint.c:1809
 #, possible-c-format
 msgid "Trace stopped by a tstop command (%s).\n"
 msgstr ""
 
-#: tracepoint.c:1805
+#: tracepoint.c:1812
 msgid "Trace stopped by a tstop command.\n"
 msgstr ""
 
-#: tracepoint.c:1808
+#: tracepoint.c:1815
 msgid "Trace stopped because the buffer was full.\n"
 msgstr ""
 
-#: tracepoint.c:1811
+#: tracepoint.c:1818
 msgid "Trace stopped because of disconnection.\n"
 msgstr ""
 
-#: tracepoint.c:1814
+#: tracepoint.c:1821
 #, possible-c-format
 msgid "Trace stopped by tracepoint %d.\n"
 msgstr ""
 
-#: tracepoint.c:1819
+#: tracepoint.c:1826
 #, possible-c-format
 msgid "Trace stopped by an error (%s, tracepoint %d).\n"
 msgstr ""
 
-#: tracepoint.c:1823
+#: tracepoint.c:1830
 #, possible-c-format
 msgid "Trace stopped by an error (%s).\n"
 msgstr ""
 
-#: tracepoint.c:1827
+#: tracepoint.c:1834
 msgid "Trace stopped for an unknown reason.\n"
 msgstr ""
 
-#: tracepoint.c:1830
+#: tracepoint.c:1837
 #, possible-c-format
 msgid "Trace stopped for some other reason (%d).\n"
 msgstr ""
 
-#: tracepoint.c:1839
+#: tracepoint.c:1846
 #, possible-c-format
 msgid "Buffer contains %d trace frames (of %d created total).\n"
 msgstr ""
 
-#: tracepoint.c:1845
+#: tracepoint.c:1852
 #, possible-c-format
 msgid "Collected %d trace frames.\n"
 msgstr ""
 
-#: tracepoint.c:1853
+#: tracepoint.c:1860
 #, possible-c-format
 msgid "Trace buffer has %d bytes of %d bytes free"
 msgstr ""
 
-#: tracepoint.c:1856
+#: tracepoint.c:1863
 #, possible-c-format
 msgid " (%d%% full)"
 msgstr ""
 
-#: tracepoint.c:1860
+#: tracepoint.c:1867
 msgid ".\n"
 msgstr ""
 
-#: tracepoint.c:1863
+#: tracepoint.c:1870
 #, possible-c-format
 msgid "Trace buffer has %d bytes free.\n"
 msgstr ""
 
-#: tracepoint.c:1868
+#: tracepoint.c:1875
 msgid "Trace will continue if GDB disconnects.\n"
 msgstr ""
 
-#: tracepoint.c:1870
+#: tracepoint.c:1877
 msgid "Trace will stop if GDB disconnects.\n"
 msgstr ""
 
-#: tracepoint.c:1873
+#: tracepoint.c:1880
 msgid "Trace buffer is circular.\n"
 msgstr ""
 
-#: tracepoint.c:1876
+#: tracepoint.c:1883
 #, possible-c-format
 msgid "Trace user is %s.\n"
 msgstr ""
 
-#: tracepoint.c:1879
+#: tracepoint.c:1886
 #, possible-c-format
 msgid "Trace notes: %s.\n"
 msgstr ""
 
-#: tracepoint.c:1883
+#: tracepoint.c:1890
 #, possible-c-format
 msgid "Looking at trace frame %d, tracepoint %d.\n"
 msgstr ""
 
-#: tracepoint.c:1886
+#: tracepoint.c:1893
 msgid "Not looking at any trace frame.\n"
 msgstr ""
 
 #. Reporting a run time is more readable than two long numbers.
-#: tracepoint.c:1896
+#: tracepoint.c:1903
 #, possible-c-format
 msgid "Trace started at %ld.%06ld secs, stopped %ld.%06ld secs later.\n"
 msgstr ""
 
-#: tracepoint.c:1903
+#: tracepoint.c:1910
 #, possible-c-format
 msgid "Trace started at %ld.%06ld secs.\n"
 msgstr ""
 
-#: tracepoint.c:1908
+#: tracepoint.c:1915
 #, possible-c-format
 msgid "Trace stopped at %ld.%06ld secs.\n"
 msgstr ""
 
-#: tracepoint.c:2061
+#: tracepoint.c:2068
 msgid "Trace is running and will continue after detach; detach anyway? "
 msgstr ""
 
-#: tracepoint.c:2067
+#: tracepoint.c:2074
 msgid "Trace is running but will stop on detach; detach anyway? "
 msgstr ""
 
-#: tracepoint.c:2142
+#: tracepoint.c:2149
 msgid "Target failed to find requested trace frame."
 msgstr ""
 
-#: tracepoint.c:2184
+#: tracepoint.c:2191
 #, possible-c-format
 msgid "Found trace frame %d, tracepoint %d\n"
 msgstr ""
 
-#: tracepoint.c:2193
+#: tracepoint.c:2200
 msgid "No longer looking at any trace frame\n"
 msgstr ""
 
 #. This case may never occur, check.
-#: tracepoint.c:2195
+#: tracepoint.c:2202
 msgid "No trace frame found\n"
 msgstr ""
 
-#: tracepoint.c:2229 tracepoint.c:2453
+#: tracepoint.c:2236 tracepoint.c:2460
 msgid "May not look at trace frames while trace is running."
 msgstr ""
 
-#: tracepoint.c:2264
+#: tracepoint.c:2271
 msgid "not debugging trace buffer"
 msgstr ""
 
-#: tracepoint.c:2266
+#: tracepoint.c:2273
 msgid "already at start of trace buffer"
 msgstr ""
 
-#: tracepoint.c:2277
+#: tracepoint.c:2284
 #, possible-c-format
 msgid "invalid input (%d is less than zero)"
 msgstr ""
 
-#: tracepoint.c:2330
+#: tracepoint.c:2337
 msgid "No current tracepoint -- please supply an argument."
 msgstr ""
 
-#: tracepoint.c:2373
+#: tracepoint.c:2380
 msgid "No line number information available."
 msgstr ""
 
-#: tracepoint.c:2395
+#: tracepoint.c:2402
 msgid "Cannot find a good line."
 msgstr ""
 
 #. Is there any case in which we get here, and have an address
 #. which the user would want to see?  If we have debugging
 #. symbols and no line numbers?
-#: tracepoint.c:2402
+#: tracepoint.c:2409
 #, possible-c-format
 msgid "Line number %d is out of range for \"%s\"."
 msgstr ""
 
-#: tracepoint.c:2494
+#: tracepoint.c:2501
 msgid "requires an argument (function, line or *addr) to define a scope"
 msgstr ""
 
-#: tracepoint.c:2752
+#: tracepoint.c:2759
 msgid "No current trace frame."
 msgstr ""
 
-#: tracepoint.c:2757
+#: tracepoint.c:2764
 #, possible-c-format
 msgid "No known tracepoint matches 'current' tracepoint #%d."
 msgstr ""
 
-#: tracepoint.c:2846
+#: tracepoint.c:2853
 msgid "Buffer too small for source encoding"
 msgstr ""
 
-#: tracepoint.c:2851
+#: tracepoint.c:2858
 msgid "Source string too long for buffer"
 msgstr ""
 
-#: tracepoint.c:2889
+#: tracepoint.c:2896
 msgid "Target does not support trace notes, user ignored"
 msgstr ""
 
-#: tracepoint.c:2913
+#: tracepoint.c:2920
 msgid "Target does not support trace notes, stop note ignored"
 msgstr ""
 
-#: tracepoint.c:2970
+#: tracepoint.c:2977
 msgid "could not change traceframe"
 msgstr ""
 
-#: tracepoint.c:3123
+#: tracepoint.c:3130
 #, possible-c-format
 msgid "Assuming tracepoint %d is same as target's tracepoint %d at %s.\n"
 msgstr ""
 
-#: tracepoint.c:3146
+#: tracepoint.c:3153
 #, possible-c-format
 msgid "Created tracepoint %d for target's tracepoint %d at %s.\n"
 msgstr ""
 
-#: tracepoint.c:3151
+#: tracepoint.c:3158
 #, possible-c-format
 msgid ""
 "Failed to create tracepoint for target's tracepoint %d at %s, skipping it.\n"
 msgstr ""
 
-#: tracepoint.c:3237
+#: tracepoint.c:3244
 #, possible-c-format
 msgid "Assuming trace state variable $%s is same as target's variable %d.\n"
 msgstr ""
 
-#: tracepoint.c:3245
+#: tracepoint.c:3252
 #, possible-c-format
 msgid "Created trace state variable $%s for target's variable %d.\n"
 msgstr ""
 
-#: tracepoint.c:3298
+#: tracepoint.c:3305
 #, possible-c-format
 msgid ""
 "Malformed trace status, at %s\n"
 "Status line: '%s'\n"
 msgstr ""
 
-#: tracepoint.c:3509
+#: tracepoint.c:3516
 #, possible-c-format
 msgid "Unrecognized char '%c' in tracepoint definition, skipping rest"
 msgstr ""
 
 #. Don't error out, the target might be sending us optional
 #. info that we don't care about.
-#: tracepoint.c:3563
+#: tracepoint.c:3570
 #, possible-c-format
 msgid "Unrecognized tracepoint piece '%c', ignoring"
 msgstr ""
 
-#: tracepoint.c:3618
+#: tracepoint.c:3625
 #, possible-c-format
 msgid "bad marker definition: %s"
 msgstr ""
 
-#: tracepoint.c:3719
+#: tracepoint.c:3726
 msgid "Data: \""
 msgstr ""
 
-#: tracepoint.c:3731
+#: tracepoint.c:3738
 msgid "Probed by static tracepoints: "
 msgstr ""
 
-#: tracepoint.c:3824
+#: tracepoint.c:3831
 msgid ""
 "Can not parse XML trace frame info; XML support was disabled at compile time"
 msgstr ""
 
-#: tracepoint.c:3906
+#: tracepoint.c:3913
 msgid "trace frame info"
 msgstr ""
 
-#: tracepoint.c:3997
+#: tracepoint.c:4004
 msgid "List the variables local to a scope."
 msgstr ""
 
-#: tracepoint.c:4000
+#: tracepoint.c:4007
 msgid "Tracing of program execution without stopping the program."
 msgstr ""
 
-#: tracepoint.c:4004
+#: tracepoint.c:4011
 msgid "Print everything collected at the current tracepoint."
 msgstr ""
 
-#: tracepoint.c:4006
+#: tracepoint.c:4013
 msgid ""
 "Define a trace state variable.\n"
 "Argument is a $-prefixed name, optionally followed\n"
@@ -31437,7 +31574,7 @@ msgid ""
 "at the start of tracing."
 msgstr ""
 
-#: tracepoint.c:4013
+#: tracepoint.c:4020
 msgid ""
 "Delete one or more trace state variables.\n"
 "Arguments are the names of the variables to delete.\n"
@@ -31445,33 +31582,33 @@ msgid ""
 msgstr ""
 
 #. FIXME add a trace variable completer.
-#: tracepoint.c:4019
+#: tracepoint.c:4026
 msgid "Status of trace state variables and their values."
 msgstr ""
 
-#: tracepoint.c:4023
+#: tracepoint.c:4030
 msgid "List target static tracepoints markers."
 msgstr ""
 
-#: tracepoint.c:4026
+#: tracepoint.c:4033
 msgid ""
 "Select a trace frame.\n"
 "No argument means forward by one frame; '-' means backward by one frame."
 msgstr ""
 
-#: tracepoint.c:4031
+#: tracepoint.c:4038
 msgid ""
 "Select a trace frame whose PC is outside the given range (exclusive).\n"
 "Usage: tfind outside ADDR1, ADDR2"
 msgstr ""
 
-#: tracepoint.c:4036
+#: tracepoint.c:4043
 msgid ""
 "Select a trace frame whose PC is in the given range (inclusive).\n"
 "Usage: tfind range ADDR1, ADDR2"
 msgstr ""
 
-#: tracepoint.c:4041
+#: tracepoint.c:4048
 msgid ""
 "Select a trace frame by source line.\n"
 "Argument can be a line number (with optional source file),\n"
@@ -31479,31 +31616,31 @@ msgid ""
 "Default argument is 'the next source line that was traced'."
 msgstr ""
 
-#: tracepoint.c:4048
+#: tracepoint.c:4055
 msgid ""
 "Select a trace frame by tracepoint number.\n"
 "Default is the tracepoint for the current trace frame."
 msgstr ""
 
-#: tracepoint.c:4053
+#: tracepoint.c:4060
 msgid ""
 "Select a trace frame by PC.\n"
 "Default is the current PC, or the PC of the current trace frame."
 msgstr ""
 
-#: tracepoint.c:4058
+#: tracepoint.c:4065
 msgid "De-select any trace frame and resume 'live' debugging."
 msgstr ""
 
-#: tracepoint.c:4065
+#: tracepoint.c:4072
 msgid "Select the first trace frame in the trace buffer."
 msgstr ""
 
-#: tracepoint.c:4069
+#: tracepoint.c:4076
 msgid "Display the status of the current trace data collection."
 msgstr ""
 
-#: tracepoint.c:4071
+#: tracepoint.c:4078
 msgid ""
 "Stop trace data collection.\n"
 "Usage: tstop [NOTES]...\n"
@@ -31511,7 +31648,7 @@ msgid ""
 "reported by tstatus (if the target supports trace notes)."
 msgstr ""
 
-#: tracepoint.c:4077
+#: tracepoint.c:4084
 msgid ""
 "Start trace data collection.\n"
 "Usage: tstart [NOTES]...\n"
@@ -31519,7 +31656,7 @@ msgid ""
 "reported by tstatus (if the target supports trace notes)."
 msgstr ""
 
-#: tracepoint.c:4083
+#: tracepoint.c:4090
 msgid ""
 "Ends a list of commands or actions.\n"
 "Several GDB commands allow you to enter a list of commands or actions.\n"
@@ -31529,7 +31666,7 @@ msgid ""
 "Note: the \"end\" command cannot be used at the gdb prompt."
 msgstr ""
 
-#: tracepoint.c:4091
+#: tracepoint.c:4098
 msgid ""
 "Specify single-stepping behavior at a tracepoint.\n"
 "Argument is number of instructions to trace in single-step mode\n"
@@ -31540,7 +31677,7 @@ msgid ""
 "Note: this command can only be used in a tracepoint \"actions\" list."
 msgstr ""
 
-#: tracepoint.c:4102
+#: tracepoint.c:4109
 msgid ""
 "Specify one or more data items to be collected at a tracepoint.\n"
 "Accepts a comma-separated list of (one or more) expressions.  GDB will\n"
@@ -31553,7 +31690,7 @@ msgid ""
 "Note: this command can only be used in a tracepoint \"actions\" list."
 msgstr ""
 
-#: tracepoint.c:4113
+#: tracepoint.c:4120
 msgid ""
 "Specify one or more expressions to be evaluated at a tracepoint.\n"
 "Accepts a comma-separated list of (one or more) expressions.\n"
@@ -31561,7 +31698,7 @@ msgid ""
 "Note: this command can only be used in a tracepoint \"actions\" list."
 msgstr ""
 
-#: tracepoint.c:4119
+#: tracepoint.c:4126
 msgid ""
 "Specify the actions to be taken at a tracepoint.\n"
 "Tracepoint actions may include collecting of specified data,\n"
@@ -31569,80 +31706,80 @@ msgid ""
 "depending on target's capabilities."
 msgstr ""
 
-#: tracepoint.c:4127
+#: tracepoint.c:4134
 msgid "Set the list of expressions to collect by default."
 msgstr ""
 
-#: tracepoint.c:4128
+#: tracepoint.c:4135
 msgid "Show the list of expressions to collect by default."
 msgstr ""
 
-#: tracepoint.c:4134
+#: tracepoint.c:4141
 msgid "Set whether tracing continues after GDB disconnects."
 msgstr ""
 
-#: tracepoint.c:4135
+#: tracepoint.c:4142
 msgid "Show whether tracing continues after GDB disconnects."
 msgstr ""
 
-#: tracepoint.c:4136
+#: tracepoint.c:4143
 msgid ""
 "Use this to continue a tracing run even if GDB disconnects\n"
 "or detaches from the target.  You can reconnect later and look at\n"
 "trace data collected in the meantime."
 msgstr ""
 
-#: tracepoint.c:4146
+#: tracepoint.c:4153
 msgid "Set target's use of circular trace buffer."
 msgstr ""
 
-#: tracepoint.c:4147
+#: tracepoint.c:4154
 msgid "Show target's use of circular trace buffer."
 msgstr ""
 
-#: tracepoint.c:4148
+#: tracepoint.c:4155
 msgid ""
 "Use this to make the trace buffer into a circular buffer,\n"
 "which will discard traceframes (oldest first) instead of filling\n"
 "up and stopping the trace run."
 msgstr ""
 
-#: tracepoint.c:4158
+#: tracepoint.c:4165
 msgid "Set requested size of trace buffer."
 msgstr ""
 
-#: tracepoint.c:4159
+#: tracepoint.c:4166
 msgid "Show requested size of trace buffer."
 msgstr ""
 
-#: tracepoint.c:4160
+#: tracepoint.c:4167
 msgid ""
 "Use this to choose a size for the trace buffer.  Some targets\n"
 "may have fixed or limited buffer sizes.  Specifying \"unlimited\" or -1\n"
 "disables any attempt to set the buffer size and lets the target choose."
 msgstr ""
 
-#: tracepoint.c:4168
+#: tracepoint.c:4175
 msgid "Set the user name to use for current and future trace runs."
 msgstr ""
 
-#: tracepoint.c:4169
+#: tracepoint.c:4176
 msgid "Show the user name to use for current and future trace runs."
 msgstr ""
 
-#: tracepoint.c:4175
+#: tracepoint.c:4182
 msgid "Set notes string to use for current and future trace runs."
 msgstr ""
 
-#: tracepoint.c:4176
+#: tracepoint.c:4183
 msgid "Show the notes string to use for current and future trace runs."
 msgstr ""
 
-#: tracepoint.c:4182
+#: tracepoint.c:4189
 msgid "Set notes string to use for future tstop commands."
 msgstr ""
 
-#: tracepoint.c:4183
+#: tracepoint.c:4190
 msgid "Show the notes string to use for future tstop commands."
 msgstr ""
 
@@ -31949,56 +32086,56 @@ msgid ""
 "This variable controls how many spaces are used to display a tab character."
 msgstr ""
 
-#: typeprint.c:376
+#: typeprint.c:377
 msgid "Language not supported."
 msgstr ""
 
-#: typeprint.c:418
+#: typeprint.c:420
 msgid "<unknown return type>"
 msgstr ""
 
-#: typeprint.c:426
+#: typeprint.c:428
 #, possible-c-format
 msgid "'%s' has unknown type; cast it to its declared type"
 msgstr ""
 
-#: typeprint.c:486
+#: typeprint.c:488
 #, possible-c-format
 msgid "unrecognized flag '%c'"
 msgstr ""
 
-#: typeprint.c:492
+#: typeprint.c:494
 msgid "flag expected"
 msgstr ""
 
-#: typeprint.c:494
+#: typeprint.c:496
 msgid "expected space after format"
 msgstr ""
 
-#: typeprint.c:671
+#: typeprint.c:673
 msgid "internal error: unhandled type in print_type_scalar"
 msgstr ""
 
-#: typeprint.c:743
+#: typeprint.c:745
 #, possible-c-format
 msgid "Printing of methods defined in a class in %s\n"
 msgstr ""
 
-#: typeprint.c:760
+#: typeprint.c:762
 #, possible-c-format
 msgid "Printing of typedefs defined in a class in %s\n"
 msgstr ""
 
-#: typeprint.c:789
+#: typeprint.c:791
 msgid "Will not print nested types defined in a class\n"
 msgstr ""
 
-#: typeprint.c:794
+#: typeprint.c:796
 #, possible-c-format
 msgid "Will print %s nested types defined in a class\n"
 msgstr ""
 
-#: typeprint.c:804
+#: typeprint.c:806
 msgid ""
 "Print definition of type TYPE.\n"
 "Usage: ptype[/FLAGS] TYPE | EXPRESSION\n"
@@ -32017,95 +32154,119 @@ msgid ""
 "  /o    print offsets and sizes of fields in a struct (like pahole)"
 msgstr ""
 
-#: typeprint.c:823
+#: typeprint.c:825
 msgid ""
 "Print data type of expression EXP.\n"
 "Only one level of typedefs is unrolled.  See also \"ptype\"."
 msgstr ""
 
-#: typeprint.c:828
+#: typeprint.c:830
 msgid "Generic command for showing type-printing settings."
 msgstr ""
 
-#: typeprint.c:831
+#: typeprint.c:833
 msgid "Generic command for setting how types print."
 msgstr ""
 
-#: typeprint.c:835
+#: typeprint.c:837
 msgid "Set printing of methods defined in classes."
 msgstr ""
 
-#: typeprint.c:836
+#: typeprint.c:838
 msgid "Show printing of methods defined in classes."
 msgstr ""
 
-#: typeprint.c:842
+#: typeprint.c:844
 msgid "Set printing of typedefs defined in classes."
 msgstr ""
 
-#: typeprint.c:843
+#: typeprint.c:845
 msgid "Show printing of typedefs defined in classes."
 msgstr ""
 
-#: typeprint.c:851
+#: typeprint.c:853
 msgid ""
 "Set the number of recursive nested type definitions to print (\"unlimited\" "
 "or -1 to show all)."
 msgstr ""
 
-#: typeprint.c:853
+#: typeprint.c:855
 msgid "Show the number of recursive nested type definitions to print."
 msgstr ""
 
-#: typeprint.c:865
+#: typeprint.c:867
 msgid "<not allocated>"
 msgstr ""
 
-#: typeprint.c:873
+#: typeprint.c:875
 msgid "<not associated>"
 msgstr ""
 
-#: ui-out.c:213
+#: ui-out.c:215
 msgid ""
 "extra table_body call not allowed; there must be only one table_body after a "
 "table_begin and before a table_end."
 msgstr ""
 
-#: ui-out.c:221
+#: ui-out.c:223
 msgid "number of headers differ from number of table columns."
 msgstr ""
 
-#: ui-out.c:236
+#: ui-out.c:238
 msgid "table header must be specified after table_begin and before table_body."
 msgstr ""
 
-#: ui-out.c:355
+#: ui-out.c:357
 msgid "tables cannot be nested; table_begin found before previous table_end."
 msgstr ""
 
-#: ui-out.c:369
+#: ui-out.c:371
 msgid ""
 "table_header outside a table is not valid; it must be after a table_begin "
 "and before a table_body."
 msgstr ""
 
-#: ui-out.c:382
+#: ui-out.c:384
 msgid ""
 "table_body outside a table is not valid; it must be after a table_begin and "
 "before a table_end."
 msgstr ""
 
-#: ui-out.c:395
+#: ui-out.c:397
 msgid "misplaced table_end or missing table_begin."
 msgstr ""
 
-#: ui-out.c:618
+#: ui-out.c:638
+msgid "wide_string_arg not supported in vmessage"
+msgstr ""
+
+#: ui-out.c:641
+msgid "wide_char_arg not supported in vmessage"
+msgstr ""
+
+#: ui-out.c:686
+msgid "long_double_arg not supported in vmessage"
+msgstr ""
+
+#: ui-out.c:689
+msgid "dec32float_arg not supported in vmessage"
+msgstr ""
+
+#: ui-out.c:692
+msgid "dec64float_arg not supported in vmessage"
+msgstr ""
+
+#: ui-out.c:695
+msgid "dec128float_arg not supported in vmessage"
+msgstr ""
+
+#: ui-out.c:816
 msgid ""
 "table_body missing; table fields must be specified after table_body and "
 "inside a list."
 msgstr ""
 
-#: ui-out.c:631
+#: ui-out.c:829
 msgid "ui-out internal error in handling headers."
 msgstr ""
 
@@ -32129,17 +32290,17 @@ msgstr ""
 msgid "List the names of the current user registers."
 msgstr ""
 
-#: utils.c:112
+#: utils.c:114
 #, possible-c-format
 msgid "Printing of 8-bit characters in strings as \\nnn is %s.\n"
 msgstr ""
 
-#: utils.c:126
+#: utils.c:128
 #, possible-c-format
 msgid "State of pagination is %s.\n"
 msgstr ""
 
-#: utils.c:241
+#: utils.c:243
 #, possible-c-format
 msgid ""
 "%s\n"
@@ -32147,20 +32308,20 @@ msgid ""
 "time.\n"
 msgstr ""
 
-#: utils.c:370
+#: utils.c:372
 #, possible-c-format
 msgid ""
 "%s\n"
 "Quit this debugging session? "
 msgstr ""
 
-#: utils.c:380
+#: utils.c:382
 msgid ""
 "\n"
 "This is a bug, please report it."
 msgstr ""
 
-#: utils.c:382
+#: utils.c:384
 #, possible-c-format
 msgid ""
 "  For instructions, see:\n"
@@ -32170,69 +32331,69 @@ msgstr ""
 #. Default (yes/batch case) is to dump core.  This leaves a GDB
 #. `dropping' so that it is easier to see that something went
 #. wrong in GDB.
-#: utils.c:397
+#: utils.c:399
 #, possible-c-format
 msgid ""
 "%s\n"
 "Create a core file of GDB? "
 msgstr ""
 
-#: utils.c:510
+#: utils.c:512
 #, possible-c-format
 msgid "Configure what GDB does when %s is detected."
 msgstr ""
 
-#: utils.c:513
+#: utils.c:515
 #, possible-c-format
 msgid "Show what GDB does when %s is detected."
 msgstr ""
 
-#: utils.c:532
+#: utils.c:534
 #, possible-c-format
 msgid "Set whether GDB should quit when an %s is detected."
 msgstr ""
 
-#: utils.c:535
+#: utils.c:537
 #, possible-c-format
 msgid "Show whether GDB will quit when an %s is detected."
 msgstr ""
 
-#: utils.c:555
+#: utils.c:557
 #, possible-c-format
 msgid "Set whether GDB should create a core file of GDB when %s is detected."
 msgstr ""
 
-#: utils.c:558
+#: utils.c:560
 #, possible-c-format
 msgid "Show whether GDB will create a core file of GDB when %s is detected."
 msgstr ""
 
-#: utils.c:693
+#: utils.c:695
 #, possible-c-format
 msgid "virtual memory exhausted: can't allocate %ld bytes."
 msgstr ""
 
-#: utils.c:698
+#: utils.c:700
 msgid "virtual memory exhausted."
 msgstr ""
 
-#: utils.c:842
+#: utils.c:844
 #, possible-c-format
 msgid "(%s or %s) [answered %c; input not from terminal]\n"
 msgstr ""
 
-#: utils.c:858
+#: utils.c:860
 #, possible-c-format
 msgid "%s%s(%s or %s) %s"
 msgstr ""
 
 #. Invalid entries are not defaulted and require another selection.
-#: utils.c:906
+#: utils.c:908
 #, possible-c-format
 msgid "Please answer %s or %s.\n"
 msgstr ""
 
-#: utils.c:1082
+#: utils.c:1084
 #, possible-c-format
 msgid ""
 "The escape sequence `\\%c' is equivalent to plain `%c', which has no "
@@ -32240,101 +32401,101 @@ msgid ""
 "in the `%s' character set."
 msgstr ""
 
-#: utils.c:1193
+#: utils.c:1195
 #, possible-c-format
 msgid "Number of lines gdb thinks are in a page is %s.\n"
 msgstr ""
 
-#: utils.c:1204
+#: utils.c:1206
 #, possible-c-format
 msgid "Number of characters gdb thinks are in a line is %s.\n"
 msgstr ""
 
-#: utils.c:2770
+#: utils.c:2829
 #, possible-c-format
 msgid "Timestamping debugging messages is %s.\n"
 msgstr ""
 
-#: utils.c:2874
+#: utils.c:2933
 #, possible-c-format
 msgid "invalid hex \"%s\""
 msgstr ""
 
-#: utils.c:2887
+#: utils.c:2946
 #, possible-c-format
 msgid "invalid decimal \"%s\""
 msgstr ""
 
-#: utils.c:3039
+#: utils.c:3098
 msgid "process-id to attach"
 msgstr ""
 
-#: utils.c:3045
+#: utils.c:3104
 #, possible-c-format
 msgid "Illegal process-id: %s."
 msgstr ""
 
-#: utils.c:3383
+#: utils.c:3442
 msgid "Set number of characters where GDB should wrap lines of its output."
 msgstr ""
 
-#: utils.c:3384
+#: utils.c:3443
 msgid "Show number of characters where GDB should wrap lines of its output."
 msgstr ""
 
-#: utils.c:3385
+#: utils.c:3444
 msgid ""
 "This affects where GDB wraps its output to fit the screen width.\n"
 "Setting this to \"unlimited\" or zero prevents GDB from wrapping its output."
 msgstr ""
 
-#: utils.c:3392
+#: utils.c:3451
 msgid "Set number of lines in a page for GDB output pagination."
 msgstr ""
 
-#: utils.c:3393
+#: utils.c:3452
 msgid "Show number of lines in a page for GDB output pagination."
 msgstr ""
 
-#: utils.c:3394
+#: utils.c:3453
 msgid ""
 "This affects the number of lines after which GDB will pause\n"
 "its output and ask you whether to continue.\n"
 "Setting this to \"unlimited\" or zero causes GDB never pause during output."
 msgstr ""
 
-#: utils.c:3403
+#: utils.c:3462
 msgid "Set state of GDB output pagination."
 msgstr ""
 
-#: utils.c:3404
+#: utils.c:3463
 msgid "Show state of GDB output pagination."
 msgstr ""
 
-#: utils.c:3405
+#: utils.c:3464
 msgid ""
 "When pagination is ON, GDB pauses at end of each screenful of\n"
 "its output and asks you whether to continue.\n"
 "Turning pagination off is an alternative to \"set height unlimited\"."
 msgstr ""
 
-#: utils.c:3414
+#: utils.c:3473
 msgid "Set printing of 8-bit characters in strings as \\nnn."
 msgstr ""
 
-#: utils.c:3415
+#: utils.c:3474
 msgid "Show printing of 8-bit characters in strings as \\nnn."
 msgstr ""
 
-#: utils.c:3422
+#: utils.c:3481
 msgid "Set timestamping of debugging messages."
 msgstr ""
 
-#: utils.c:3423
+#: utils.c:3482
 msgid "Show timestamping of debugging messages."
 msgstr ""
 
-#: utils.c:3424
+#: utils.c:3483
 msgid ""
 "When set, debugging messages will be marked with seconds and microseconds."
 msgstr ""
@@ -32602,11 +32763,11 @@ msgstr ""
 msgid "Value being assigned to is no longer active."
 msgstr ""
 
-#: valops.c:1136 value.c:1208
+#: valops.c:1136 value.c:1209
 msgid "value has been optimized out"
 msgstr ""
 
-#: valops.c:1139 value.c:1227
+#: valops.c:1139 value.c:1228
 msgid "value is not available"
 msgstr ""
 
@@ -32829,205 +32990,210 @@ msgstr ""
 msgid "Show overload resolution in evaluating C++ functions."
 msgstr ""
 
-#: valprint.c:151
+#: valprint.c:152
 #, possible-c-format
 msgid "Limit on string chars or array elements to print is %s.\n"
 msgstr ""
 
-#: valprint.c:165
+#: valprint.c:166
 #, possible-c-format
 msgid "Default input radix for entering numbers is %s.\n"
 msgstr ""
 
-#: valprint.c:175
+#: valprint.c:176
 #, possible-c-format
 msgid "Default output radix for printing of values is %s.\n"
 msgstr ""
 
-#: valprint.c:186
+#: valprint.c:187
 #, possible-c-format
 msgid "Printing of array indexes is %s.\n"
 msgstr ""
 
-#: valprint.c:197
+#: valprint.c:198
 #, possible-c-format
 msgid "Threshold for repeated print elements is %s.\n"
 msgstr ""
 
-#: valprint.c:208
+#: valprint.c:209
 #, possible-c-format
 msgid "Printing of char arrays to stop at first null char is %s.\n"
 msgstr ""
 
-#: valprint.c:219
+#: valprint.c:220
 #, possible-c-format
 msgid "Pretty formatting of structures is %s.\n"
 msgstr ""
 
-#: valprint.c:228
+#: valprint.c:229
 #, possible-c-format
 msgid "Pretty formatting of arrays is %s.\n"
 msgstr ""
 
-#: valprint.c:239
+#: valprint.c:240
 #, possible-c-format
 msgid "Printing of unions interior to structures is %s.\n"
 msgstr ""
 
-#: valprint.c:249
+#: valprint.c:250
 #, possible-c-format
 msgid "Printing of addresses is %s.\n"
 msgstr ""
 
-#: valprint.c:257
+#: valprint.c:258
 #, possible-c-format
 msgid "Printing of symbols when printing pointers is %s.\n"
 msgstr ""
 
-#: valprint.c:372
+#: valprint.c:374
 msgid "<optimized out>"
 msgstr ""
 
-#: valprint.c:378
+#: valprint.c:380
 msgid "<not saved>"
 msgstr ""
 
-#: valprint.c:390
+#: valprint.c:392
 msgid "<invalid address>"
 msgstr ""
 
-#: valprint.c:1003
+#: valprint.c:1005
 #, possible-c-format
 msgid "Unhandled type code %d in symbol table."
 msgstr ""
 
-#: valprint.c:1118
+#: valprint.c:1122
 msgid "<address of value unknown>"
 msgstr ""
 
-#: valprint.c:1142
+#: valprint.c:1147
 #, possible-c-format
 msgid "<internal function %s>"
 msgstr ""
 
-#: valprint.c:1384
+#: valprint.c:1389
 msgid "Value out of range."
 msgstr ""
 
-#: valprint.c:1572 valprint.c:1622
+#: valprint.c:1577 valprint.c:1627
 msgid "Internal error in octal conversion;"
 msgstr ""
 
-#: valprint.c:2908
+#: valprint.c:2640
+#, possible-c-format
+msgid " <repeats %u times>"
+msgstr ""
+
+#: valprint.c:2914
 #, possible-c-format
 msgid "Maximum print depth is %s.\n"
 msgstr ""
 
-#: valprint.c:2941
+#: valprint.c:2947
 #, possible-c-format
 msgid "Nonsense input radix ``decimal %u''; input radix unchanged."
 msgstr ""
 
-#: valprint.c:2947
+#: valprint.c:2953
 #, possible-c-format
 msgid "Input radix now set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:2983
+#: valprint.c:2989
 #, possible-c-format
 msgid "Unsupported output radix ``decimal %u''; output radix unchanged."
 msgstr ""
 
-#: valprint.c:2990
+#: valprint.c:2996
 #, possible-c-format
 msgid "Output radix now set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3014
+#: valprint.c:3020
 #, possible-c-format
 msgid "Input and output radices now set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3029
+#: valprint.c:3035
 #, possible-c-format
 msgid "Input and output radices set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3035
+#: valprint.c:3041
 #, possible-c-format
 msgid "Input radix set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3038
+#: valprint.c:3044
 #, possible-c-format
 msgid "Output radix set to decimal %u, hex %x, octal %o.\n"
 msgstr ""
 
-#: valprint.c:3079
+#: valprint.c:3085
 #, possible-c-format
 msgid "Printing of C++ virtual function tables is %s.\n"
 msgstr ""
 
-#: valprint.c:3091
+#: valprint.c:3097
 #, possible-c-format
 msgid "Printing of object's derived type based on vtable info is %s.\n"
 msgstr ""
 
-#: valprint.c:3102
+#: valprint.c:3108
 #, possible-c-format
 msgid "Printing of C++ static members is %s.\n"
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3125
+#: valprint.c:3131
 msgid "Set printing of addresses."
 msgstr ""
 
-#: valprint.c:3126
+#: valprint.c:3132
 msgid "Show printing of addresses."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3134
+#: valprint.c:3140
 msgid "Set pretty formatting of arrays."
 msgstr ""
 
-#: valprint.c:3135
+#: valprint.c:3141
 msgid "Show pretty formatting of arrays."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3143
+#: valprint.c:3149
 msgid "Set printing of array indexes."
 msgstr ""
 
-#: valprint.c:3144
+#: valprint.c:3150
 msgid "Show printing of array indexes."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3152
+#: valprint.c:3158
 msgid "Set limit on string chars or array elements to print."
 msgstr ""
 
-#: valprint.c:3153
+#: valprint.c:3159
 msgid "Show limit on string chars or array elements to print."
 msgstr ""
 
-#: valprint.c:3154
+#: valprint.c:3160
 msgid "\"unlimited\" causes there to be no limit."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3161
+#: valprint.c:3167
 msgid "Set maximum print depth for nested structures, unions and arrays."
 msgstr ""
 
-#: valprint.c:3162
+#: valprint.c:3168
 msgid "Show maximum print depth for nested structures, unions, and arrays."
 msgstr ""
 
-#: valprint.c:3163
+#: valprint.c:3169
 msgid ""
 "When structures, unions, or arrays are nested beyond this depth then they\n"
 "will be replaced with either '{...}' or '(...)' depending on the language.\n"
@@ -33035,101 +33201,101 @@ msgid ""
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3172
+#: valprint.c:3178
 msgid "Set printing of char arrays to stop at first null char."
 msgstr ""
 
-#: valprint.c:3173
+#: valprint.c:3179
 msgid "Show printing of char arrays to stop at first null char."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3181 valprint.c:3235
+#: valprint.c:3187 valprint.c:3241
 msgid "Set printing of C++ virtual function tables."
 msgstr ""
 
-#: valprint.c:3182 valprint.c:3236
+#: valprint.c:3188 valprint.c:3242
 msgid "Show printing of C++ virtual function tables."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3190
+#: valprint.c:3196
 msgid "Set pretty formatting of structures."
 msgstr ""
 
-#: valprint.c:3191
+#: valprint.c:3197
 msgid "Show pretty formatting of structures."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3199
+#: valprint.c:3205
 msgid "Set threshold for repeated print elements."
 msgstr ""
 
-#: valprint.c:3200
+#: valprint.c:3206
 msgid "Show threshold for repeated print elements."
 msgstr ""
 
-#: valprint.c:3201
+#: valprint.c:3207
 msgid "\"unlimited\" causes all elements to be individually printed."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3208
+#: valprint.c:3214
 msgid "Set printing of C++ static members."
 msgstr ""
 
-#: valprint.c:3209
+#: valprint.c:3215
 msgid "Show printing of C++ static members."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3217
+#: valprint.c:3223
 msgid "Set printing of symbol names when printing pointers."
 msgstr ""
 
-#: valprint.c:3218
+#: valprint.c:3224
 msgid "Show printing of symbol names when printing pointers."
 msgstr ""
 
 #. show_cmd_cb
-#: valprint.c:3226
+#: valprint.c:3232
 msgid "Set printing of unions interior to structures."
 msgstr ""
 
-#: valprint.c:3227
+#: valprint.c:3233
 msgid "Show printing of unions interior to structures."
 msgstr ""
 
-#: valprint.c:3255
+#: valprint.c:3261
 msgid "Generic command for setting how things print."
 msgstr ""
 
-#: valprint.c:3262
+#: valprint.c:3268
 msgid "Generic command for showing print settings."
 msgstr ""
 
-#: valprint.c:3268
+#: valprint.c:3274
 msgid "Generic command for setting what things to print in \"raw\" mode."
 msgstr ""
 
-#: valprint.c:3275
+#: valprint.c:3281
 msgid "Generic command for showing \"print raw\" settings."
 msgstr ""
 
-#: valprint.c:3285
+#: valprint.c:3291
 msgid "Set default input radix for entering numbers."
 msgstr ""
 
-#: valprint.c:3286
+#: valprint.c:3292
 msgid "Show default input radix for entering numbers."
 msgstr ""
 
-#: valprint.c:3293
+#: valprint.c:3299
 msgid "Set default output radix for printing of values."
 msgstr ""
 
-#: valprint.c:3294
+#: valprint.c:3300
 msgid "Show default output radix for printing of values."
 msgstr ""
 
@@ -33140,83 +33306,83 @@ msgstr ""
 #. add_show_from_set() commands aren't really appropriate.
 #. FIXME: i18n: With the new add_setshow_integer command, that is no
 #. longer true - show can display anything.
-#: valprint.c:3307
+#: valprint.c:3313
 msgid ""
 "Set default input and output number radices.\n"
 "Use 'set input-radix' or 'set output-radix' to independently set each.\n"
 "Without an argument, sets both radices back to the default value of 10."
 msgstr ""
 
-#: valprint.c:3312
+#: valprint.c:3318
 msgid ""
 "Show the default input and output number radices.\n"
 "Use 'show input-radix' or 'show output-radix' to independently show each."
 msgstr ""
 
-#: value.c:972
+#: value.c:973
 #, possible-c-format
 msgid "max-value-size set too low, increasing to %d bytes"
 msgstr ""
 
-#: value.c:984
+#: value.c:985
 msgid "Maximum value size is unlimited.\n"
 msgstr ""
 
-#: value.c:986
+#: value.c:987
 #, possible-c-format
 msgid "Maximum value size is %d bytes.\n"
 msgstr ""
 
-#: value.c:1004
+#: value.c:1005
 #, possible-c-format
 msgid "value of type `%s' requires %u bytes, which is more than max-value-size"
 msgstr ""
 
-#: value.c:1007
+#: value.c:1008
 #, possible-c-format
 msgid "value requires %u bytes, which is more than max-value-size"
 msgstr ""
 
-#: value.c:1217
+#: value.c:1218
 msgid "register has not been saved in frame"
 msgstr ""
 
-#: value.c:1817
+#: value.c:1818
 msgid "The history is empty."
 msgstr ""
 
-#: value.c:1819
+#: value.c:1820
 msgid "There is only one value in the history."
 msgstr ""
 
-#: value.c:1821
+#: value.c:1822
 #, possible-c-format
 msgid "History does not go back to $$%d."
 msgstr ""
 
-#: value.c:1824
+#: value.c:1825
 #, possible-c-format
 msgid "History has not yet reached $%d."
 msgstr ""
 
-#: value.c:1970
+#: value.c:1971
 msgid "Init-if-undefined requires an assignment expression."
 msgstr ""
 
-#: value.c:1975
+#: value.c:1976
 msgid "The first parameter to init-if-undefined should be a GDB variable."
 msgstr ""
 
-#: value.c:2148
+#: value.c:2149
 msgid "bad kind"
 msgstr ""
 
 #. We can never get a component of any other kind.
-#: value.c:2242
+#: value.c:2243
 msgid "set_internalvar_component"
 msgstr ""
 
-#: value.c:2253
+#: value.c:2254
 #, possible-c-format
 msgid "Cannot overwrite convenience function %s"
 msgstr ""
@@ -33225,67 +33391,67 @@ msgstr ""
 #. The user can't create them except via Python, and if Python support
 #. is installed this message will never be printed ($_streq will
 #. exist).
-#: value.c:2553
+#: value.c:2555
 msgid ""
 "No debugger convenience variables now defined.\n"
 "Convenience variables have names starting with \"$\";\n"
 "use \"set\" as in \"set $foo = 5\" to define them.\n"
 msgstr ""
 
-#: value.c:2777
+#: value.c:2779
 msgid "Value can't be converted to integer."
 msgstr ""
 
-#: value.c:2810
+#: value.c:2812
 msgid "Invalid floating value found in program."
 msgstr ""
 
 #. FIXME: would like to include fieldval in the message, but
 #. we don't have a sprintf_longest.
-#: value.c:3289
+#: value.c:3291
 #, possible-c-format
 msgid "Value does not fit in %s bits."
 msgstr ""
 
-#: value.c:3348
+#: value.c:3350
 #, possible-c-format
 msgid "Unexpected type (%d) encountered for integer constant."
 msgstr ""
 
-#: value.c:3390
+#: value.c:3392
 #, possible-c-format
 msgid "Unexpected type (%d) encountered for unsigned integer constant."
 msgstr ""
 
-#: value.c:3690
+#: value.c:3692
 msgid "Function return type unknown."
 msgstr ""
 
-#: value.c:3821
+#: value.c:3823
 msgid "infinite loop while fetching a register"
 msgstr ""
 
-#: value.c:3916
+#: value.c:3918
 msgid "Unexpected lazy value type."
 msgstr ""
 
-#: value.c:3931
+#: value.c:3933
 msgid "You must provide one argument for $_isvoid."
 msgstr ""
 
-#: value.c:3947
+#: value.c:3949
 msgid "You must provide one argument for $_creal."
 msgstr ""
 
-#: value.c:3952 value.c:3971
+#: value.c:3954 value.c:3973
 msgid "expected a complex number"
 msgstr ""
 
-#: value.c:3966
+#: value.c:3968
 msgid "You must provide one argument for $_cimag."
 msgstr ""
 
-#: value.c:4121
+#: value.c:4123
 msgid ""
 "Debugger convenience (\"$foo\") variables and functions.\n"
 "Convenience variables are created when you assign them values;\n"
@@ -33298,11 +33464,11 @@ msgid ""
 "Convenience functions are defined via the Python API."
 msgstr ""
 
-#: value.c:4136
+#: value.c:4138
 msgid "Elements of value history around item number IDX (or last ten)."
 msgstr ""
 
-#: value.c:4140
+#: value.c:4142
 msgid ""
 "Initialize a convenience variable if necessary.\n"
 "init-if-undefined VARIABLE = EXPRESSION\n"
@@ -33311,18 +33477,18 @@ msgid ""
 "VARIABLE is already initialized."
 msgstr ""
 
-#: value.c:4147
+#: value.c:4149
 msgid "Placeholder command for showing help on convenience functions."
 msgstr ""
 
-#: value.c:4151
+#: value.c:4153
 msgid ""
 "Check whether an expression is void.\n"
 "Usage: $_isvoid (expression)\n"
 "Return 1 if the expression is void, zero otherwise."
 msgstr ""
 
-#: value.c:4157
+#: value.c:4159
 msgid ""
 "Extract the real part of a complex number.\n"
 "Usage: $_creal (expression)\n"
@@ -33330,7 +33496,7 @@ msgid ""
 "type of a complex number."
 msgstr ""
 
-#: value.c:4164
+#: value.c:4166
 msgid ""
 "Extract the imaginary part of a complex number.\n"
 "Usage: $_cimag (expression)\n"
@@ -33338,15 +33504,15 @@ msgid ""
 "type of a complex number."
 msgstr ""
 
-#: value.c:4172
+#: value.c:4174
 msgid "Set maximum sized value gdb will load from the inferior."
 msgstr ""
 
-#: value.c:4173
+#: value.c:4175
 msgid "Show maximum sized value gdb will load from the inferior."
 msgstr ""
 
-#: value.c:4174
+#: value.c:4176
 msgid ""
 "Use this to control the maximum size, in bytes, of a value that gdb\n"
 "will load from the inferior.  Setting this value to 'unlimited'\n"
@@ -33743,44 +33909,44 @@ msgstr ""
 msgid "Unexpected storage class: %d"
 msgstr ""
 
-#: xcoffread.c:1716
+#: xcoffread.c:1718
 msgid "Invalid symbol offset"
 msgstr ""
 
-#: xcoffread.c:1973
+#: xcoffread.c:1975
 #, possible-c-format
 msgid "cannot seek to string table in %s: %s"
 msgstr ""
 
-#: xcoffread.c:2000
+#: xcoffread.c:2002
 #, possible-c-format
 msgid "cannot read string table from %s: %s"
 msgstr ""
 
-#: xcoffread.c:2003
+#: xcoffread.c:2005
 msgid "bad symbol file: string table does not end with null character"
 msgstr ""
 
-#: xcoffread.c:2350
+#: xcoffread.c:2352
 msgid "More than one XMC_TC0 symbol found."
 msgstr ""
 
-#: xcoffread.c:2499
+#: xcoffread.c:2501
 #, possible-c-format
 msgid "Storage class %d not recognized during scan"
 msgstr ""
 
-#: xcoffread.c:2964
+#: xcoffread.c:2966
 #, possible-c-format
 msgid "Error reading .debug section of `%s': %s"
 msgstr ""
 
-#: xcoffread.c:2977
+#: xcoffread.c:2979
 #, possible-c-format
 msgid "Error reading symbols from %s: %s"
 msgstr ""
 
-#: xcoffread.c:2985
+#: xcoffread.c:2987
 msgid "reading symbol table"
 msgstr ""
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/printcmd.c ./gdb/printcmd.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/printcmd.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/printcmd.c	2019-10-08 01:49:31.000000000 +0000
@@ -2001,8 +2001,9 @@ do_one_display (struct display *d)
 	}
       catch (const gdb_exception_error &ex)
 	{
-	  fprintf_filtered (gdb_stdout, _("<error: %s>\n"),
-			    ex.what ());
+	  fprintf_filtered (gdb_stdout, _("%p[<error: %s>%p]\n"),
+			    metadata_style.style ().ptr (), ex.what (),
+			    nullptr);
 	}
     }
   else
@@ -2035,7 +2036,8 @@ do_one_display (struct display *d)
 	}
       catch (const gdb_exception_error &ex)
 	{
-	  fprintf_filtered (gdb_stdout, _("<error: %s>"), ex.what ());
+	  fprintf_styled (gdb_stdout, metadata_style.style (),
+			  _("<error: %s>"), ex.what ());
 	}
 
       printf_filtered ("\n");
@@ -2214,9 +2216,8 @@ print_variable_and_value (const char *na
   if (!name)
     name = SYMBOL_PRINT_NAME (var);
 
-  fputs_filtered (n_spaces (2 * indent), stream);
-  fputs_styled (name, variable_name_style.style (), stream);
-  fputs_filtered (" = ", stream);
+  fprintf_filtered (stream, "%s%ps = ", n_spaces (2 * indent),
+		    styled_string (variable_name_style.style (), name));
 
   try
     {
@@ -2238,8 +2239,9 @@ print_variable_and_value (const char *na
     }
   catch (const gdb_exception_error &except)
     {
-      fprintf_filtered (stream, "<error reading variable %s (%s)>", name,
-			except.what ());
+      fprintf_styled (stream, metadata_style.style (),
+		      "<error reading variable %s (%s)>", name,
+		      except.what ());
     }
 
   fprintf_filtered (stream, "\n");
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/p-typeprint.c ./gdb/p-typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/p-typeprint.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/p-typeprint.c	2019-10-08 01:49:31.000000000 +0000
@@ -32,6 +32,7 @@
 #include "typeprint.h"
 #include "gdb-demangle.h"
 #include <ctype.h>
+#include "cli/cli-style.h"
 
 static void pascal_type_print_varspec_suffix (struct type *, struct ui_file *,
 					      int, int, int,
@@ -470,7 +471,7 @@ pascal_type_print_base (struct type *typ
   wrap_here ("    ");
   if (type == NULL)
     {
-      fputs_filtered ("<type unknown>", stream);
+      fputs_styled ("<type unknown>", metadata_style.style (), stream);
       return;
     }
 
@@ -827,8 +828,9 @@ pascal_type_print_base (struct type *typ
 	{
 	  /* At least for dump_symtab, it is important that this not be
 	     an error ().  */
-	  fprintf_filtered (stream, "<invalid unnamed pascal type code %d>",
-			    TYPE_CODE (type));
+	  fprintf_styled (stream, metadata_style.style (),
+			  "<invalid unnamed pascal type code %d>",
+			  TYPE_CODE (type));
 	}
       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.3.50.20191001/gdb/p-valprint.c ./gdb/p-valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/p-valprint.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/p-valprint.c	2019-10-08 01:49:31.000000000 +0000
@@ -39,6 +39,7 @@
 #include "cp-support.h"
 #include "objfiles.h"
 #include "gdbsupport/byte-vector.h"
+#include "cli/cli-style.h"
 
 
 /* Decorations for Pascal.  */
@@ -347,7 +348,7 @@ pascal_val_print (struct type *type,
       elttype = check_typedef (elttype);
       if (TYPE_STUB (elttype))
 	{
-	  fprintf_filtered (stream, "<incomplete type>");
+	  fprintf_styled (stream, metadata_style.style (), "<incomplete type>");
 	  break;
 	}
       else
@@ -370,7 +371,7 @@ pascal_val_print (struct type *type,
 	maybe_bad_bstring:
 	  if (bound_info < 0)
 	    {
-	      fputs_filtered ("<error value>", stream);
+	      fputs_styled ("<error value>", metadata_style.style (), stream);
 	      goto done;
 	    }
 
@@ -557,7 +558,7 @@ pascal_object_print_value_fields (struct
 			       options, dont_print_vb);
 
   if (!len && n_baseclasses == 1)
-    fprintf_filtered (stream, "<No data fields>");
+    fprintf_styled (stream, metadata_style.style (), "<No data fields>");
   else
     {
       struct obstack tmp_obstack = dont_print_statmem_obstack;
@@ -622,7 +623,8 @@ pascal_object_print_value_fields (struct
 	         order problems.  */
 	      if (TYPE_FIELD_IGNORE (type, i))
 		{
-		  fputs_filtered ("<optimized out or zero length>", stream);
+		  fputs_styled ("<optimized out or zero length>",
+				metadata_style.style (), stream);
 		}
 	      else if (value_bits_synthetic_pointer (val,
 						     TYPE_FIELD_BITPOS (type,
@@ -630,7 +632,8 @@ pascal_object_print_value_fields (struct
 						     TYPE_FIELD_BITSIZE (type,
 									 i)))
 		{
-		  fputs_filtered (_("<synthetic pointer>"), stream);
+		  fputs_styled (_("<synthetic pointer>"),
+				metadata_style.style (), stream);
 		}
 	      else
 		{
@@ -647,7 +650,8 @@ pascal_object_print_value_fields (struct
 	    {
 	      if (TYPE_FIELD_IGNORE (type, i))
 		{
-		  fputs_filtered ("<optimized out or zero length>", stream);
+		  fputs_styled ("<optimized out or zero length>",
+				metadata_style.style (), stream);
 		}
 	      else if (field_is_static (&TYPE_FIELD (type, i)))
 		{
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/python/py-framefilter.c ./gdb/python/py-framefilter.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/python/py-framefilter.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/python/py-framefilter.c	2019-10-08 01:49:31.000000000 +0000
@@ -33,6 +33,7 @@
 #include "mi/mi-cmds.h"
 #include "python-internal.h"
 #include "gdbsupport/gdb_optional.h"
+#include "cli/cli-style.h"
 
 enum mi_print_types
 {
@@ -396,7 +397,7 @@ py_print_single_arg (struct ui_out *out,
 	  if (val == NULL)
 	    {
 	      gdb_assert (fa != NULL && fa->error != NULL);
-	      out->field_fmt ("value",
+	      out->field_fmt ("value", metadata_style.style (),
 			      _("<error reading variable: %s>"),
 			      fa->error.get ());
 	    }
@@ -947,7 +948,7 @@ py_print_frame (PyObject *filter, frame_
 	  if (function == NULL)
 	    out->field_skip ("func");
 	  else
-	    out->field_string ("func", function, ui_out_style_kind::FUNCTION);
+	    out->field_string ("func", function, function_name_style.style ());
 	}
     }
 
@@ -987,7 +988,7 @@ py_print_frame (PyObject *filter, frame_
 	      out->text (" at ");
 	      annotate_frame_source_file ();
 	      out->field_string ("file", filename.get (),
-				 ui_out_style_kind::FILE);
+				 file_name_style.style ());
 	      annotate_frame_source_file_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.3.50.20191001/gdb/python/py-prettyprint.c ./gdb/python/py-prettyprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/python/py-prettyprint.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/python/py-prettyprint.c	2019-10-08 01:49:31.000000000 +0000
@@ -25,6 +25,7 @@
 #include "extension-priv.h"
 #include "python.h"
 #include "python-internal.h"
+#include "cli/cli-style.h"
 
 /* Return type of print_string_repr.  */
 
@@ -259,10 +260,11 @@ print_stack_unless_memory_error (struct 
       gdb::unique_xmalloc_ptr<char> msg = fetched_error.to_string ();
 
       if (msg == NULL || *msg == '\0')
-	fprintf_filtered (stream, _("<error reading variable>"));
+	fprintf_styled (stream, metadata_style.style (),
+			_("<error reading variable>"));
       else
-	fprintf_filtered (stream, _("<error reading variable: %s>"),
-			  msg.get ());
+	fprintf_styled (stream, metadata_style.style (),
+			_("<error reading variable: %s>"), msg.get ());
     }
   else
     gdbpy_print_stack ();
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/record-btrace.c ./gdb/record-btrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/record-btrace.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/record-btrace.c	2019-10-08 01:49:31.000000000 +0000
@@ -42,6 +42,7 @@
 #include "inferior.h"
 #include <algorithm>
 #include "gdbarch.h"
+#include "cli/cli-style.h"
 
 static const target_info record_btrace_target_info = {
   "record-btrace",
@@ -1084,7 +1085,7 @@ btrace_call_history_src_line (struct ui_
 
   uiout->field_string ("file",
 		       symtab_to_filename_for_display (symbol_symtab (sym)),
-		       ui_out_style_kind::FILE);
+		       file_name_style.style ());
 
   btrace_compute_src_line_range (bfun, &begin, &end);
   if (end < begin)
@@ -1176,13 +1177,13 @@ btrace_call_history (struct ui_out *uiou
 
       if (sym != NULL)
 	uiout->field_string ("function", SYMBOL_PRINT_NAME (sym),
-			     ui_out_style_kind::FUNCTION);
+			     function_name_style.style ());
       else if (msym != NULL)
 	uiout->field_string ("function", MSYMBOL_PRINT_NAME (msym),
-			     ui_out_style_kind::FUNCTION);
+			     function_name_style.style ());
       else if (!uiout->is_mi_like_p ())
 	uiout->field_string ("function", "??",
-			     ui_out_style_kind::FUNCTION);
+			     function_name_style.style ());
 
       if ((flags & RECORD_PRINT_INSN_RANGE) != 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.3.50.20191001/gdb/rust-lang.c ./gdb/rust-lang.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/rust-lang.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/rust-lang.c	2019-10-08 01:49:31.000000000 +0000
@@ -37,6 +37,7 @@
 #include <algorithm>
 #include <string>
 #include <vector>
+#include "cli/cli-style.h"
 
 /* See rust-lang.h.  */
 
@@ -473,7 +474,9 @@ rust_print_enum (struct type *type, int 
   if (rust_empty_enum_p (type))
     {
       /* Print the enum type name here to be more clear.  */
-      fprintf_filtered (stream, _("%s {<No data fields>}"), TYPE_NAME (type));
+      fprintf_filtered (stream, _("%s {%p[<No data fields>%p]}"),
+			TYPE_NAME (type),
+			metadata_style.style ().ptr (), nullptr);
       return;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/skip.c ./gdb/skip.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/skip.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/skip.c	2019-10-08 01:49:31.000000000 +0000
@@ -36,6 +36,7 @@
 #include "gdb_regex.h"
 #include "gdbsupport/gdb_optional.h"
 #include <list>
+#include "cli/cli-style.h"
 
 /* True if we want to print debug printouts related to file/function
    skipping. */
@@ -414,7 +415,9 @@ info_skip_command (const char *arg, int 
       current_uiout->field_string ("file",
 				   e.file ().empty () ? "<none>"
 				   : e.file ().c_str (),
-				   ui_out_style_kind::FILE); /* 4 */
+				   e.file ().empty ()
+				   ? metadata_style.style ()
+				   : file_name_style.style ()); /* 4 */
       if (e.function_is_regexp ())
 	current_uiout->field_string ("regexp", "y"); /* 5 */
       else
@@ -423,7 +426,9 @@ info_skip_command (const char *arg, int 
       current_uiout->field_string ("function",
 				   e.function ().empty () ? "<none>"
 				   : e.function ().c_str (),
-				   ui_out_style_kind::FUNCTION); /* 6 */
+				   e.function ().empty ()
+				   ? metadata_style.style ()
+				   : function_name_style.style ()); /* 6 */
 
       current_uiout->text ("\n");
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/solib.c ./gdb/solib.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/solib.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/solib.c	2019-10-08 01:49:31.000000000 +0000
@@ -47,6 +47,7 @@
 #include "gdb_bfd.h"
 #include "gdbsupport/filestuff.h"
 #include "source.h"
+#include "cli/cli-style.h"
 
 /* Architecture-specific operations.  */
 
@@ -1104,7 +1105,7 @@ info_sharedlibrary_command (const char *
 	else
 	  uiout->field_string ("syms-read", so->symbols_loaded ? "Yes" : "No");
 
-	uiout->field_string ("name", so->so_name, ui_out_style_kind::FILE);
+	uiout->field_string ("name", so->so_name, file_name_style.style ());
 
 	uiout->text ("\n");
       }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/source.c ./gdb/source.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/source.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/source.c	2019-10-08 01:49:31.000000000 +0000
@@ -46,6 +46,7 @@
 #include <algorithm>
 #include "gdbsupport/pathstuff.h"
 #include "source-cache.h"
+#include "cli/cli-style.h"
 
 #define OPEN_MODE (O_RDONLY | O_BINARY)
 #define FDOPEN_MODE FOPEN_RB
@@ -66,15 +67,20 @@ struct substitute_path_rule
 
 static struct substitute_path_rule *substitute_path_rules = NULL;
 
-/* Symtab of default file for listing lines of.  */
+/* An instance of this is attached to each program space.  */
 
-static struct symtab *current_source_symtab;
+struct current_source_location
+{
+  /* Symtab of default file for listing lines of.  */
+
+  struct symtab *symtab = nullptr;
 
-/* Default next line to list.  */
+  /* Default next line to list.  */
 
-static int current_source_line;
+  int line = 0;
+};
 
-static struct program_space *current_source_pspace;
+static program_space_key<current_source_location> current_source_key;
 
 /* Default number of lines to print with commands like "list".
    This is based on guessing how many long (i.e. more than chars_per_line
@@ -162,6 +168,19 @@ get_lines_to_list (void)
   return lines_to_list;
 }
 
+/* A helper to return the current source location object for PSPACE,
+   creating it if it does not exist.  */
+
+static current_source_location *
+get_source_location (program_space *pspace)
+{
+  current_source_location *loc
+    = current_source_key.get (pspace);
+  if (loc == nullptr)
+    loc = current_source_key.emplace (pspace);
+  return loc;
+}
+
 /* Return the current source file for listing and next line to list.
    NOTE: The returned sal pc and end fields are not valid.  */
    
@@ -169,10 +188,11 @@ struct symtab_and_line
 get_current_source_symtab_and_line (void)
 {
   symtab_and_line cursal;
+  current_source_location *loc = get_source_location (current_program_space);
 
-  cursal.pspace = current_source_pspace;
-  cursal.symtab = current_source_symtab;
-  cursal.line = current_source_line;
+  cursal.pspace = current_program_space;
+  cursal.symtab = loc->symtab;
+  cursal.line = loc->line;
   cursal.pc = 0;
   cursal.end = 0;
   
@@ -194,7 +214,8 @@ set_default_source_symtab_and_line (void
     error (_("No symbol table is loaded.  Use the \"file\" command."));
 
   /* Pull in a current source symtab if necessary.  */
-  if (current_source_symtab == 0)
+  current_source_location *loc = get_source_location (current_program_space);
+  if (loc->symtab == nullptr)
     select_source_symtab (0);
 }
 
@@ -208,15 +229,16 @@ set_current_source_symtab_and_line (cons
 {
   symtab_and_line cursal;
 
-  cursal.pspace = current_source_pspace;
-  cursal.symtab = current_source_symtab;
-  cursal.line = current_source_line;
+  current_source_location *loc = get_source_location (sal.pspace);
+
+  cursal.pspace = sal.pspace;
+  cursal.symtab = loc->symtab;
+  cursal.line = loc->line;
   cursal.pc = 0;
   cursal.end = 0;
 
-  current_source_pspace = sal.pspace;
-  current_source_symtab = sal.symtab;
-  current_source_line = sal.line;
+  loc->symtab = sal.symtab;
+  loc->line = sal.line;
 
   /* Force the next "list" to center around the current line.  */
   clear_lines_listed_range ();
@@ -229,8 +251,9 @@ set_current_source_symtab_and_line (cons
 void
 clear_current_source_symtab_and_line (void)
 {
-  current_source_symtab = 0;
-  current_source_line = 0;
+  current_source_location *loc = get_source_location (current_program_space);
+  loc->symtab = nullptr;
+  loc->line = 0;
 }
 
 /* See source.h.  */
@@ -240,34 +263,32 @@ select_source_symtab (struct symtab *s)
 {
   if (s)
     {
-      current_source_symtab = s;
-      current_source_line = 1;
-      current_source_pspace = SYMTAB_PSPACE (s);
+      current_source_location *loc
+	= get_source_location (SYMTAB_PSPACE (s));
+      loc->symtab = s;
+      loc->line = 1;
       return;
     }
 
-  if (current_source_symtab)
+  current_source_location *loc = get_source_location (current_program_space);
+  if (loc->symtab != nullptr)
     return;
 
   /* Make the default place to list be the function `main'
      if one exists.  */
-  if (lookup_symbol (main_name (), 0, VAR_DOMAIN, 0).symbol)
+  block_symbol bsym = lookup_symbol (main_name (), 0, VAR_DOMAIN, 0);
+  if (bsym.symbol != nullptr && SYMBOL_CLASS (bsym.symbol) == LOC_BLOCK)
     {
-      std::vector<symtab_and_line> sals
-	= decode_line_with_current_source (main_name (),
-					   DECODE_LINE_FUNFIRSTLINE);
-      const symtab_and_line &sal = sals[0];
-      current_source_pspace = sal.pspace;
-      current_source_symtab = sal.symtab;
-      current_source_line = std::max (sal.line - (lines_to_list - 1), 1);
-      if (current_source_symtab)
-	return;
+      symtab_and_line sal = find_function_start_sal (bsym.symbol, true);
+      loc->symtab = sal.symtab;
+      loc->line = std::max (sal.line - (lines_to_list - 1), 1);
+      return;
     }
 
   /* Alright; find the last file in the symtab list (ignoring .h's
      and namespace symtabs).  */
 
-  current_source_line = 1;
+  loc->line = 1;
 
   for (objfile *ofp : current_program_space->objfiles ())
     {
@@ -280,15 +301,12 @@ select_source_symtab (struct symtab *s)
 
 	      if (!(len > 2 && (strcmp (&name[len - 2], ".h") == 0
 				|| strcmp (name, "<<C++-namespaces>>") == 0)))
-		{
-		  current_source_pspace = current_program_space;
-		  current_source_symtab = symtab;
-		}
+		loc->symtab = symtab;
 	    }
 	}
     }
 
-  if (current_source_symtab)
+  if (loc->symtab != nullptr)
     return;
 
   for (objfile *objfile : current_program_space->objfiles ())
@@ -296,9 +314,9 @@ select_source_symtab (struct symtab *s)
       if (objfile->sf)
 	s = objfile->sf->qf->find_last_source_symtab (objfile);
       if (s)
-	current_source_symtab = s;
+	loc->symtab = s;
     }
-  if (current_source_symtab)
+  if (loc->symtab != nullptr)
     return;
 
   error (_("Can't find a default source file"));
@@ -622,7 +640,9 @@ add_path (const char *dirname, char **wh
 static void
 info_source_command (const char *ignore, int from_tty)
 {
-  struct symtab *s = current_source_symtab;
+  current_source_location *loc
+    = get_source_location (current_program_space);
+  struct symtab *s = loc->symtab;
   struct compunit_symtab *cust;
 
   if (!s)
@@ -1181,8 +1201,11 @@ print_source_lines_base (struct symtab *
   struct ui_out *uiout = current_uiout;
 
   /* Regardless of whether we can open the file, set current_source_symtab.  */
-  current_source_symtab = s;
-  current_source_line = line;
+  current_source_location *loc
+    = get_source_location (current_program_space);
+
+  loc->symtab = s;
+  loc->line = line;
   first_line_listed = line;
 
   /* If printing of source lines is disabled, just print file and line
@@ -1235,7 +1258,7 @@ print_source_lines_base (struct symtab *
 	     not for TUI.  */
 	  if (uiout->is_mi_like_p () || uiout->test_flags (ui_source_list))
 	    uiout->field_string ("file", symtab_to_filename_for_display (s),
-				 ui_out_style_kind::FILE);
+				 file_name_style.style ());
 	  if (uiout->is_mi_like_p () || !uiout->test_flags (ui_source_list))
  	    {
 	      const char *s_fullname = symtab_to_fullname (s);
@@ -1276,13 +1299,13 @@ print_source_lines_base (struct symtab *
     {
       char buf[20];
 
-      last_line_listed = current_source_line;
+      last_line_listed = loc->line;
       if (flags & PRINT_SOURCE_LINES_FILENAME)
         {
           uiout->text (symtab_to_filename_for_display (s));
           uiout->text (":");
         }
-      xsnprintf (buf, sizeof (buf), "%d\t", current_source_line++);
+      xsnprintf (buf, sizeof (buf), "%d\t", loc->line++);
       uiout->text (buf);
 
       while (*iter != '\0')
@@ -1374,12 +1397,14 @@ info_line_command (const char *arg, int 
 
   if (arg == 0)
     {
-      curr_sal.symtab = current_source_symtab;
+      current_source_location *loc
+	= get_source_location (current_program_space);
+      curr_sal.symtab = loc->symtab;
       curr_sal.pspace = current_program_space;
       if (last_line_listed != 0)
 	curr_sal.line = last_line_listed;
       else
-	curr_sal.line = current_source_line;
+	curr_sal.line = loc->line;
 
       sals = curr_sal;
     }
@@ -1481,12 +1506,14 @@ search_command_helper (const char *regex
   if (msg)
     error (("%s"), msg);
 
-  if (current_source_symtab == 0)
+  current_source_location *loc
+    = get_source_location (current_program_space);
+  if (loc->symtab == nullptr)
     select_source_symtab (0);
 
-  scoped_fd desc (open_source_file (current_source_symtab));
+  scoped_fd desc (open_source_file (loc->symtab));
   if (desc.get () < 0)
-    perror_with_name (symtab_to_filename_for_display (current_source_symtab));
+    perror_with_name (symtab_to_filename_for_display (loc->symtab));
 
   int line = (forward
 	      ? last_line_listed + 1
@@ -1494,12 +1521,12 @@ search_command_helper (const char *regex
 
   const std::vector<off_t> *offsets;
   if (line < 1
-      || !g_source_cache.get_line_charpos (current_source_symtab, &offsets)
+      || !g_source_cache.get_line_charpos (loc->symtab, &offsets)
       || line > offsets->size ())
     error (_("Expression not found"));
 
   if (lseek (desc.get (), (*offsets)[line - 1], 0) < 0)
-    perror_with_name (symtab_to_filename_for_display (current_source_symtab));
+    perror_with_name (symtab_to_filename_for_display (loc->symtab));
 
   gdb_file_up stream = desc.to_file (FDOPEN_MODE);
   clearerr (stream.get ());
@@ -1534,9 +1561,9 @@ search_command_helper (const char *regex
       if (re_exec (buf.data ()) > 0)
 	{
 	  /* Match!  */
-	  print_source_lines (current_source_symtab, line, line + 1, 0);
+	  print_source_lines (loc->symtab, line, line + 1, 0);
 	  set_internalvar_integer (lookup_internalvar ("_"), line);
-	  current_source_line = std::max (line - lines_to_list / 2, 1);
+	  loc->line = std::max (line - lines_to_list / 2, 1);
 	  return;
 	}
 
@@ -1550,7 +1577,7 @@ search_command_helper (const char *regex
 	  if (fseek (stream.get (), (*offsets)[line - 1], 0) < 0)
 	    {
 	      const char *filename
-		= symtab_to_filename_for_display (current_source_symtab);
+		= symtab_to_filename_for_display (loc->symtab);
 	      perror_with_name (filename);
 	    }
 	}
@@ -1814,7 +1841,6 @@ _initialize_source (void)
 {
   struct cmd_list_element *c;
 
-  current_source_symtab = 0;
   init_source_path ();
 
   /* The intention is to use POSIX Basic Regular Expressions.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/stabsread.c ./gdb/stabsread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/stabsread.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/stabsread.c	2019-10-08 01:49:31.000000000 +0000
@@ -42,6 +42,7 @@
 #include "gdb-demangle.h"
 #include "language.h"
 #include "target-float.h"
+#include "c-lang.h"
 #include "cp-abi.h"
 #include "cp-support.h"
 #include <ctype.h>
@@ -942,7 +943,7 @@ define_symbol (CORE_ADDR valu, const cha
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_ACLASS_INDEX (sym) = LOC_LABEL;
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
-      SYMBOL_VALUE_ADDRESS (sym) = valu;
+      SET_SYMBOL_VALUE_ADDRESS (sym, valu);
       add_symbol_to_list (sym, get_local_symbols ());
       break;
 
@@ -1188,7 +1189,7 @@ define_symbol (CORE_ADDR valu, const cha
       /* Static symbol at top level of file.  */
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
-      SYMBOL_VALUE_ADDRESS (sym) = valu;
+      SET_SYMBOL_VALUE_ADDRESS (sym, valu);
       if (gdbarch_static_transform_name_p (gdbarch)
 	  && gdbarch_static_transform_name (gdbarch,
 					    SYMBOL_LINKAGE_NAME (sym))
@@ -1204,7 +1205,8 @@ define_symbol (CORE_ADDR valu, const cha
 		(gdbarch, SYMBOL_LINKAGE_NAME (sym));
 
 	      SYMBOL_SET_LINKAGE_NAME (sym, new_name);
-	      SYMBOL_VALUE_ADDRESS (sym) = BMSYMBOL_VALUE_ADDRESS (msym);
+	      SET_SYMBOL_VALUE_ADDRESS (sym,
+					BMSYMBOL_VALUE_ADDRESS (msym));
 	    }
 	}
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
@@ -1258,11 +1260,6 @@ define_symbol (CORE_ADDR valu, const cha
 
       if (TYPE_NAME (SYMBOL_TYPE (sym)) == NULL)
 	{
-	  /* gcc-2.6 or later (when using -fvtable-thunks)
-	     emits a unique named type for a vtable entry.
-	     Some gdb code depends on that specific name.  */
-	  extern const char vtbl_ptr_name[];
-
 	  if ((TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_PTR
 	       && strcmp (SYMBOL_LINKAGE_NAME (sym), vtbl_ptr_name))
 	      || TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_FUNC)
@@ -1380,7 +1377,7 @@ define_symbol (CORE_ADDR valu, const cha
       /* Static symbol of local scope.  */
       SYMBOL_TYPE (sym) = read_type (&p, objfile);
       SYMBOL_ACLASS_INDEX (sym) = LOC_STATIC;
-      SYMBOL_VALUE_ADDRESS (sym) = valu;
+      SET_SYMBOL_VALUE_ADDRESS (sym, valu);
       if (gdbarch_static_transform_name_p (gdbarch)
 	  && gdbarch_static_transform_name (gdbarch,
 					    SYMBOL_LINKAGE_NAME (sym))
@@ -1396,7 +1393,7 @@ define_symbol (CORE_ADDR valu, const cha
 		(gdbarch, SYMBOL_LINKAGE_NAME (sym));
 
 	      SYMBOL_SET_LINKAGE_NAME (sym, new_name);
-	      SYMBOL_VALUE_ADDRESS (sym) = BMSYMBOL_VALUE_ADDRESS (msym);
+	      SET_SYMBOL_VALUE_ADDRESS (sym, BMSYMBOL_VALUE_ADDRESS (msym));
 	    }
 	}
       SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
@@ -4363,7 +4360,9 @@ fix_common_block (struct symbol *sym, CO
       int j;
 
       for (j = next->nsyms - 1; j >= 0; j--)
-	SYMBOL_VALUE_ADDRESS (next->symbol[j]) += valu;
+	SET_SYMBOL_VALUE_ADDRESS (next->symbol[j],
+				  SYMBOL_VALUE_ADDRESS (next->symbol[j])
+				  + valu);
     }
 }
 
@@ -4641,8 +4640,9 @@ scan_file_globals (struct objfile *objfi
 			}
 		      else
 			{
-			  SYMBOL_VALUE_ADDRESS (sym)
-			    = MSYMBOL_VALUE_ADDRESS (resolve_objfile, msymbol);
+			  SET_SYMBOL_VALUE_ADDRESS
+			    (sym, MSYMBOL_VALUE_ADDRESS (resolve_objfile,
+							 msymbol));
 			}
 		      SYMBOL_SECTION (sym) = MSYMBOL_SECTION (msymbol);
 		    }
@@ -4680,7 +4680,7 @@ scan_file_globals (struct objfile *objfi
 
 	  /* Change the symbol address from the misleading chain value
 	     to address zero.  */
-	  SYMBOL_VALUE_ADDRESS (prev) = 0;
+	  SET_SYMBOL_VALUE_ADDRESS (prev, 0);
 
 	  /* Complain about unresolved common block symbols.  */
 	  if (SYMBOL_CLASS (prev) == LOC_STATIC)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/stack.c ./gdb/stack.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/stack.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/stack.c	2019-10-08 01:49:31.000000000 +0000
@@ -54,6 +54,7 @@
 #include "observable.h"
 #include "gdbsupport/def-vector.h"
 #include "cli/cli-option.h"
+#include "cli/cli-style.h"
 
 /* The possible choices of "set print frame-arguments", and the value
    of this setting.  */
@@ -381,16 +382,20 @@ print_frame_arg (const frame_print_optio
   if (arg->entry_kind == print_entry_values_only
       || arg->entry_kind == print_entry_values_compact)
     stb.puts ("@entry");
-  uiout->field_stream ("name", stb, ui_out_style_kind::VARIABLE);
+  uiout->field_stream ("name", stb, variable_name_style.style ());
   annotate_arg_name_end ();
   uiout->text ("=");
 
+  ui_file_style style;
   if (!arg->val && !arg->error)
     uiout->text ("...");
   else
     {
       if (arg->error)
-	stb.printf (_("<error reading variable: %s>"), arg->error.get ());
+	{
+	  stb.printf (_("<error reading variable: %s>"), arg->error.get ());
+	  style = metadata_style.style ();
+	}
       else
 	{
 	  try
@@ -427,11 +432,12 @@ print_frame_arg (const frame_print_optio
 	    {
 	      stb.printf (_("<error reading variable: %s>"),
 			  except.what ());
+	      style = metadata_style.style ();
 	    }
 	}
     }
 
-  uiout->field_stream ("value", stb);
+  uiout->field_stream ("value", stb, style);
 }
 
 /* Read in inferior function local SYM at FRAME into ARGP.  Caller is
@@ -1005,18 +1011,18 @@ print_frame_info (const frame_print_opti
         {
           annotate_function_call ();
           uiout->field_string ("func", "<function called from gdb>",
-			       ui_out_style_kind::FUNCTION);
+			       metadata_style.style ());
 	}
       else if (get_frame_type (frame) == SIGTRAMP_FRAME)
         {
 	  annotate_signal_handler_caller ();
           uiout->field_string ("func", "<signal handler called>",
-			       ui_out_style_kind::FUNCTION);
+			       metadata_style.style ());
         }
       else if (get_frame_type (frame) == ARCH_FRAME)
         {
           uiout->field_string ("func", "<cross-architecture call>",
-			       ui_out_style_kind::FUNCTION);
+			       metadata_style.style ());
 	}
       uiout->text ("\n");
       annotate_frame_end ();
@@ -1310,7 +1316,7 @@ print_frame (const frame_print_options &
 	    print_pc (uiout, gdbarch, frame, pc);
 	  else
 	    uiout->field_string ("addr", "<unavailable>",
-				 ui_out_style_kind::ADDRESS);
+				 metadata_style.style ());
 	  annotate_frame_address_end ();
 	  uiout->text (" in ");
 	}
@@ -1319,7 +1325,7 @@ print_frame (const frame_print_options &
     string_file stb;
     fprintf_symbol_filtered (&stb, funname ? funname.get () : "??",
 			     funlang, DMGL_ANSI);
-    uiout->field_stream ("func", stb, ui_out_style_kind::FUNCTION);
+    uiout->field_stream ("func", stb, function_name_style.style ());
     uiout->wrap_hint ("   ");
     annotate_frame_args ();
 
@@ -1361,7 +1367,8 @@ print_frame (const frame_print_options &
 	uiout->wrap_hint ("   ");
 	uiout->text (" at ");
 	annotate_frame_source_file ();
-	uiout->field_string ("file", filename_display, ui_out_style_kind::FILE);
+	uiout->field_string ("file", filename_display,
+			     file_name_style.style ());
 	if (uiout->is_mi_like_p ())
 	  {
 	    const char *fullname = symtab_to_fullname (sal.symtab);
@@ -1386,7 +1393,7 @@ print_frame (const frame_print_options &
 	    annotate_frame_where ();
 	    uiout->wrap_hint ("  ");
 	    uiout->text (" from ");
-	    uiout->field_string ("from", lib);
+	    uiout->field_string ("from", lib, file_name_style.style ());
 	  }
       }
     if (uiout->is_mi_like_p ())
@@ -1506,7 +1513,7 @@ info_frame_command_core (struct frame_in
   if (frame_pc_p)
     fputs_filtered (paddress (gdbarch, get_frame_pc (fi)), gdb_stdout);
   else
-    fputs_filtered ("<unavailable>", gdb_stdout);
+    fputs_styled ("<unavailable>", metadata_style.style (), gdb_stdout);
 
   wrap_here ("   ");
   if (funname)
@@ -1517,8 +1524,11 @@ info_frame_command_core (struct frame_in
     }
   wrap_here ("   ");
   if (sal.symtab)
-    printf_filtered (" (%s:%d)", symtab_to_filename_for_display (sal.symtab),
-		     sal.line);
+    printf_filtered
+      (" (%ps:%d)",
+       styled_string (file_name_style.style (),
+		      symtab_to_filename_for_display (sal.symtab)),
+       sal.line);
   puts_filtered ("; ");
   wrap_here ("    ");
   printf_filtered ("saved %s = ", pc_regname);
@@ -1543,8 +1553,9 @@ info_frame_command_core (struct frame_in
 	      val_print_not_saved (gdb_stdout);
 	      break;
 	    default:
-	      fprintf_filtered (gdb_stdout, _("<error: %s>"),
-				ex.what ());
+	      fprintf_styled (gdb_stdout, metadata_style.style (),
+			      _("<error: %s>"),
+			      ex.what ());
 	      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.3.50.20191001/gdb/symfile.c ./gdb/symfile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/symfile.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/symfile.c	2019-10-08 01:49:31.000000000 +0000
@@ -1106,11 +1106,8 @@ symbol_file_add_with_addrs (bfd *abfd, c
       if (deprecated_pre_add_symbol_hook)
 	deprecated_pre_add_symbol_hook (name);
       else
-	{
-	  puts_filtered (_("Reading symbols from "));
-	  fputs_styled (name, file_name_style.style (), gdb_stdout);
-	  puts_filtered ("...\n");
-	}
+	printf_filtered (_("Reading symbols from %ps...\n"),
+			 styled_string (file_name_style.style (), name));
     }
   syms_from_objfile (objfile, addrs, add_flags);
 
@@ -1122,7 +1119,8 @@ symbol_file_add_with_addrs (bfd *abfd, c
   if ((flags & OBJF_READNOW))
     {
       if (should_print)
-	printf_filtered (_("Expanding full symbols from %s...\n"), name);
+	printf_filtered (_("Expanding full symbols from %ps...\n"),
+			 styled_string (file_name_style.style (), name));
 
       if (objfile->sf)
 	objfile->sf->qf->expand_all_symtabs (objfile);
@@ -1134,7 +1132,8 @@ symbol_file_add_with_addrs (bfd *abfd, c
      file, and so printing it twice is just redundant.  */
   if (should_print && !objfile_has_symbols (objfile)
       && objfile->separate_debug_objfile == nullptr)
-    printf_filtered (_("(No debugging symbols found in %s)\n"), name);
+    printf_filtered (_("(No debugging symbols found in %ps)\n"),
+		     styled_string (file_name_style.style (), name));
 
   if (should_print)
     {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/symfile.h ./gdb/symfile.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/symfile.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/symfile.h	2019-10-08 01:49:31.000000000 +0000
@@ -585,7 +585,8 @@ struct dwarf2_debug_sections {
 };
 
 extern int dwarf2_has_info (struct objfile *,
-                            const struct dwarf2_debug_sections *);
+                            const struct dwarf2_debug_sections *,
+			    bool = false);
 
 /* Dwarf2 sections that can be accessed by dwarf2_get_section_info.  */
 enum dwarf2_section_enum {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/symmisc.c ./gdb/symmisc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/symmisc.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/symmisc.c	2019-10-08 01:49:31.000000000 +0000
@@ -236,9 +236,13 @@ dump_msymbols (struct objfile *objfile, 
 	  break;
 	}
       fprintf_filtered (outfile, "[%2d] %c ", index, ms_type);
-      fputs_filtered (paddress (gdbarch, MSYMBOL_VALUE_ADDRESS (objfile,
-								msymbol)),
-		      outfile);
+
+      /* Use the relocated address as shown in the symbol here -- do
+	 not try to respect copy relocations.  */
+      CORE_ADDR addr = (msymbol->value.address
+			+ ANOFFSET (objfile->section_offsets,
+				    msymbol->section));
+      fputs_filtered (paddress (gdbarch, addr), outfile);
       fprintf_filtered (outfile, " %s", MSYMBOL_LINKAGE_NAME (msymbol));
       if (section)
 	{
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/symtab.c ./gdb/symtab.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/symtab.c	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/symtab.c	2019-10-08 01:49:31.000000000 +0000
@@ -2414,34 +2414,6 @@ basic_lookup_symbol_nonlocal (const stru
 {
   struct block_symbol result;
 
-  /* NOTE: carlton/2003-05-19: The comments below were written when
-     this (or what turned into this) was part of lookup_symbol_aux;
-     I'm much less worried about these questions now, since these
-     decisions have turned out well, but I leave these comments here
-     for posterity.  */
-
-  /* NOTE: carlton/2002-12-05: There is a question as to whether or
-     not it would be appropriate to search the current global block
-     here as well.  (That's what this code used to do before the
-     is_a_field_of_this check was moved up.)  On the one hand, it's
-     redundant with the lookup in all objfiles search that happens
-     next.  On the other hand, if decode_line_1 is passed an argument
-     like filename:var, then the user presumably wants 'var' to be
-     searched for in filename.  On the third hand, there shouldn't be
-     multiple global variables all of which are named 'var', and it's
-     not like decode_line_1 has ever restricted its search to only
-     global variables in a single filename.  All in all, only
-     searching the static block here seems best: it's correct and it's
-     cleanest.  */
-
-  /* NOTE: carlton/2002-12-05: There's also a possible performance
-     issue here: if you usually search for global symbols in the
-     current file, then it would be slightly better to search the
-     current global block before searching all the symtabs.  But there
-     are other factors that have a much greater effect on performance
-     than that one, so I don't think we should worry about that for
-     now.  */
-
   /* NOTE: dje/2014-10-26: The lookup in all objfiles search could skip
      the current objfile.  Searching the current objfile first is useful
      for both matching user expectations as well as performance.  */
@@ -2670,6 +2642,19 @@ lookup_global_symbol (const char *name,
 		      const struct block *block,
 		      const domain_enum domain)
 {
+  /* If a block was passed in, we want to search the corresponding
+     global block first.  This yields "more expected" behavior, and is
+     needed to support 'FILENAME'::VARIABLE lookups.  */
+  const struct block *global_block = block_global_block (block);
+  if (global_block != nullptr)
+    {
+      symbol *sym = lookup_symbol_in_block (name,
+					    symbol_name_match_type::FULL,
+					    global_block, domain);
+      if (sym != nullptr)
+	return { sym, global_block };
+    }
+
   struct objfile *objfile = lookup_objfile_from_block (block);
   return lookup_global_or_static_symbol (name, GLOBAL_BLOCK, objfile, domain);
 }
@@ -4748,9 +4733,9 @@ print_symbol_info (enum search_domain ki
 
       if (filename_cmp (last, s_filename) != 0)
 	{
-	  fputs_filtered ("\nFile ", gdb_stdout);
-	  fputs_styled (s_filename, file_name_style.style (), gdb_stdout);
-	  fputs_filtered (":\n", gdb_stdout);
+	  printf_filtered (_("\nFile %ps:\n"),
+			   styled_string (file_name_style.style (),
+					  s_filename));
 	}
 
       if (SYMBOL_LINE (sym) != 0)
@@ -4812,15 +4797,15 @@ print_msymbol_info (struct bound_minimal
   else
     tmp = hex_string_custom (BMSYMBOL_VALUE_ADDRESS (msymbol),
 			     16);
-  fputs_styled (tmp, address_style.style (), gdb_stdout);
-  fputs_filtered ("  ", gdb_stdout);
-  if (msymbol.minsym->text_p ())
-    fputs_styled (MSYMBOL_PRINT_NAME (msymbol.minsym),
-		  function_name_style.style (),
-		  gdb_stdout);
-  else
-    fputs_filtered (MSYMBOL_PRINT_NAME (msymbol.minsym), gdb_stdout);
-  fputs_filtered ("\n", gdb_stdout);
+
+  ui_file_style sym_style = (msymbol.minsym->text_p ()
+			     ? function_name_style.style ()
+			     : ui_file_style ());
+
+  printf_filtered (_("%ps  %ps\n"),
+		   styled_string (address_style.style (), tmp),
+		   styled_string (sym_style,
+				  MSYMBOL_PRINT_NAME (msymbol.minsym)));
 }
 
 /* This is the guts of the commands "info functions", "info types", and
@@ -6276,6 +6261,50 @@ symbol_set_symtab (struct symbol *symbol
   symbol->owner.symtab = symtab;
 }
 
+/* See symtab.h.  */
+
+CORE_ADDR
+get_symbol_address (const struct symbol *sym)
+{
+  gdb_assert (sym->maybe_copied);
+  gdb_assert (SYMBOL_CLASS (sym) == LOC_STATIC);
+
+  const char *linkage_name = SYMBOL_LINKAGE_NAME (sym);
+
+  for (objfile *objfile : current_program_space->objfiles ())
+    {
+      bound_minimal_symbol minsym
+	= lookup_minimal_symbol_linkage (linkage_name, objfile);
+      if (minsym.minsym != nullptr)
+	return BMSYMBOL_VALUE_ADDRESS (minsym);
+    }
+  return sym->ginfo.value.address;
+}
+
+/* See symtab.h.  */
+
+CORE_ADDR
+get_msymbol_address (struct objfile *objf, const struct minimal_symbol *minsym)
+{
+  gdb_assert (minsym->maybe_copied);
+  gdb_assert ((objf->flags & OBJF_MAINLINE) == 0);
+
+  const char *linkage_name = MSYMBOL_LINKAGE_NAME (minsym);
+
+  for (objfile *objfile : current_program_space->objfiles ())
+    {
+      if ((objfile->flags & OBJF_MAINLINE) != 0)
+	{
+	  bound_minimal_symbol found
+	    = lookup_minimal_symbol_linkage (linkage_name, objfile);
+	  if (found.minsym != nullptr)
+	    return BMSYMBOL_VALUE_ADDRESS (found);
+	}
+    }
+  return (minsym->value.address
+	  + ANOFFSET (objf->section_offsets, minsym->section));
+}
+
 
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/symtab.h ./gdb/symtab.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/symtab.h	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/symtab.h	2019-10-08 01:49:31.000000000 +0000
@@ -454,6 +454,14 @@ extern const char *symbol_get_demangled_
 
 extern CORE_ADDR symbol_overlayed_address (CORE_ADDR, struct obj_section *);
 
+/* Return the address of SYM.  The MAYBE_COPIED flag must be set on
+   SYM.  If SYM appears in the main program's minimal symbols, then
+   that minsym's address is returned; otherwise, SYM's address is
+   returned.  This should generally only be used via the
+   SYMBOL_VALUE_ADDRESS macro.  */
+
+extern CORE_ADDR get_symbol_address (const struct symbol *sym);
+
 /* Note that all the following SYMBOL_* macros are used with the
    SYMBOL argument being either a partial symbol or
    a full symbol.  Both types have a ginfo field.  In particular
@@ -463,7 +471,11 @@ extern CORE_ADDR symbol_overlayed_addres
    field only, instead of the SYMBOL parameter.  */
 
 #define SYMBOL_VALUE(symbol)		(symbol)->ginfo.value.ivalue
-#define SYMBOL_VALUE_ADDRESS(symbol)	(symbol)->ginfo.value.address
+#define SYMBOL_VALUE_ADDRESS(symbol)			      \
+  (((symbol)->maybe_copied) ? get_symbol_address (symbol)     \
+   : ((symbol)->ginfo.value.address))
+#define SET_SYMBOL_VALUE_ADDRESS(symbol, new_value)	\
+  ((symbol)->ginfo.value.address = (new_value))
 #define SYMBOL_VALUE_BYTES(symbol)	(symbol)->ginfo.value.bytes
 #define SYMBOL_VALUE_COMMON_BLOCK(symbol) (symbol)->ginfo.value.common_block
 #define SYMBOL_BLOCK_VALUE(symbol)	(symbol)->ginfo.value.block
@@ -669,6 +681,14 @@ struct minimal_symbol : public general_s
      the object file format may not carry that piece of information.  */
   unsigned int has_size : 1;
 
+  /* For data symbols only, if this is set, then the symbol might be
+     subject to copy relocation.  In this case, a minimal symbol
+     matching the symbol's linkage name is first looked for in the
+     main objfile.  If found, then that address is used; otherwise the
+     address in this symbol is used.  */
+
+  unsigned maybe_copied : 1;
+
   /* Minimal symbols with the same hash key are kept on a linked
      list.  This is the link.  */
 
@@ -688,6 +708,15 @@ struct minimal_symbol : public general_s
   bool text_p () const;
 };
 
+/* Return the address of MINSYM, which comes from OBJF.  The
+   MAYBE_COPIED flag must be set on MINSYM.  If MINSYM appears in the
+   main program's minimal symbols, then that minsym's address is
+   returned; otherwise, MINSYM's address is returned.  This should
+   generally only be used via the MSYMBOL_VALUE_ADDRESS macro.  */
+
+extern CORE_ADDR get_msymbol_address (struct objfile *objf,
+				      const struct minimal_symbol *minsym);
+
 #define MSYMBOL_TARGET_FLAG_1(msymbol)  (msymbol)->target_flag_1
 #define MSYMBOL_TARGET_FLAG_2(msymbol)  (msymbol)->target_flag_2
 #define MSYMBOL_SIZE(msymbol)		((msymbol)->size + 0)
@@ -706,8 +735,9 @@ struct minimal_symbol : public general_s
 /* The relocated address of the minimal symbol, using the section
    offsets from OBJFILE.  */
 #define MSYMBOL_VALUE_ADDRESS(objfile, symbol)				\
-  ((symbol)->value.address					\
-   + ANOFFSET ((objfile)->section_offsets, ((symbol)->section)))
+  (((symbol)->maybe_copied) ? get_msymbol_address (objfile, symbol)	\
+   : ((symbol)->value.address						\
+      + ANOFFSET ((objfile)->section_offsets, ((symbol)->section))))
 /* For a bound minsym, we can easily compute the address directly.  */
 #define BMSYMBOL_VALUE_ADDRESS(symbol) \
   MSYMBOL_VALUE_ADDRESS ((symbol).objfile, (symbol).minsym)
@@ -1110,6 +1140,14 @@ struct symbol
   /* Whether this is an inlined function (class LOC_BLOCK only).  */
   unsigned is_inlined : 1;
 
+  /* For LOC_STATIC only, if this is set, then the symbol might be
+     subject to copy relocation.  In this case, a minimal symbol
+     matching the symbol's linkage name is first looked for in the
+     main objfile.  If found, then that address is used; otherwise the
+     address in this symbol is used.  */
+
+  unsigned maybe_copied : 1;
+
   /* The concrete type of this symbol.  */
 
   ENUM_BITFIELD (symbol_subclass_kind) subclass : 2;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/ChangeLog ./gdb/testsuite/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/ChangeLog	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/testsuite/ChangeLog	2019-10-08 01:49:31.000000000 +0000
@@ -1,3 +1,175 @@
+2019-10-07  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.ada/catch_ex_std.exp: Handle being unabled to catch Ada
+	exceptions due to missing debug information.
+
+2019-10-07  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.base/default.exp: Expect _gdb_major/_gdb_minor to be 9.1.
+
+2019-10-07  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* lib/gdb.exp (gdb_test_multiple): Add gdb_test_name mechanism.
+	* gdb.base/annota1.exp: Update to use gdb_test_name.
+
+2019-10-07  Weimin Pan  <weimin.pan@oracle.com>
+
+	* gdb.base/ctf-whatis.exp: New file.
+	* gdb.base/ctf-whatis.c: New file.
+	* gdb.base/ctf-ptype.exp: New file.
+	* gdb.base/ctf-ptype.c: New file.
+	* gdb.base/ctf-constvars.exp: New file.
+	* gdb.base/ctf-constvars.c: New file.
+	* gdb.base/ctf-cvexpr.exp: New file.
+
+2019-10-04  Tom de Vries  <tdevries@suse.de>
+
+	* gdb.cp/local-static.c (main): Move declaration of int i out of the
+	for loop.
+
+2019-10-03  Tom Tromey  <tom@tromey.com>
+
+	PR rust/24976:
+	* gdb.rust/simple.rs (Union2): New type.
+	(main): Use Union2.
+	* gdb.rust/simple.exp: Add test.
+
+2019-10-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.fortran/nested-funcs-2.exp: Run tests with and without the
+	nested function prefix.
+
+2019-10-03  Bernhard Heckel  <bernhard.heckel@intel.com>
+	    Richard Bunt  <richard.bunt@arm.com>
+	    Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.fortran/nested-funcs.exp: Tests for placing breakpoints on
+	nested functions.
+	* gdb.fortran/nested-funcs.f90: Update expected results.
+	* gdb.fortran/nested-funcs-2.exp: New file.
+	* gdb.fortran/nested-funcs-2.f90: New file.
+
+2019-10-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.python/py-parameter.exp: Make test names unique.
+	* gdb.python/py-template.exp: Likewise.
+	* gdb.python/py-value.exp: Likewise.
+
+2019-10-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.base/break-interp.exp: Reduce test name duplication.
+	* gdb.base/call-sc.exp: Likewise.
+	* gdb.base/callfuncs.exp: Likewise.
+	* gdb.base/charset.exp: Likewise.
+	* gdb.base/dump.exp: Likewise.
+	* gdb.base/ena-dis-br.exp: Likewise.
+	* gdb.base/relational.exp: Likewise.
+	* gdb.base/step-over-syscall.exp: Likewise.
+	* gdb.base/structs.exp: Likewise.
+
+2019-10-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.linespec/explicit.exp: Make test names unique.
+	* gdb.linespec/ls-errs.exp: Likewise.
+
+2019-10-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.reverse/break-precsave.exp: Make test names unique.
+	* gdb.reverse/break-reverse.exp: Likewise.
+	* gdb.reverse/finish-precsave.exp: Likewise.
+	* gdb.reverse/finish-reverse.exp: Likewise.
+	* gdb.reverse/machinestate-precsave.exp: Likewise.
+	* gdb.reverse/machinestate.exp: Likewise.
+	* gdb.reverse/readv-reverse.exp: Likewise.
+	* gdb.reverse/recvmsg-reverse.exp: Likewise.
+	* gdb.reverse/sigall-precsave.exp: Likewise.
+	* gdb.reverse/sigall-reverse.exp: Likewise.
+	* gdb.reverse/step-indirect-call-thunk.exp: Likewise.
+	* gdb.reverse/watch-precsave.exp: Likewise.
+	* gdb.reverse/watch-reverse.exp: Likewise.
+
+2019-10-03  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.threads/stop-with-handle.c: New file.
+	* gdb.threads/stop-with-handle.exp: New file.
+
+2019-10-03  Tom de Vries  <tdevries@suse.de>
+
+	PR testsuite/25059
+	* gdb.base/list-missing-source.exp: Allowing the "Compilation
+	directory" line to be missing.
+
+2019-10-03  Tom de Vries  <tdevries@suse.de>
+
+	PR testsuite/25059
+	* gdb.base/info-types.exp: Make the presence of the 'unsigned int'
+	type optional.
+
+2019-10-02  Andreas Arnez  <arnez@linux.ibm.com>
+
+	* gdb.python/py-format-string.c (string.h): New include.
+	(main): Fill a_struct_with_union.the_union.an_int with bytes of
+	the same value, for endianness-independence.
+	* gdb.python/py-format-string.exp (default_regexp_dict)
+	(test_pretty_structs, test_format): Adjust expected output to the
+	changed initialization.
+
+2019-10-02  Tom Tromey  <tromey@adacore.com>
+
+	* gdb.ada/catch_ex_std.exp: Add $_ada_exception test.
+
+2019-10-02  Pedro Alves  <palves@redhat.com>
+	    Andrew Burgess  <andrew.burgess@embecosm.com>
+
+	* gdb.base/print-file-var-lib1.c: Include <stdio.h> and
+	"print-file-var.h".
+	(this_version_id) Use ATTRIBUTE_VISIBILITY.
+	(get_version_1): Print this_version_id and its address.
+	Add extern "C" wrappers around interface functions.
+	* gdb.base/print-file-var-lib2.c: Include <stdio.h> and
+	"print-file-var.h".
+	(this_version_id) Use ATTRIBUTE_VISIBILITY.
+	(get_version_2): Print this_version_id and its address.
+	Add extern "C" wrappers around interface functions.
+	* gdb.base/print-file-var-main.c: Include <dlfcn.h>, <assert.h>,
+	<stddef.h> and "print-file-var.h".
+	Add extern "C" wrappers around interface functions.
+	[VERSION_ID_MAIN] (this_version_id): Define.
+	(main): Define v0.  Use dlopen if SHLIB_NAME is defined.
+	* gdb.base/print-file-var.h: Add some #defines to simplify setting
+	up extern "C" blocks.
+	* gdb.base/print-file-var.exp (test): New, factored out from top
+	level.
+	(top level): Test all combinations of attribute hidden or not,
+	dlopen or not, and this_version_id symbol in main file or not.
+	Compile tests as both C++ and C, make test names unique.
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* gdb.base/style.exp: Test "show logging filename".
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* lib/gdb-utils.exp (style): Handle "metadata" argument.
+	* gdb.base/style.exp: Add metadata style test.
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* gdb.base/style.exp: Test "pwd".
+
+2019-10-01  Tom Tromey  <tom@tromey.com>
+
+	* gdb.base/style.exp: Update tests.
+
+2019-10-01  Andreas Arnez  <arnez@linux.ibm.com>
+
+	* gdb.base/pretty-print.c (struct s1_t): Change fields 'three' and
+	'six' to unsigned.
+	(s1): Initialize fields 'four' and 'six' instead of 'three' and
+	'five'.  Use an all-ones bit pattern for each.
+	* gdb.base/pretty-print.exp: Adjust expected output of "print s1"
+	to its changed values.
+
 2019-09-30  Tom Tromey  <tromey@adacore.com>
 
 	* gdb.rust/traits.rs: Disable all warnings.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.ada/catch_ex_std.exp ./gdb/testsuite/gdb.ada/catch_ex_std.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.ada/catch_ex_std.exp	2019-10-01 01:49:30.000000000 +0000
+++ ./gdb/testsuite/gdb.ada/catch_ex_std.exp	2019-10-08 01:49:31.000000000 +0000
@@ -95,9 +95,23 @@ if {![runto_main]} then {
    return 0
 }
 
-gdb_test "catch exception some_kind_of_error" \
-    "Catchpoint \[0-9\]+: `some_kind_of_error' Ada exception"
+set can_catch_exceptions 0
+gdb_test_multiple "catch exception some_kind_of_error" "" {
+    -re "Catchpoint \[0-9\]+: `some_kind_of_error' Ada exception\r\n$gdb_prompt $" {
+	pass $gdb_test_name
+	set can_catch_exceptions 1
+    }
 
-gdb_test "cont" \
-    "Catchpoint \[0-9\]+, .* at .*foo\.adb:\[0-9\]+.*" \
-    "caught the exception"
+    -re "Your Ada runtime appears to be missing some debugging information.\r\nCannot insert Ada exception catchpoint in this configuration.\r\n$gdb_prompt $" {
+	    unsupported $gdb_test_name
+    }
+}
+
+if { $can_catch_exceptions } {
+    gdb_test "cont" \
+	"Catchpoint \[0-9\]+, .* at .*foo\.adb:\[0-9\]+.*" \
+	"caught the exception"
+
+    gdb_test "print \$_ada_exception = some_package.some_kind_of_error'Address" \
+	" = true"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/annota1.exp ./gdb/testsuite/gdb.base/annota1.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/annota1.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/annota1.exp	2019-10-08 01:49:31.000000000 +0000
@@ -97,11 +97,11 @@ gdb_expect {
 #
 gdb_test_multiple "info break" "breakpoint info" {
     -re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-headers\r\n\r\n\032\032field 0\r\nNum     \r\n\032\032field 1\r\nType           \r\n\032\032field 2\r\nDisp \r\n\032\032field 3\r\nEnb \r\n\032\032field 4\r\nAddress    +\r\n\032\032field 5\r\nWhat\r\n\r\n\032\032breakpoints-table\r\n\r\n\032\032record\r\n\r\n\032\032field 0\r\n1       \r\n\032\032field 1\r\nbreakpoint     \r\n\032\032field 2\r\nkeep \r\n\032\032field 3\r\ny   \r\n\032\032field 4\r\n$hex +\r\n\032\032field 5\r\nin main at ${escapedsrcfile}:$main_line\r\n\r\n\032\032breakpoints-table-end\r\n$gdb_prompt$" {
-	pass "breakpoint info"
+	pass $gdb_test_name
     }
     -re "\r\n\032\032post-prompt\r\n\r\n\032\032breakpoints-headers\r\n\r\n\032\032field 0\r\nNum     \r\n\032\032field 1\r\nType           \r\n\032\032field 2\r\nDisp \r\n\032\032field 3\r\nEnb \r\n\032\032field 4\r\nAddress    +\r\n\032\032field 5\r\nWhat\r\n\r\n\032\032breakpoints-table\r\n\r\n\032\032record\r\n\r\n\032\032field 0\r\n1       \r\n\032\032field 1\r\nbreakpoint     \r\n\032\032field 2\r\nkeep \r\n\032\032field 3\r\ny   \r\n\032\032field 4\r\n$hex +\r\n\032\032field 5\r\nin main at .*${srcfile}:$main_line\r\n\r\n\032\032breakpoints-table-end\r\n$gdb_prompt$" {
 	setup_xfail "*-*-*" 1270
-	fail "breakpoint info"
+	fail $gdb_test_name
     }
 }
 
@@ -147,7 +147,7 @@ gdb_test_multiple "run" "run until main 
 		    "\032\032source.*$srcfile:$main_line:.*:beg:$hex\r\n\r\n" \
 		    "\032\032frame-end\r\n\r\n" \
 		    "\032\032stopped.*$gdb_prompt$" } ] {
-	pass "run until main breakpoint"
+	pass $gdb_test_name
     }
 }
 #exp_internal 0
@@ -160,7 +160,7 @@ gdb_test_multiple "run" "run until main 
 #
 gdb_test_multiple "next" "go after array init line" {
     -re "source .*annota1.c.*$gdb_prompt$" {
-	pass "go after array init line"
+	pass $gdb_test_name
     }
 }
 
@@ -179,7 +179,7 @@ gdb_test_multiple "next" "go after array
 #
 gdb_test_multiple "print my_array" "print array" {
     -re "\r\n\032\032post-prompt\r\n\r\n\032\032value-history-begin 1 -\r\n.*= \r\n\032\032value-history-value\r\n.\r\n\032\032array-section-begin 0 -\r\n1\r\n\032\032elt\r\n, 2\r\n\032\032elt\r\n, 3\r\n\032\032elt\r\n\r\n\032\032array-section-end\r\n.\r\n\r\n\032\032value-history-end\r\n$gdb_prompt$" {
-	pass "print array"
+	pass $gdb_test_name
     }
 }
 
@@ -193,7 +193,7 @@ gdb_test_multiple "print my_array" "prin
 #exp_internal 1
 gdb_test_multiple "print non_existent_value" "print non_existent_value" {
     -re "\r\n\032\032post-prompt\r\n\r\n\032\032error-begin\r\nNo symbol \"non_existent_value\" in current context.\r\n\r\n\032\032error\r\n$gdb_prompt$" {
-	pass "print non_existent_value"
+	pass $gdb_test_name
     }
 }
 
@@ -204,7 +204,7 @@ gdb_test_multiple "print non_existent_va
 #
 gdb_test_multiple "break handle_USR1" "break handle_USR1" {
     -re  "\r\n\032\032post-prompt\r\nBreakpoint.*at $hex: file.*$srcfile, line.*\r\n\032\032breakpoints-invalid\r\n.*$gdb_prompt$" {
-	pass "break handle_USR1"
+	pass $gdb_test_name
     }
 }
 
@@ -213,10 +213,10 @@ gdb_test_multiple "break handle_USR1" "b
 #
 gdb_test_multiple "break printf" "break printf" {
     -re  "\r\n\032\032post-prompt\r\nBreakpoint.*at $hex.*\032\032breakpoints-invalid\r\n.*$gdb_prompt$" {
-	pass "break printf" 
+	pass $gdb_test_name
     }
     -re  "\r\n\032\032post-prompt\r\nwarning: Breakpoint address adjusted from $hex to $hex.\r\n\r\n\032\032breakpoints-invalid\r\nBreakpoint.*at $hex.*$gdb_prompt$" {
-	pass "break printf"
+	pass $gdb_test_name
     }
 }
 
@@ -229,9 +229,9 @@ set pat_end "\r\n\032\032breakpoint 3\r\
 
 gdb_test_multiple "continue" "continue to printf" {
     -re "${pat_begin}($pat_adjust)?$pat_end" {
-	pass "continue to printf"
+	pass $gdb_test_name
     }
-    -re ".*$gdb_prompt$"     { fail "continue to printf" }
+    -re ".*$gdb_prompt$"     { fail $gdb_test_name }
 }
 
 #
@@ -246,11 +246,11 @@ set pat_end "\r\n\032\032frame-source-fi
 
 gdb_test_multiple "backtrace" "backtrace from shlibrary" {
     -re "$pat_begin$escapedsrcfile$pat_end" {
-	pass "backtrace from shlibrary"
+	pass $gdb_test_name
     }
     -re "$pat_begin.*$srcfile$pat_end" {
 	setup_xfail "*-*-*" 1270
-	fail "backtrace from shlibrary"
+	fail $gdb_test_name
     }
 }
 
@@ -269,11 +269,11 @@ if [target_info exists gdb,nosignals] {
 } else {
     gdb_test_multiple "signal SIGUSR1" "send SIGUSR1" {
 	-re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\(\(\r\n\r\n\032\032frames-invalid\)|\(\r\n\r\n\032\032breakpoints-invalid\)\)+\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n$decimal\[^\r\n\]+\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" {
-	    pass "send SIGUSR1"
+	    pass $gdb_test_name
 	}
 	-re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\(\(\r\n\r\n\032\032frames-invalid\)|\(\r\n\r\n\032\032breakpoints-invalid\)\)+\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n$decimal\[^\r\n\]+\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" {
 	    setup_xfail "*-*-*" 1270
-	    fail "send SIGUSR1"
+	    fail $gdb_test_name
 	}
     }
 
@@ -283,7 +283,7 @@ if [target_info exists gdb,nosignals] {
     #
     gdb_test_multiple "backtrace" "backtrace @ signal handler" {
 	-re "frame-begin 0 $hex\r\n#0.*frame-end.*frame-begin 1 $hex\r\n#1.*(\032\032signal-handler-caller\r\n.signal handler called.\r\n\r\n)+\032\032frame-end\r\n\r\n\032\032frame-begin 2 $hex\r\n#2.*(frame-begin 3 $hex\r\n#3.*)*frame-end.*$gdb_prompt$" {
-	    pass "backtrace @ signal handler"
+	    pass $gdb_test_name
 	}
     }
 }
@@ -293,19 +293,19 @@ if [target_info exists gdb,nosignals] {
 #
 gdb_test_multiple "delete 1" "delete bp 1" {
     -re "\r\n\032\032post-prompt\r\n${breakpoints_invalid}$gdb_prompt$" {
-	pass "delete bp 1"
+	pass $gdb_test_name
     }
 }
 
 gdb_test_multiple "delete 2" "delete bp 2" {
     -re "\r\n\032\032post-prompt\r\n${breakpoints_invalid}$gdb_prompt$" {
-	pass "delete bp 2"
+	pass $gdb_test_name
     }
 }
 
 gdb_test_multiple "delete 3" "delete bp 3" {
     -re "\r\n\032\032post-prompt\r\n${breakpoints_invalid}$gdb_prompt$" {
-	pass "delete bp 3"
+	pass $gdb_test_name
     }
 }
 
@@ -313,14 +313,13 @@ gdb_test_multiple "delete 3" "delete bp 
 # break in main, after value is initialized. This is in preparation
 # to test the annotate output for the display command.
 #
-set test "break in main"
-gdb_test_multiple "break ${srcfile}:${main_line}" $test {
+gdb_test_multiple "break ${srcfile}:${main_line}" "break in main" {
     -re "post-prompt.*Breakpoint 4 at $hex: file ${escapedsrcfile}, line $main_line.*\032\032breakpoints-invalid.*$gdb_prompt$" {
-	pass $test
+	pass $gdb_test_name
     }
     -re "post-prompt.*Breakpoint 4 at $hex: file .*${srcfile}, line $main_line.*\032\032breakpoints-invalid.*$gdb_prompt$" {
 	setup_xfail "*-*-*" 1270
-	fail $test
+	fail $gdb_test_name
     }
 }
 
@@ -405,12 +404,11 @@ gdb_test_multiple "next" "breakpoint ign
 
 # Get the inferior's PID for later.
 
-set test "get inferior pid"
 set pid -1
-gdb_test_multiple "info inferior 1" "$test" {
+gdb_test_multiple "info inferior 1" "get inferior pid" {
     -re "process (\[0-9\]*).*$gdb_prompt$" {
 	set pid $expect_out(1,string)
-	pass "$test"
+	pass $gdb_test_name
     }
 }
 
@@ -429,7 +427,7 @@ if [target_info exists gdb,nosignals] {
 } else {
     gdb_test_multiple "signal SIGTRAP" "signal sent" {
 	-re ".*\032\032post-prompt\r\nContinuing with signal SIGTRAP.\r\n\r\n\032\032starting\(\r\n\r\n\032\032frames-invalid\)+\r\n\r\n\032\032signalled\r\n\r\nProgram terminated with signal \r\n\032\032signal-name\r\nSIGTRAP\r\n\032\032signal-name-end\r\n, \r\n\032\032signal-string\r\nTrace.breakpoint trap\r\n\032\032signal-string-end\r\n.\r\nThe program no longer exists.\r\n\r\n\032\032thread-exited,id=\"${decimal}\",group-id=\"i${decimal}\"\r\n\r\n\032\032stopped\r\n$gdb_prompt$" {
-	    pass "signal sent"
+	    pass $gdb_test_name
 	}
     }
 }
@@ -482,13 +480,13 @@ proc thread_test {} {
 
 	gdb_test_multiple "continue" "new thread" {
 	    -re "\032\032new-thread.*\r\n$gdb_prompt$" {
-		pass "new thread"
+		pass $gdb_test_name
 	    }
 	}
 
     gdb_test_multiple "continue" "thread exit" {
 	    -re "\032\032thread-exited,id=\"${decimal}\",group-id=\"i${decimal}\".*\r\n$gdb_prompt$" {
-		pass "thread exit"
+		pass $gdb_test_name
 	    }
     }
     }
@@ -497,7 +495,7 @@ proc thread_test {} {
 proc thread_switch {} {
     gdb_test_multiple "thread 1" "thread switch" {
 	-re ".*\032\032thread-changed" {
-	    pass "thread switch"
+	    pass $gdb_test_name
 	}
     }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/break-interp.exp ./gdb/testsuite/gdb.base/break-interp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/break-interp.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/break-interp.exp	2019-10-08 01:49:31.000000000 +0000
@@ -191,8 +191,16 @@ proc reach_1 {func command displacement}
 # DISPLACEMENT can be "NONE" for no message to be present, "ZERO" for
 # displacement of 0 bytes to be present, "NONZERO" for displacement of non-0
 # bytes to be present and "PRESENT" if both "ZERO" and "NONZERO" are valid.
-proc reach {func command displacement} {
-    with_test_prefix "reach-$func" {
+#
+# The optional ITERATION parameter is used in order to make unique
+# test prefixes, when calling this proc with the same FUNC name
+# provide a unique ITERATION value for each call.
+proc reach {func command displacement {iteration 1}} {
+    set prefix "reach-$func"
+    if { $iteration > 1 } {
+	set prefix "$prefix-$iteration"
+    }
+    with_test_prefix $prefix {
 	reach_1 $func $command $displacement
     }
 }
@@ -399,7 +407,7 @@ proc test_ld {file ifmain trynosym displ
 	    "set args OBJDIR/${subdir}/$binfile_test"
     }
 
-    reach $solib_bp "run" $displacement
+    reach $solib_bp "run" $displacement 1
 
     gdb_test "bt" "#0 +\[^\r\n\]*\\m(__GI_)?$solib_bp\\M.*" "dl bt"
 
@@ -413,7 +421,7 @@ proc test_ld {file ifmain trynosym displ
 
     # Try re-run if the new PIE displacement takes effect.
     gdb_test "kill" "" "kill" {Kill the program being debugged\? \(y or n\) } "y"
-    reach $solib_bp "run" $displacement
+    reach $solib_bp "run" $displacement 2
 
     if $ifmain {
 	test_core $file $displacement
@@ -445,7 +453,7 @@ proc test_ld {file ifmain trynosym displ
 	gdb_test "exec-file $file" "exec-file $escapedfile" "load"
 
 	if $ifmain {
-	    reach $solib_bp run $displacement
+	    reach $solib_bp run $displacement 3
 
 	    # Use two separate gdb_test_multiple statements to avoid timeouts due
 	    # to slow processing of wildcard capturing long output
@@ -594,9 +602,10 @@ foreach ldprelink {NO YES} {
 		file delete "${interp}.debug"
 	    }
 
-	    if ![prelink$ldprelink $interp] {
+	    if ![prelink$ldprelink $interp "$interp, second time"] {
 		continue
 	    }
+
 	    if {$ldprelink == "NO"} {
 		set displacement "NONZERO"
 	    } else {
@@ -662,34 +671,39 @@ foreach ldprelink {NO YES} {
 
 			    if {[prelink$binprelink $relink_args [file tail $exec]]
 				&& [file_copy $interp_saved $interp]} {
-				if {$binpie != "ATTACH"} {
-				    test_ld $exec 1 [expr {$binsepdebug == "NO"}] $displacement
-				} else {
-				    # If the file has been randomly prelinked it must be
-				    # "NONZERO".  We could see "ZERO" only if it was unprelinked
-				    # and it is now running at the same address - which is 0 but
-				    # executable can never run at address 0.
-
-				    set displacement "NONZERO"
-				    test_attach $exec $displacement $relink_args
-
-				    # ATTACH means that executables and libraries have been
-				    # modified after they have been run.  They cannot be reused
-				    # for problem reproducibility after the testcase ends in
-				    # the ATTACH case.  Therefore they are rather deleted not
-				    # to confuse after the run finishes.
-				    set exec_debug [system_debug_get $exec]
-				    if {$exec_debug != ""} {
-					# `file delete [glob "${exec_debug}*"]' does not work.
-					foreach f [glob "${exec_debug}*"] {
+				# In order to make test names unique wrap the core of this if block
+				# with a test prefix.  Some of the tests performed in the if
+				# condition are repeated within this body.
+				with_test_prefix "INNER" {
+				    if {$binpie != "ATTACH"} {
+					test_ld $exec 1 [expr {$binsepdebug == "NO"}] $displacement
+				    } else {
+					# If the file has been randomly prelinked it must be
+					# "NONZERO".  We could see "ZERO" only if it was unprelinked
+					# and it is now running at the same address - which is 0 but
+					# executable can never run at address 0.
+
+					set displacement "NONZERO"
+					test_attach $exec $displacement $relink_args
+
+					# ATTACH means that executables and libraries have been
+					# modified after they have been run.  They cannot be reused
+					# for problem reproducibility after the testcase ends in
+					# the ATTACH case.  Therefore they are rather deleted not
+					# to confuse after the run finishes.
+					set exec_debug [system_debug_get $exec]
+					if {$exec_debug != ""} {
+					    # `file delete [glob "${exec_debug}*"]' does not work.
+					    foreach f [glob "${exec_debug}*"] {
+						file delete $f
+					    }
+					}
+					file delete -force $dir
+					# `file delete [glob "${exec}*"]' does not work.
+					foreach f [glob "${exec}*"] {
 					    file delete $f
 					}
 				    }
-				    file delete -force $dir
-				    # `file delete [glob "${exec}*"]' does not work.
-				    foreach f [glob "${exec}*"] {
-					file delete $f
-				    }
 				}
 			    }
 			}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/callfuncs.exp ./gdb/testsuite/gdb.base/callfuncs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/callfuncs.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/callfuncs.exp	2019-10-08 01:49:31.000000000 +0000
@@ -322,21 +322,31 @@ proc fetch_all_registers {test} {
     return $all_registers_lines
 }
 
-proc rerun_and_prepare {} {
-    if { ![runto_main] } {
-	gdb_suppress_tests
-    }
+# Global used by RERUN_AND_PREPARE to make test names unique.
+set rerun_count 0
 
-    gdb_test_no_output "set language c"
+proc rerun_and_prepare {} {
+    global rerun_count
 
-    get_debug_format
+    incr rerun_count
+    with_test_prefix "rerun number ${rerun_count}" {
 
-    # Make sure that malloc gets called and that the floating point unit
-    # is initialized via a call to t_double_values.
-    gdb_test "next" "t_double_values\\(double_val1, double_val2\\);.*" \
-	"next to t_double_values"
-    gdb_test "next" "t_structs_c\\(struct_val1\\);.*" \
-	"next to t_structs_c"
+	if { ![runto_main] } {
+	    gdb_suppress_tests
+	}
+
+	gdb_test_no_output "set language c"
+
+	get_debug_format
+
+	# Make sure that malloc gets called and that the floating
+	# point unit is initialized via a call to t_double_values.
+	gdb_test "next" \
+	    "t_double_values\\(double_val1, double_val2\\);.*" \
+	    "next to t_double_values"
+	gdb_test "next" "t_structs_c\\(struct_val1\\);.*" \
+	    "next to t_structs_c"
+    }
 }
 
 proc perform_all_tests {prototypes} {
@@ -347,7 +357,8 @@ proc perform_all_tests {prototypes} {
     rerun_and_prepare
 
     # Save all register contents.
-    set old_reg_content [fetch_all_registers "retrieve original register contents"]
+    set old_reg_content \
+	[fetch_all_registers "retrieve original register contents 1"]
 
     # Perform function calls.
     do_function_calls $prototypes
@@ -364,7 +375,8 @@ proc perform_all_tests {prototypes} {
 
     rerun_and_prepare
     # Save all register contents.
-    set old_reg_content [fetch_all_registers "retrieve original register contents"]
+    set old_reg_content \
+	[fetch_all_registers "retrieve original register contents 2"]
 
     # Set breakpoint at a function we will call from gdb.
     gdb_breakpoint add
@@ -391,7 +403,8 @@ proc perform_all_tests {prototypes} {
     # Set breakpoint at a function we will call from gdb.
     gdb_breakpoint add
     # Save all register contents.
-    set old_reg_content [fetch_all_registers "retrieve original register contents"]
+    set old_reg_content \
+	[fetch_all_registers "retrieve original register contents 3"]
 
     # Call function (causing a breakpoint hit in the call dummy) and do a finish,
     # make sure we are back at main and still have the same register contents.
@@ -416,7 +429,8 @@ proc perform_all_tests {prototypes} {
     # Set breakpoint at a function we will call from gdb.
     gdb_breakpoint add
     # Save all register contents.
-    set old_reg_content [fetch_all_registers "retrieve original register contents"]
+    set old_reg_content \
+	[fetch_all_registers "retrieve original register contents 4"]
 
     # Call function (causing a breakpoint hit in the call dummy) and do a return
     # with a value, make sure we are back at main with the same register contents.
@@ -439,7 +453,8 @@ proc perform_all_tests {prototypes} {
     rerun_and_prepare
     # Set breakpoint at a function we will call from gdb.
     gdb_breakpoint add
-    set old_reg_content [fetch_all_registers "retrieve original register contents"]
+    set old_reg_content \
+	[fetch_all_registers "retrieve original register contents 5"]
 
     # Call function (causing a breakpoint hit in the call dummy), and
     # call another function from the call dummy frame (thereby setting up
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/call-sc.exp ./gdb/testsuite/gdb.base/call-sc.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/call-sc.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/call-sc.exp	2019-10-08 01:49:31.000000000 +0000
@@ -71,9 +71,11 @@ proc start_scalars_test { type } {
     gdb_load ${binfile}
 
     # Make certain that the output is consistent
-    gdb_test_no_output "set print sevenbit-strings"
-    gdb_test_no_output "set print address off"
-    gdb_test_no_output "set width 0"
+    with_test_prefix "testfile=$testfile" {
+	gdb_test_no_output "set print sevenbit-strings"
+	gdb_test_no_output "set print address off"
+	gdb_test_no_output "set width 0"
+    }
 
     # Advance to main
     if { ![runto_main] } then {
@@ -243,7 +245,7 @@ proc test_scalar_returns { } {
     #
     # This happens on ppc64 GNU/Linux with gcc 3.4.1 and a buggy GDB
 
-    set test "return foo; synchronize pc to main()"
+    set test "return foo; synchronize pc to main() for '${testfile}'"
     for {set loop_count 0} {$loop_count < 2} {incr loop_count} {
       gdb_test_multiple "backtrace 1" $test {
         -re "#0.*main \\(\\).*${gdb_prompt} $" {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/charset.exp ./gdb/testsuite/gdb.base/charset.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/charset.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/charset.exp	2019-10-08 01:49:31.000000000 +0000
@@ -175,7 +175,7 @@ gdb_expect {
 # We don't want to test all the charset names here, since that would
 # be too many combinations.  We we pick a subset.
 set charset_subset {ASCII ISO-8859-1 EBCDIC-US IBM1047}
-foreach host_charset $charset_subset {
+foreach_with_prefix host_charset $charset_subset {
     if {[valid_host_charset $host_charset]} {
 
         set testname "try `set host-charset $host_charset'"
@@ -591,8 +591,12 @@ gdb_test "print 'a' == 'a' || 'b' == 'b'
 
 
 proc string_display { var_name set_prefix x_size x_type} {
-  gdb_test_no_output "set ${var_name} = ${set_prefix}\"Test String\\0with zeroes\"" "assign ${var_name} with prefix ${set_prefix}"
-  gdb_test "x /2${x_size}s ${var_name}" ".*\t${x_type}\"Test String\"\[\r\n\]+.*\t${x_type}\"with zeroes\"" "display String ${var_name} with x/${x_size}s"
+    with_test_prefix "set_prefix=$set_prefix" {
+	gdb_test_no_output "set ${var_name} = ${set_prefix}\"Test String\\0with zeroes\""\
+	    "assign ${var_name} with prefix ${set_prefix}"
+	gdb_test "x /2${x_size}s ${var_name}" ".*\t${x_type}\"Test String\"\[\r\n\]+.*\t${x_type}\"with zeroes\"" \
+	    "display String ${var_name} with x/${x_size}s"
+    }
 }
 
 if {$ucs2_ok} {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-constvars.c ./gdb/testsuite/gdb.base/ctf-constvars.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-constvars.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctf-constvars.c	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,116 @@
+/* This test program is part of GDB, the GNU debugger.
+
+   Copyright 2019 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/>.  */
+
+const char            laconic = 'A';
+const char           *const lewd=&laconic;
+
+/* volatile variables */
+
+volatile char vox = 'B';
+volatile unsigned char victuals = 'C';
+volatile short vixen = 200;
+volatile unsigned short vitriol = 300;
+volatile long vellum = 1000;
+volatile unsigned long valve = 2000;
+volatile float vacuity = 3.0;
+volatile double vertigo = 10;
+
+/* pointers to volatile variables */
+
+volatile char           * vampire = &vox;
+volatile unsigned char  * viper  = &victuals;
+volatile short          * vigour = &vixen;
+volatile unsigned short * vapour = &vitriol;
+volatile long           * ventricle = &vellum;
+volatile unsigned long  * vigintillion = &valve;
+volatile float          * vocation = &vacuity;
+volatile double         * veracity = &vertigo;
+
+/* volatile pointers to volatile variables */
+
+volatile char           * volatile vapidity = &vox;
+volatile unsigned char  * volatile velocity = &victuals;
+volatile short          * volatile veneer = &vixen;
+volatile unsigned short * volatile video = &vitriol;
+volatile long           * volatile vacuum = &vellum;
+volatile unsigned long  * volatile veniality = &valve;
+volatile float          * volatile vitality = &vacuity;
+volatile double         * volatile voracity = &vertigo;
+
+/* volatile arrays */
+
+volatile char violent[2];
+volatile unsigned char violet[2];
+volatile short vips[2];
+volatile unsigned short virgen[2];
+volatile long vulgar[2];
+volatile unsigned long vulture[2];
+volatile float vilify[2];
+volatile double villar[2];
+
+/* const volatile vars */
+
+const volatile char           victor = 'Y';
+
+/* pointers to const volatiles */
+
+const volatile char              * victory = &victor;
+
+/* const pointers to const volatile vars */
+
+const volatile char              * const cavern = &victor;
+
+/* volatile pointers to const vars */
+
+const char                       * volatile caveat = &laconic;
+const unsigned char              * volatile covenant;
+
+/* volatile pointers to const volatile vars */
+
+const volatile char              * volatile vizier = &victor;
+const volatile unsigned char     * volatile vanadium;
+
+/* const volatile pointers */
+
+char                             * const volatile vane;
+unsigned char                    * const volatile veldt;
+
+/* const volatile pointers to const vars */
+
+const char                       * const volatile cove;
+const unsigned char              * const volatile cavity;
+ 
+/* const volatile pointers to volatile vars */
+
+volatile char                    * const volatile vagus;
+volatile unsigned char           * const volatile vagrancy;
+ 
+/* const volatile pointers to const volatile */
+
+const volatile char              * const volatile vagary;
+const volatile unsigned char     * const volatile vendor;
+
+/* const volatile arrays */
+
+const volatile char vindictive[2];
+const volatile unsigned char vegetation[2];
+
+int
+main (void)
+{
+  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.3.50.20191001/gdb/testsuite/gdb.base/ctf-constvars.exp ./gdb/testsuite/gdb.base/ctf-constvars.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-constvars.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctf-constvars.exp	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,114 @@
+# Copyright 2019 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 a subset of constvars.exp, written by
+# Elena Zannoni (elz@apollo.hp.com)
+#
+# This file is part of the gdb testsuite
+#
+# tests for const variables
+#           const pointers to vars
+#           pointers to const variables
+#           const pointers to const vars
+# with mixed types
+
+#
+# test running programs
+#
+# -gt generates full-fledged CTF.
+
+standard_testfile .c
+set opts "additional_flags=-gt"
+
+if { [prepare_for_testing "failed to prepare" ${testfile} \
+	  [list $srcfile] [list $opts nowarnings]] } {
+    return 0
+}
+
+#
+# set it up at a breakpoint so we can play with the variable values
+#
+if ![runto_main] then {
+    perror "couldn't run to breakpoint"
+    continue
+}
+
+# test vars and pointers
+
+proc do_constvar_tests {} {
+    gdb_test "print vox" " = 66 'B'"
+    gdb_test "ptype vox" "type = volatile char"
+    gdb_test "print victuals" " = 67 'C'"
+    gdb_test "ptype victuals" "type = volatile unsigned char"
+    gdb_test "print vixen" " = 200"
+    gdb_test "ptype vixen" "type = volatile short.*"
+    gdb_test "print vitriol" " = 300"
+    gdb_test "ptype vitriol" "type = volatile (unsigned short|short unsigned)( int)?"
+    gdb_test "print vellum" " = 1000"
+    gdb_test "ptype vellum" "type = volatile long.*"
+    gdb_test "print valve" " = 2000"
+    gdb_test "ptype valve" "type = volatile (unsigned long|long unsigned)( int)?"
+    gdb_test "print vacuity" " = 3"
+    gdb_test "ptype vacuity" "type = volatile float"
+    gdb_test "print vertigo" " = 10"
+    gdb_test "ptype vertigo" "type = volatile double"
+    gdb_test "print laconic" " = 65 'A'"
+
+    gdb_test "ptype vampire" "type = volatile char.*"
+    gdb_test "ptype viper" "type = volatile unsigned char.*"
+    gdb_test "ptype vigour" "type = volatile short.*"
+    gdb_test "ptype vapour" "type = volatile (unsigned short|short unsigned)( int)?.*"
+    gdb_test "ptype ventricle" "type = volatile long.*"
+    gdb_test "ptype vigintillion" "type = volatile (unsigned long|long unsigned)( int)?.*"
+    gdb_test "ptype vocation" "type = volatile float.*"
+    gdb_test "ptype veracity" "type = volatile double.*"
+
+    gdb_test "ptype vapidity" "type = volatile char.* volatile"
+    gdb_test "ptype velocity" "type = volatile unsigned char.* volatile"
+    gdb_test "ptype veneer" "type = volatile short.* volatile"
+    gdb_test "ptype video" "type = volatile (unsigned short|short unsigned)( int)?.* volatile"
+    gdb_test "ptype vacuum" "type = volatile long.* volatile"
+    gdb_test "ptype veniality" "type = volatile (unsigned long|long unsigned)( int)?.* volatile"
+    gdb_test "ptype vitality" "type = volatile float.* volatile"
+    gdb_test "ptype voracity" "type = volatile double.* volatile"
+
+    gdb_test "ptype violent" "type = volatile char \\\[2\\\]"
+    gdb_test "ptype violet" "type = volatile unsigned char \\\[2\\\]"
+    gdb_test "ptype vips" "type = volatile short.* \\\[2\\\]"
+    gdb_test "ptype virgen" "type = volatile unsigned short.* \\\[2\\\]"
+    gdb_test "ptype vulgar" "type = volatile long.* \\\[2\\\]"
+    gdb_test "ptype vulture" "type = volatile (unsigned long|long unsigned)( int)? \\\[2\\\]"
+    gdb_test "ptype vilify" "type = volatile float \\\[2\\\]"
+    gdb_test "ptype villar" "type = volatile double \\\[2\\\]"
+
+    gdb_test "print victor" " = 89 'Y'"
+    gdb_test "ptype victor" "type = const volatile char"
+    gdb_test "ptype victory" "type = const volatile char.*"
+    gdb_test "ptype cavern" "type = const volatile char.* const"
+    gdb_test "ptype caveat" "type = const char.* volatile"
+    gdb_test "ptype covenant" "type = const unsigned char.* volatile"
+    gdb_test "ptype vanadium" "type = const volatile unsigned char.* volatile"
+
+    gdb_test "ptype cove" "type = const char.* const volatile"
+    gdb_test "ptype cavity" "type = const unsigned char.* const volatile"
+    gdb_test "ptype vagus" "type = volatile char.* const volatile"
+    gdb_test "ptype vagrancy" "type = volatile unsigned char.* const volatile"
+    gdb_test "ptype vagary" "type = const volatile char.* const volatile"
+    gdb_test "ptype vendor" "type = const volatile unsigned char.* const volatile"
+    gdb_test "ptype vindictive" "type = const volatile char \\\[2\\\]"
+    gdb_test "ptype vegetation" "type = const volatile unsigned char \\\[2\\\]"
+}
+
+do_constvar_tests
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-cvexpr.exp ./gdb/testsuite/gdb.base/ctf-cvexpr.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-cvexpr.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctf-cvexpr.exp	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,495 @@
+#   Copyright (C) 2019 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 a subset of cvexpr.exp written by
+# Michael Snyder, Red Hat, Inc., 9/20/2001
+
+# This file is part of the gdb testsuite
+# Tests for type expressions using const and volatile keywords.
+
+#
+# test running programs
+#
+# -gt generates full-fledged CTF.
+
+standard_testfile cvexpr.c
+set opts "additional_flags=-gt"
+
+if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+     untested "failed to compile"
+     return -1
+}
+
+clean_restart ${binfile}
+
+gdb_test_no_output "set print sevenbit-strings"
+gdb_test_no_output "set print address off"
+gdb_test_no_output "set width 0"
+
+set ws  "\[ \t\]*"
+
+#
+# Test casting a scalar to const
+#
+
+gdb_test "whatis (const char) v_char" \
+	"type = const char" \
+	"(const char)"
+gdb_test "whatis (const signed char) v_signed_char" \
+	"type = const signed char" \
+	"(const signed char)"
+gdb_test "whatis (const unsigned char) v_unsigned_char" \
+	"type = const (unsigned char|char)" \
+	"(const unsigned char)"
+gdb_test "whatis (const short) v_short" \
+	"type = const (short|short int)" \
+	"(const short)"
+gdb_test "whatis (const signed short) v_signed_short" \
+	"type = const (short|short int|signed short|signed short int)" \
+	"(const signed short)"
+gdb_test "whatis (const unsigned short) v_unsigned_short" \
+	"type = const (unsigned short|short unsigned int)" \
+	"(const unsigned short)"
+gdb_test "whatis (const int) v_int" \
+	"type = const int" \
+	"(const int)"
+gdb_test "whatis (const signed int) v_signed_int" \
+	"type = const (signed int|int)" \
+	"(const signed int)"
+gdb_test "whatis (const unsigned int) v_unsigned_int" \
+	"type = const unsigned int" \
+	"(const unsigned int)"
+gdb_test "whatis (const long) v_long" \
+	"type = const (long|long int)" \
+	"(const long)"
+gdb_test "whatis (const signed long) v_signed_long" \
+	"type = const (signed |)long( int|)" \
+	"(const signed long)"
+gdb_test "whatis (const unsigned long) v_unsigned_long" \
+	"type = const (unsigned long|long unsigned int)" \
+	"(const unsigned long)"
+gdb_test "whatis (const long long) v_long_long" \
+	"type = const long long( int|)" \
+	"(const long long)"
+gdb_test "whatis (const signed long long) v_signed_long_long" \
+	"type = const (signed |)long long( int|)" \
+	"(const signed long long)"
+gdb_test "whatis (const unsigned long long) v_unsigned_long_long" \
+	"type = const (unsigned long long|long long unsigned int)" \
+	"(const unsigned long long)"
+gdb_test "whatis (const float) v_float" \
+	"type = const float" \
+	"(const float)"
+gdb_test "whatis (const double) v_double" \
+	"type = const double" \
+	"(const double)"
+
+#
+# Test casting a scalar to volatile
+#
+
+gdb_test "whatis (volatile char) v_char" \
+	"type = volatile char" \
+	"(volatile char)"
+gdb_test "whatis (volatile signed char) v_signed_char" \
+	"type = volatile signed char" \
+	"(volatile signed char)"
+gdb_test "whatis (volatile unsigned char) v_unsigned_char" \
+	"type = volatile (unsigned char|char)" \
+	"(volatile unsigned char)"
+gdb_test "whatis (volatile short) v_short" \
+	"type = volatile (short|short int)" \
+	"(volatile short)"
+gdb_test "whatis (volatile signed short) v_signed_short" \
+	"type = volatile (short|short int|signed short|signed short int)" \
+	"(volatile signed short)"
+gdb_test "whatis (volatile unsigned short) v_unsigned_short" \
+	"type = volatile (unsigned short|short unsigned int)" \
+	"(volatile unsigned short)"
+gdb_test "whatis (volatile int) v_int" \
+	"type = volatile int" \
+	"(volatile int)"
+gdb_test "whatis (volatile signed int) v_signed_int" \
+	"type = volatile (signed int|int)" \
+	"(volatile signed int)"
+gdb_test "whatis (volatile unsigned int) v_unsigned_int" \
+	"type = volatile unsigned int" \
+	"(volatile unsigned int)"
+gdb_test "whatis (volatile long) v_long" \
+	"type = volatile (long|long int)" \
+	"(volatile long)"
+gdb_test "whatis (volatile signed long) v_signed_long" \
+	"type = volatile (signed |)long( int|)" \
+	"(volatile signed long)"
+gdb_test "whatis (volatile unsigned long) v_unsigned_long" \
+	"type = volatile (unsigned long|long unsigned int)" \
+	"(volatile unsigned long)"
+gdb_test "whatis (volatile long long) v_long_long" \
+	"type = volatile long long( int|)" \
+	"(volatile long long)"
+gdb_test "whatis (volatile signed long long) v_signed_long_long" \
+	"type = volatile (signed |)long long( int|)" \
+	"(volatile signed long long)"
+gdb_test "whatis (volatile unsigned long long) v_unsigned_long_long" \
+	"type = volatile (unsigned long long|long long unsigned int)" \
+	"(volatile unsigned long long)"
+gdb_test "whatis (volatile float) v_float" \
+	"type = volatile float" \
+	"(volatile float)"
+gdb_test "whatis (volatile double) v_double" \
+	"type = volatile double" \
+	"(volatile double)"
+
+#
+# Combine const and volatile
+#
+
+gdb_test "whatis (const volatile int) v_int" \
+	"type = const volatile int" \
+	"(const volatile int)"
+gdb_test "whatis (volatile const int) v_int" \
+	"type = const volatile int" \
+	"(volatile const int)"
+gdb_test "whatis (const int volatile) v_int" \
+	"type = const volatile int" \
+	"(const int volatile)"
+gdb_test "whatis (volatile int const) v_int" \
+	"type = const volatile int" \
+	"(volatile int const)"
+gdb_test "whatis (int const volatile) v_int" \
+	"type = const volatile int" \
+	"(int const volatile)"
+gdb_test "whatis (int volatile const) v_int" \
+	"type = const volatile int" \
+	"(int volatile const)"
+
+gdb_test "whatis (const volatile int *) v_int_pointer" \
+	"type = const volatile int${ws}\\*" \
+	"(const volatile int *)"
+gdb_test "whatis (volatile const int *) v_int_pointer" \
+	"type = const volatile int${ws}\\*" \
+	"(volatile const int *)"
+gdb_test "whatis (const int volatile *) v_int_pointer" \
+	"type = const volatile int${ws}\\*" \
+	"(const int volatile)"
+gdb_test "whatis (volatile int const *) v_int_pointer" \
+	"type = const volatile int${ws}\\*" \
+	"(volatile int const *)"
+gdb_test "whatis (int const volatile *) v_int_pointer" \
+	"type = const volatile int${ws}\\*" \
+	"(int const volatile *)"
+gdb_test "whatis (int volatile const *) v_int_pointer" \
+	"type = const volatile int${ws}\\*" \
+	"(int volatile const *)"
+gdb_test "whatis (int * const volatile) v_int_pointer" \
+	"type = int${ws}\\*${ws}const volatile" \
+	"(int * const volatile)"
+gdb_test "whatis (int * volatile const) v_int_pointer" \
+	"type = int${ws}\\*${ws}const volatile" \
+	"(int * volatile const)"
+
+
+#
+# Put 'signed' and 'unsigned' before const/volatile (FIXME)
+#
+
+#gdb_test "whatis (signed const char) v_signed_char" \
+#	"type = const char" \
+#	"(signed const char)"
+#gdb_test "whatis (unsigned const char) v_unsigned_char" \
+#	"type = const (unsigned char|char)" \
+#	"(unsigned const char)"
+#gdb_test "whatis (signed const short) v_signed_short" \
+#	"type = const (short|short int|signed short|signed short int)" \
+#	"(signed const short)"
+#gdb_test "whatis (unsigned const short) v_unsigned_short" \
+#	"type = const (unsigned short|short unsigned int)" \
+#	"(unsigned const short)"
+#gdb_test "whatis (signed const int) v_signed_int" \
+#	"type = const (signed int|int)" \
+#	"(signed const int)"
+#gdb_test "whatis (unsigned const int) v_unsigned_int" \
+#	"type = const unsigned int" \
+#	"(unsigned const int)"
+#gdb_test "whatis (signed const long) v_signed_long" \
+#	"type = const (signed |)long( int|)" \
+#	"(signed const long)"
+#gdb_test "whatis (unsigned const long) v_unsigned_long" \
+#	"type = const (unsigned long|long unsigned int)" \
+#	"(unsigned const long)"
+#gdb_test "whatis (signed const long long) v_signed_long_long" \
+#	"type = const (signed |)long long( int|)" \
+#	"(signed const long long)"
+#gdb_test "whatis (unsigned const long long) v_unsigned_long_long" \
+#	"type = const (unsigned long long|long long unsigned int)" \
+#	"(const unsigned long long)"
+
+#gdb_test "whatis (signed volatile char) v_signed_char" \
+#	"type = volatile char" \
+#	"(signed volatile char)"
+#gdb_test "whatis (unsigned volatile char) v_unsigned_char" \
+#	"type = volatile (unsigned char|char)" \
+#	"(unsigned volatile char)"
+#gdb_test "whatis (signed volatile short) v_signed_short" \
+#	"type = volatile (short|short int|signed short|signed short int)" \
+#	"(signed volatile short)"
+#gdb_test "whatis (unsigned volatile short) v_unsigned_short" \
+#	"type = volatile (unsigned short|short unsigned int)" \
+#	"(unsigned volatile short)"
+#gdb_test "whatis (signed volatile int) v_signed_int" \
+#	"type = volatile (signed int|int)" \
+#	"(signed volatile int)"
+#gdb_test "whatis (unsigned volatile int) v_unsigned_int" \
+#	"type = volatile unsigned int" \
+#	"(unsigned volatile int)"
+#gdb_test "whatis (signed volatile long) v_signed_long" \
+#	"type = volatile (signed |)long( int|)" \
+#	"(signed volatile long)"
+#gdb_test "whatis (unsigned volatile long) v_unsigned_long" \
+#	"type = volatile (unsigned long|long unsigned int)" \
+#	"(unsigned volatile long)"
+#gdb_test "whatis (signed volatile long long) v_signed_long_long" \
+#	"type = volatile (signed |)long long( int|)" \
+#	"(signed volatile long long)"
+#gdb_test "whatis (unsigned volatile long long) v_unsigned_long_long" \
+#	"type = volatile (unsigned long long|long long unsigned int)" \
+#	"(unsigned volatile long long)"
+
+#
+# Now put the 'const' and 'volatile' keywords after the base type.
+#
+
+gdb_test "whatis (char const) v_char" \
+	"type = const char" \
+	"(char const)"
+gdb_test "whatis (signed char const) v_signed_char" \
+	"type = const signed char" \
+	"(signed char const)"
+gdb_test "whatis (unsigned char const) v_unsigned_char" \
+	"type = const (unsigned char|char)" \
+	"(unsigned char const)"
+gdb_test "whatis (short const) v_short" \
+	"type = const (short|short int)" \
+	"(short const)"
+gdb_test "whatis (signed short const) v_signed_short" \
+	"type = const (short|short int|signed short|signed short int)" \
+	"(signed short const)"
+gdb_test "whatis (unsigned short const) v_unsigned_short" \
+	"type = const (unsigned short|short unsigned int)" \
+	"(unsigned short const)"
+gdb_test "whatis (int const) v_int" \
+	"type = const int" \
+	"(int const)"
+gdb_test "whatis (signed int const) v_signed_int" \
+	"type = const (signed int|int)" \
+	"(signed int const)"
+gdb_test "whatis (unsigned int const) v_unsigned_int" \
+	"type = const unsigned int" \
+	"(unsigned int const)"
+gdb_test "whatis (long const) v_long" \
+	"type = const (long|long int)" \
+	"(long const)"
+gdb_test "whatis (signed long const) v_signed_long" \
+	"type = const (signed |)long( int|)" \
+	"(signed long const)"
+gdb_test "whatis (unsigned long const) v_unsigned_long" \
+	"type = const (unsigned long|long unsigned int)" \
+	"(unsigned long const)"
+gdb_test "whatis (long long const) v_long_long" \
+	"type = const long long( int|)" \
+	"(long long const)"
+gdb_test "whatis (signed long long const) v_signed_long_long" \
+	"type = const (signed |)long long( int|)" \
+	"(signed long long const)"
+gdb_test "whatis (unsigned long long const) v_unsigned_long_long" \
+	"type = const (unsigned long long|long long unsigned int)" \
+	"(unsigned long long const)"
+gdb_test "whatis (float const) v_float" \
+	"type = const float" \
+	"(float const)"
+gdb_test "whatis (double const) v_double" \
+	"type = const double" \
+	"(double const)"
+
+gdb_test "whatis (char volatile) v_char" \
+	"type = volatile char" \
+	"(char volatile)"
+gdb_test "whatis (signed char volatile) v_signed_char" \
+	"type = volatile signed char" \
+	"(signed char volatile)"
+gdb_test "whatis (unsigned char volatile) v_unsigned_char" \
+	"type = volatile (unsigned char|char)" \
+	"(unsigned char volatile)"
+gdb_test "whatis (short volatile) v_short" \
+	"type = volatile (short|short int)" \
+	"(short volatile)"
+gdb_test "whatis (signed short volatile) v_signed_short" \
+	"type = volatile (short|short int|signed short|signed short int)" \
+	"(signed short volatile)"
+gdb_test "whatis (unsigned short volatile) v_unsigned_short" \
+	"type = volatile (unsigned short|short unsigned int)" \
+	"(unsigned short volatile)"
+gdb_test "whatis (int volatile) v_int" \
+	"type = volatile int" \
+	"(int volatile)"
+gdb_test "whatis (signed int volatile) v_signed_int" \
+	"type = volatile (signed int|int)" \
+	"(signed int volatile)"
+gdb_test "whatis (unsigned int volatile) v_unsigned_int" \
+	"type = volatile unsigned int" \
+	"(unsigned int volatile)"
+gdb_test "whatis (long volatile) v_long" \
+	"type = volatile (long|long int)" \
+	"(long volatile)"
+gdb_test "whatis (signed long volatile) v_signed_long" \
+	"type = volatile (signed |)long( int|)" \
+	"(signed long volatile)"
+gdb_test "whatis (unsigned long volatile) v_unsigned_long" \
+	"type = volatile (unsigned long|long unsigned int)" \
+	"(unsigned long volatile)"
+gdb_test "whatis (long long volatile) v_long_long" \
+	"type = volatile long long( int|)" \
+	"(long long volatile)"
+gdb_test "whatis (signed long long volatile) v_signed_long_long" \
+	"type = volatile (signed |)long long( int|)" \
+	"(signed long long volatile)"
+gdb_test "whatis (unsigned long long volatile) v_unsigned_long_long" \
+	"type = volatile (unsigned long long|long long unsigned int)" \
+	"(unsigned long long volatile)"
+gdb_test "whatis (float volatile) v_float" \
+	"type = volatile float" \
+	"(float volatile)"
+gdb_test "whatis (double volatile) v_double" \
+	"type = volatile double" \
+	"(double volatile)"
+
+#
+# enums
+#
+
+gdb_test "whatis (const enum misordered) v_misordered" \
+	"type = const enum misordered" \
+	"(const enum misordered)"
+gdb_test "whatis (enum misordered const) v_misordered" \
+	"type = const enum misordered" \
+	"(enum misordered const)"
+gdb_test "whatis (volatile enum misordered) v_misordered" \
+	"type = volatile enum misordered" \
+	"(volatile enum misordered)"
+gdb_test "whatis (enum misordered volatile) v_misordered" \
+	"type = volatile enum misordered" \
+	"(enum misordered volatile)"
+
+#
+# Pointers
+#
+
+gdb_test "whatis (const int *) v_int_pointer" \
+	"type = const int${ws}\\*" \
+	"(const int *)"
+gdb_test "whatis (int const *) v_int_pointer" \
+	"type = const int${ws}\\*" \
+	"(int const *)"
+gdb_test "whatis (int * const) v_int_pointer" \
+	"type = int \\*${ws}const" \
+	"(int * const)"
+gdb_test "whatis (const int * const) v_int_pointer" \
+	"type = const int${ws}\\*${ws}const" \
+	"(const int * const)"
+gdb_test "whatis (int const * const) v_int_pointer" \
+	"type = const int${ws}\\*${ws}const" \
+	"(int const * const)"
+
+gdb_test "whatis (const int **) v_int_pointer_pointer" \
+	"type = const int${ws}\\*${ws}\\*" \
+	"(const int **)"
+gdb_test "whatis (int const **) v_int_pointer_pointer" \
+	"type = const int${ws}\\*${ws}\\*" \
+	"(int const **)"
+gdb_test "whatis (int ** const) v_int_pointer_pointer" \
+	"type = int \\*${ws}\\*${ws}const" \
+	"(int ** const)"
+gdb_test "whatis (const int * const *) v_int_pointer_pointer" \
+	"type = const int${ws}\\*${ws}const${ws}\\*" \
+	"(const int * const *)"
+gdb_test "whatis (int const * const *) v_int_pointer_pointer" \
+	"type = const int${ws}\\*${ws}const${ws}\\*" \
+	"(int const * const *)"
+gdb_test "whatis (const int * const * const) v_int_pointer_pointer" \
+	"type = const int${ws}\\*${ws}const${ws}\\*${ws}const" \
+	"(const int * const * const)"
+gdb_test "whatis (int const * const * const) v_int_pointer_pointer" \
+	"type = const int${ws}\\*${ws}const${ws}\\*${ws}const" \
+	"(int const * const * const)"
+
+#
+# Arrays TODO
+#
+
+#
+# Pointers to arrays, arrays of pointers TODO
+#
+
+#
+# Structs and Unions
+#
+
+gdb_test "whatis (const struct t_struct) v_struct1" \
+	"type = const struct t_struct" \
+	"(const struct t_struct)"
+gdb_test "whatis (const union t_union) v_union" \
+	"type = const union t_union" \
+	"(const union t_union)"
+gdb_test "whatis (struct t_struct const) v_struct1" \
+	"type = const struct t_struct" \
+	"(struct t_struct const)"
+gdb_test "whatis (union t_union const) v_union" \
+	"type = const union t_union" \
+	"(union t_union const)"
+gdb_test "whatis (const struct t_struct *) &v_struct1" \
+	"type = const struct t_struct${ws}\\*" \
+	"(const struct t_struct *)"
+gdb_test "whatis (const union t_union *) &v_union" \
+	"type = const union t_union${ws}\\*" \
+	"(const union t_union *)"
+gdb_test "whatis (struct t_struct const *) &v_struct1" \
+	"type = const struct t_struct${ws}\\*" \
+	"(struct t_struct const *)"
+gdb_test "whatis (union t_union const *) &v_union" \
+	"type = const union t_union${ws}\\*" \
+	"(union t_union const *)"
+gdb_test "whatis (struct t_struct * const) &v_struct1" \
+	"type = struct t_struct${ws}\\*${ws}const" \
+	"(struct t_struct * const)"
+gdb_test "whatis (union t_union * const) &v_union" \
+	"type = union t_union${ws}\\*${ws}const" \
+	"(union t_union * const)"
+gdb_test "whatis (const struct t_struct * const) &v_struct1" \
+	"type = const struct t_struct${ws}\\*${ws}const" \
+	"(const struct t_struct * const)"
+gdb_test "whatis (const union t_union * const) &v_union" \
+	"type = const union t_union${ws}\\*${ws}const" \
+	"(const union t_union * const)"
+gdb_test "whatis (struct t_struct const * const) &v_struct1" \
+	"type = const struct t_struct${ws}\\*${ws}const" \
+	"(struct t_struct const * const)"
+gdb_test "whatis (union t_union const * const) &v_union" \
+	"type = const union t_union${ws}\\*${ws}const" \
+	"(union t_union const * const)"
+
+#
+# Function pointers TODO
+#
+
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-ptype.c ./gdb/testsuite/gdb.base/ctf-ptype.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-ptype.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctf-ptype.c	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,305 @@
+/* This test program is part of GDB, the GNU debugger.
+
+   Copyright 2019 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 file with lots of different types, for testing the
+ *	"ptype" command on CTF data. It's devired from ptype.c.
+ */
+
+/*
+ *	First the basic C types.
+ */
+
+#if !defined (__STDC__) && !defined (_AIX)
+#define signed  /**/
+#endif
+
+char		v_char;
+signed char	v_signed_char;
+unsigned char	v_unsigned_char;
+
+short		v_short;
+signed short	v_signed_short;
+unsigned short	v_unsigned_short;
+
+int		v_int;
+signed int	v_signed_int;
+unsigned int	v_unsigned_int;
+
+long		v_long;
+signed long	v_signed_long;
+unsigned long	v_unsigned_long;
+
+float		v_float;
+double		v_double;
+
+/**** arrays *******/
+
+char		v_char_array[2];
+signed char	v_signed_char_array[2];
+unsigned char	v_unsigned_char_array[2];
+
+short		v_short_array[2];
+signed short	v_signed_short_array[2];
+unsigned short	v_unsigned_short_array[2];
+
+int		v_int_array[2];
+signed int	v_signed_int_array[2];
+unsigned int	v_unsigned_int_array[2];
+
+long		v_long_array[2];
+signed long	v_signed_long_array[2];
+unsigned long	v_unsigned_long_array[2];
+
+float		v_float_array[2];
+double		v_double_array[2];
+
+/* PR 3742 */
+typedef char t_char_array[];
+t_char_array *pv_char_array;
+
+/**** pointers *******/
+
+char		*v_char_pointer;
+signed char	*v_signed_char_pointer;
+unsigned char	*v_unsigned_char_pointer;
+
+short		*v_short_pointer;
+signed short	*v_signed_short_pointer;
+unsigned short	*v_unsigned_short_pointer;
+
+int		*v_int_pointer;
+signed int	*v_signed_int_pointer;
+unsigned int	*v_unsigned_int_pointer;
+
+long		*v_long_pointer;
+signed long	*v_signed_long_pointer;
+unsigned long	*v_unsigned_long_pointer;
+
+float		*v_float_pointer;
+double		*v_double_pointer;
+
+/**** structs *******/
+
+struct t_struct {
+    char	v_char_member;
+    short	v_short_member;
+    int		v_int_member;
+    long	v_long_member;
+    float	v_float_member;
+    double	v_double_member;
+} v_struct1;
+
+struct t_struct *v_t_struct_p;
+
+struct {
+    char	v_char_member;
+    short	v_short_member;
+    int		v_int_member;
+    long	v_long_member;
+    float	v_float_member;
+    double	v_double_member;
+} v_struct2;
+
+/* typedef'd struct without a tag.  */
+typedef struct {
+  double v_double_member;
+  int v_int_member;
+} t_struct3;
+/* GCC seems to want a variable of this type, or else it won't put out
+   a symbol.  */
+t_struct3 v_struct3;
+
+/**** unions *******/
+
+union t_union {
+    char	v_char_member;
+    short	v_short_member;
+    int		v_int_member;
+    long	v_long_member;
+    float	v_float_member;
+    double	v_double_member;
+} v_union;
+
+union {
+    char	v_char_member;
+    short	v_short_member;
+    int		v_int_member;
+    long	v_long_member;
+    float	v_float_member;
+    double	v_double_member;
+} v_union2;
+
+/* typedef'd union without a tag.  */
+typedef union {
+  double v_double_member;
+  int v_int_member;
+} t_union3;
+/* GCC seems to want a variable of this type, or else it won't put out
+   a symbol.  */
+t_union3 v_union3;
+
+/**** Some misc more complicated things *******/
+
+struct outer_struct {
+	int outer_int;
+	struct inner_struct {
+		int inner_int;
+		long inner_long;
+	}inner_struct_instance;
+	union inner_union {
+		int inner_union_int;
+		long inner_union_long;
+	}inner_union_instance;
+	long outer_long;
+} nested_su;
+
+struct highest
+{
+  int a;
+  struct
+  {
+    int b;
+    struct { int c; } anonymous_level_2;
+  } anonymous_level_1;
+} the_highest;
+
+/**** Enumerations *******/
+
+enum
+/* Work around the bug for compilers which don't put out the right stabs.  */
+#if __GNUC__ < 2 && !defined (_AIX)
+primary1_tag
+#endif
+{red1, green1, blue1} primary1;
+
+enum {red, green, blue} primary;
+enum colors {yellow, purple, pink} nonprimary;
+
+enum {chevy, ford} clunker;
+enum cars {bmw, porsche} sportscar;
+
+#undef FALSE
+#undef TRUE
+typedef enum {FALSE, TRUE} boolean;
+boolean v_boolean;
+/*note: aCC has bool type predefined with 'false' and 'true'*/
+typedef enum bvals {my_false, my_true} boolean2;
+boolean2 v_boolean2;
+
+enum misordered {two = 2, one = 1, zero = 0, three = 3};
+
+/* Seems like we need a variable of this type to get the type to be put
+   in the executable, at least for AIX xlc.  */
+enum misordered v_misordered = three;
+
+/**** Pointers to functions *******/
+
+typedef int (*func_type) (int (*) (int, float), float);
+double (*old_fptr) ();
+double (*new_fptr) (void);
+int (*fptr) (int, float);
+int *(*fptr2) (int (*) (int, float), float);
+int (*xptr) (int (*) (), int (*) (void), int);
+int (*(*ffptr) (char)) (short);
+int (*(*(*fffptr) (char)) (short)) (long);
+
+func_type v_func_type;
+
+int main ()
+{
+  /* Ensure that malloc is a pointer type; avoid use of "void" and any include files. */
+/*  extern char *malloc();*/
+
+  /* Some of the tests in ptype.exp require invoking malloc, so make
+     sure it is linked in to this program.  */
+  v_char_pointer = (char *) malloc (1);
+
+  /* Some linkers (e.g. on AIX) remove unreferenced variables,
+     so make sure to reference them. */
+  primary = blue;
+  primary1 = blue1;
+  nonprimary = pink;
+  sportscar = porsche;
+  clunker = ford;
+  v_struct1.v_int_member = 5;
+  v_struct2.v_int_member = 6;
+  v_struct3.v_int_member = 7;
+
+  v_char = 0;
+  v_signed_char = 0;
+  v_unsigned_char = 0;
+
+  v_short = 0;
+  v_signed_short = 0;
+  v_unsigned_short = 0;
+
+  v_int = 0;
+  v_signed_int = 0;
+  v_unsigned_int = 0;
+
+  v_long = 0;
+  v_signed_long = 0;
+  v_unsigned_long = 0;
+
+  v_float = 0;
+  v_double = 0;
+
+  v_char_array[0] = 0;
+  v_signed_char_array[0] = 0;
+  v_unsigned_char_array[0] = 0;
+
+  v_short_array[0] = 0;
+  v_signed_short_array[0] = 0;
+  v_unsigned_short_array[0] = 0;
+
+  v_int_array[0] = 0;
+  v_signed_int_array[0] = 0;
+  v_unsigned_int_array[0] = 0;
+
+  v_long_array[0] = 0;
+  v_signed_long_array[0] = 0;
+  v_unsigned_long_array[0] = 0;
+
+  v_float_array[0] = 0;
+  v_double_array[0] = 0;
+
+  v_char_pointer = 0;
+  v_signed_char_pointer = 0;
+  v_unsigned_char_pointer = 0;
+
+  v_short_pointer = 0;
+  v_signed_short_pointer = 0;
+  v_unsigned_short_pointer = 0;
+
+  v_int_pointer = 0;
+  v_signed_int_pointer = 0;
+  v_unsigned_int_pointer = 0;
+
+  v_long_pointer = 0;
+  v_signed_long_pointer = 0;
+  v_unsigned_long_pointer = 0;
+
+  v_float_pointer = 0;
+  v_double_pointer = 0;
+
+  nested_su.outer_int = 0;
+  v_t_struct_p = 0;
+
+  the_highest.a = 0;
+  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.3.50.20191001/gdb/testsuite/gdb.base/ctf-ptype.exp ./gdb/testsuite/gdb.base/ctf-ptype.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-ptype.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctf-ptype.exp	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,288 @@
+# Copyright 2019 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 a subset of ptype.exp written by Rob Savoye. (rob@cygnus.com)
+
+#
+# test running programs
+#
+# -gt generates full-fledged CTF.
+
+standard_testfile .c
+set opts "additional_flags=-gt"
+
+if { [prepare_for_testing "failed to prepare" ${testfile} \
+	  [list $srcfile] [list $opts nowarnings]] } {
+    return 0
+}
+
+# Create and source the file that provides information about the compiler
+# used to compile the test case.
+if [get_compiler_info] {
+    return -1
+}
+
+# Test ptype of unnamed enumeration members before any action causes
+# the partial symbol table to be expanded to full symbols.  This fails
+# with stabs compilers which fail to use a nameless stab (such as
+# pre-2.4.5 versions of gcc and most non-gcc compilers).
+
+gdb_test_multiple "ptype red1" "ptype unnamed enumeration member" {
+    -re "type = enum primary1_tag \{red1, green1, blue1\}.*$gdb_prompt $" {
+	# The workaround is in effect.  As this is a compiler, not GDB,
+	# bug, we'll make it a PASS but perhaps it should be an XFAIL.
+	pass "ptype unnamed enumeration member (worked around)"
+    }
+    -re "type = enum \{red1, green1, blue1\}.*$gdb_prompt $" {
+	pass "ptype unnamed enumeration member"
+    }
+}
+
+#
+# test ptype command with structures
+#
+# Here and elsewhere, we accept
+# "long", "long int", or "int" for long variables (whatis.exp already
+# has an XFAIL for "int" (Sun cc bug), so no need to fail it here).
+gdb_test "ptype struct t_struct" "type = struct t_struct \{.*\[\r\n\]    (unsigned |)char v_char_member;.*\[\r\n\]    (short|short int) v_short_member;.*\[\r\n\]    int v_int_member;.*\[\r\n\]    (long|long int|int) v_long_member;.*\[\r\n\]    float v_float_member;.*\[\r\n\]    double v_double_member;.*\[\r\n\]\}.*" "ptype structure"
+
+
+# Test the equivalence between '.' and '->' for struct member references.
+
+if [gdb_test "ptype v_t_struct_p.v_float_member"	"type = float"]<0 then {
+    return -1
+}
+if [gdb_test "ptype v_t_struct_p->v_float_member"	"type = float"]<0 then {
+    return -1
+}
+if [gdb_test "ptype v_t_struct_p.v_float_member"	"type = float"]<0 then {
+    return -1
+}
+if [gdb_test "ptype v_t_struct_p->v_float_member"	"type = float"]<0 then {
+    return -1
+}
+
+#
+# test ptype command with unions
+#
+gdb_test "ptype union t_union" "type = union t_union \{.*\[\r\n\]    (unsigned |)char v_char_member;.*\[\r\n\]    (short|short int) v_short_member;.*\[\r\n\]    int v_int_member;.*\[\r\n\]    (long|long int|int) v_long_member;.*\[\r\n\]    float v_float_member;.*\[\r\n\]    double v_double_member;.*\[\r\n\]\}.*" "ptype union"
+
+#
+# test ptype command with enums
+#
+
+gdb_test "ptype primary" "type = enum .red, green, blue.*" "ptype unnamed enumeration"
+
+gdb_test "ptype enum colors" "type = enum colors \{yellow, purple, pink\}.*" "ptype named enumeration"
+
+
+#
+# test ptype command with enums as typedef
+#
+gdb_test "ptype boolean" "type = enum (boolean |)\{FALSE, TRUE\}.*" "ptype unnamed typedef'd enumeration"
+
+gdb_test "list main" ".*"
+
+# Same thing with struct and union.
+gdb_test "ptype t_struct3" "type = struct (t_struct3 |)\{.*
+ *double v_double_member;.*
+ *int v_int_member;.*\}" "printing typedef'd struct"
+
+gdb_test "ptype t_union3" "type = union (t_union3 |)\{.*
+ *double v_double_member;.*
+ *int v_int_member;.*\}" "printing typedef'd union"
+
+gdb_test "ptype enum bvals" "type = enum bvals \{my_false, my_true\}.*" "ptype named typedef'd enumf'd enum"
+
+#
+# test ptype command with out-of-order enum values
+#
+gdb_test "ptype enum misordered" "type = enum misordered \{two = 2, one = 1, zero = 0, three = 3\}.*" "ptype misordered enumeration"
+
+#
+# test ptype command with a named enum's value
+#
+gdb_test "ptype three" "type = enum misordered \{two = 2, one = 1, zero = 0, three = 3\}.*" "ptype named enumeration member"
+
+gdb_test "ptype red" "type = enum \{red, green, blue\}.*" "ptype unnamed enumeration member #2"
+
+#
+# test ptype command with arrays
+#
+gdb_test "ptype v_char_array" "type = char .2..*" "ptype char array"
+
+gdb_test "ptype v_signed_char_array" "type = (|signed )char .2..*" "ptype signed char array"
+
+gdb_test "ptype v_unsigned_char_array" "type = unsigned char .2..*" "ptype unsigned char array"
+
+gdb_test "ptype v_int_array" "type = int .2..*" "ptype int array"
+
+gdb_test "ptype v_signed_int_array" "type = int .2..*" "ptype signed int array"
+
+gdb_test "ptype v_unsigned_int_array" "type = unsigned int .2..*" "ptype unsigned int array"
+
+gdb_test "ptype v_long_array" "type = (long|int|long int) .2..*" "ptype long array"
+
+gdb_test "ptype v_signed_long_array" "type = (long|int|long int) .2..*" "ptype signed long array"
+
+gdb_test "ptype v_unsigned_long_array" "type = unsigned long .2..*" "ptype unsigned long array"
+
+gdb_test "ptype v_float_array" "type = float .2..*" "ptype float array"
+
+gdb_test "ptype v_double_array" "type = double .2..*" "ptype double array"
+
+gdb_test "ptype pv_char_array" "type = (|unsigned )char \\(\\*\\)\\\[0?\\\]"
+
+#
+# test ptype command with pointers
+#
+gdb_test "ptype v_char_pointer" "type = char \*.*" "ptype char pointer"
+
+gdb_test "ptype v_short_pointer" "type = short \*.*" "ptype short pointer"
+
+gdb_test "ptype v_long_pointer" "type = long \*.*" "ptype long pointer"
+
+gdb_test "ptype v_int_pointer" "type = int \*.*" "ptype int pointer"
+
+gdb_test "ptype v_signed_long_pointer" "type = long \*.*" "ptype signed long pointer"
+
+gdb_test "ptype v_unsigned_long_pointer" "type = unsigned long \*.*" "ptype unsigned long pointer"
+
+gdb_test "ptype v_float_pointer" "type = float \*.*" "ptype float pointer"
+
+gdb_test "ptype v_double_pointer" "type = double \*.*" "ptype double pointer"
+
+#
+# test ptype command with basic C types
+#
+gdb_test "ptype v_short" "type = short(| int).*" "ptype short"
+
+gdb_test "ptype v_int" "type = int.*" "ptype int"
+
+#
+# test ptype command with nested structure and union
+#
+gdb_test "ptype struct outer_struct" "type = struct outer_struct \{.*\[\r\n\]+\
+.*int outer_int;.*\[\r\n\]+\
+.*(struct|) inner_struct inner_struct_instance;.*\[\r\n\]+\
+.*(union|) inner_union inner_union_instance;.*\[\r\n\]+\
+.*(long|long int|int) outer_long;.*\[\r\n\]\}.*" "ptype outer structure"
+
+gdb_test "ptype struct inner_struct" "type = struct inner_struct \{.*\[\r\n\]    int inner_int;.*\[\r\n\]    (long|long int|int) inner_long;.*\[\r\n\]\}.*" "ptype inner structure"
+
+gdb_test "ptype union inner_union" "type = union inner_union \{.*\[\r\n\]    int inner_union_int;.*\[\r\n\]    (long|long int|int) inner_union_long;.*\[\r\n\]\}.*" "ptype inner union"
+
+gdb_test "ptype nested_su" "type = struct outer_struct \{.*\[\r\n\]    int outer_int;.*\[\r\n\]    (struct |)inner_struct inner_struct_instance;.*\[\r\n\]    (union |)inner_union inner_union_instance;.*\[\r\n\]    (long|long int|int) outer_long;.*\[\r\n\]\}.*" "ptype nested structure"
+
+gdb_test "ptype nested_su.outer_int" "type = int.*" "ptype outer int"
+
+gdb_test "ptype nested_su.inner_struct_instance" "type = struct inner_struct \{.*\[\r\n\]    int inner_int;.*\[\r\n\]    (long|long int|int) inner_long;.*\[\r\n\]\}.*" "ptype nested structure #2"
+
+gdb_test "ptype nested_su.inner_struct_instance.inner_int" "type = int.*" "ptype inner int"
+
+gdb_test "ptype nested_su.inner_union_instance" "type = union inner_union \{.*\[\r\n\]    int inner_union_int;.*\[\r\n\]    (long|long int|int) inner_union_long;.*\[\r\n\]\}.*" "ptype nested union"
+
+# Print the type description of variable the_highest, and verify that
+# the type description for the fields whose type is anonymous are
+# correctly printed (at nesting level 1 and 2).
+
+gdb_test "ptype the_highest" \
+         "type = struct highest \{.*\[\r\n\] *int a;.*\[\r\n\] *struct \{.*\[\r\n\] *int b;.*\[\r\n\] *struct \{\.\.\.\} anonymous_level_2;.*\[\r\n\] *\} anonymous_level_1;.*\[\r\n\]}.*" \
+         "ptype the_highest"
+
+# Print the type descrption for one of the fields of variable the_highest.
+# The purpose is to verify that the type of a field that was printed above
+# as "struct {...}" is now printed in a more descriptive way (because the
+# nesting level is now one level less).
+
+gdb_test "ptype the_highest.anonymous_level_1" \
+         "type = struct \{.*\[\r\n\] *int b;.*\[\r\n\] *struct \{.*\[\r\n\] *int c;.*\[\r\n\] *\} anonymous_level_2;.*\[\r\n\]}.*" \
+         "ptype the_highest"
+
+# Print the type of the identifier ID, and check the response:
+# - Expect to see PROTOTYPED as the type.  PROTOTYPED is not a regular
+#   expression; it's a literal string.
+# - If we instead see the unprototyped type PLAIN, and we're using STABS
+#   generated by GCC, that's an xfail; as of 9 Feb 2002, GCC never emits
+#   prototyped function types in STABS.  Like PROTOTYPED, PLAIN is a
+#   literal string, not a regular expression.
+# - If we see OVERPROTOTYPED, it's an xfail for RealView; RealView
+#   does not distinguish prototyped and unprototyped functions, and
+#   GDB defaults to prototyped.
+# - Otherwise, it's a failure.
+proc ptype_maybe_prototyped { id prototyped plain { overprototyped "NO-MATCH" } } {
+    global gdb_prompt
+    global gcc_compiled
+
+    # Turn the arguments, which are literal strings, into
+    # regular expressions by quoting any special characters they contain.
+    foreach var { prototyped plain overprototyped } {
+	eval "set val \$$var"
+	regsub -all "\[\]\[*()\]" $val "\\\\&" val
+	regsub -all "short int" $val "short( int)?" val
+	regsub -all "long int" $val "long( int)?" val
+	eval "set $var \$val"
+    }
+
+    gdb_test_multiple "ptype $id" "ptype $id" {
+        -re "type = $prototyped\[\r\n\]+$gdb_prompt $" {
+            pass "ptype $id"
+        }
+        -re "type = $plain\[\r\n\]+$gdb_prompt $" {
+            if {$gcc_compiled} { setup_xfail_format "stabs" }
+            fail "ptype $id (compiler doesn't emit prototyped types)"
+        }
+        -re "type = $overprototyped\[\r\n\]+$gdb_prompt $" {
+            if { [test_compiler_info "armcc-*"] } {
+		setup_xfail "*-*-*"
+	    }
+            fail "ptype $id (compiler doesn't emit unprototyped types)"
+        }
+    }
+}
+
+ptype_maybe_prototyped "old_fptr" "double (*)()" "double (*)()" \
+                                  "double (*)(void)"
+
+# Test printing type of string constants and array constants, but
+# requires a running process.  These call malloc, and can take a long
+# time to execute over a slow serial link, so increase the timeout.
+
+if [runto_main] then {
+
+  if [target_info exists gdb,cannot_call_functions] {
+    unsupported "this target can not call functions"
+    continue
+  }
+
+  # We need to up this because this can be really slow on some boards.
+  # (malloc() is called as part of the test).
+  set prev_timeout $timeout
+  set timeout 60
+
+  gdb_test "ptype \"abc\""	"type = char \\\[4\\\]"
+  gdb_test "ptype {'a','b','c'}"	"type = char \\\[3\\\]"
+  gdb_test "ptype {0,1,2}"		"type = int \\\[3\\\]"
+  gdb_test "ptype {(long)0,(long)1,(long)2}"	  "type = long \\\[3\\\]"
+  gdb_test "ptype {(float)0,(float)1,(float)2}" "type = float \\\[3\\\]"
+  gdb_test "ptype {{0,1,2},{3,4,5}}"	"type = int \\\[2\\\]\\\[3\\\]"
+  gdb_test "ptype {4,5,6}\[2\]"	"type = int"
+  gdb_test "ptype *&{4,5,6}\[1\]"	"Attempt to take address of value not located in memory."
+
+  set timeout $prev_timeout
+
+  # Test ptype of user register
+  gdb_test "ptype \$pc" "void \\(\\*\\)\\(\\)" "ptype \$pc"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-whatis.c ./gdb/testsuite/gdb.base/ctf-whatis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-whatis.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctf-whatis.c	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,282 @@
+/* This test program is part of GDB, the GNU debugger.
+
+   Copyright 2019 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 file with lots of different types, for testing the
+ *	"whatis" command on CTF data. It's derived from whatis.c.
+ */
+ 
+/*
+ *	First the basic C types.
+ */
+
+char		v_char;
+signed char	v_signed_char;
+unsigned char	v_unsigned_char;
+
+short		v_short;
+signed short	v_signed_short;
+unsigned short	v_unsigned_short;
+
+int		v_int;
+signed int	v_signed_int;
+unsigned int	v_unsigned_int;
+
+long		v_long;
+signed long	v_signed_long;
+unsigned long	v_unsigned_long;
+
+#ifndef NO_LONG_LONG
+long long		v_long_long;
+signed long long	v_signed_long_long;
+unsigned long long	v_unsigned_long_long;
+#endif
+
+float		v_float;
+double		v_double;
+
+/*
+ *	Now some derived types, which are arrays, functions-returning,
+ *	pointers, structures, unions, and enumerations.
+ */
+
+/**** arrays *******/
+
+char		v_char_array[2];
+signed char	v_signed_char_array[2];
+unsigned char	v_unsigned_char_array[2];
+
+short		v_short_array[2];
+signed short	v_signed_short_array[2];
+unsigned short	v_unsigned_short_array[2];
+
+int		v_int_array[2];
+signed int	v_signed_int_array[2];
+unsigned int	v_unsigned_int_array[2];
+
+long		v_long_array[2];
+signed long	v_signed_long_array[2];
+unsigned long	v_unsigned_long_array[2];
+
+#ifndef NO_LONG_LONG
+long long		v_long_long_array[2];
+signed long long	v_signed_long_long_array[2];
+unsigned long long	v_unsigned_long_long_array[2];
+#endif
+
+float		v_float_array[2];
+double		v_double_array[2];
+
+/**** pointers *******/
+
+/* Make sure they still print as pointer to foo even there is a typedef
+   for that type.  Test this not just for char *, which might be
+   a special case kludge in GDB (Unix system include files like to define
+   caddr_t), but for a variety of types.  */
+typedef char *char_addr;
+char_addr a_char_addr;
+typedef unsigned short *ushort_addr;
+ushort_addr a_ushort_addr;
+typedef signed long *slong_addr;
+slong_addr a_slong_addr;
+#ifndef NO_LONG_LONG
+typedef signed long long *slong_long_addr;
+slong_long_addr a_slong_long_addr;
+#endif
+
+char		*v_char_pointer;
+signed char	*v_signed_char_pointer;
+unsigned char	*v_unsigned_char_pointer;
+
+short		*v_short_pointer;
+signed short	*v_signed_short_pointer;
+unsigned short	*v_unsigned_short_pointer;
+
+int		*v_int_pointer;
+signed int	*v_signed_int_pointer;
+unsigned int	*v_unsigned_int_pointer;
+
+long		*v_long_pointer;
+signed long	*v_signed_long_pointer;
+unsigned long	*v_unsigned_long_pointer;
+
+#ifndef NO_LONG_LONG
+long long		*v_long_long_pointer;
+signed long long	*v_signed_long_long_pointer;
+unsigned long long	*v_unsigned_long_long_pointer;
+#endif
+
+float		*v_float_pointer;
+double		*v_double_pointer;
+
+/**** structs *******/
+
+struct t_struct {
+    char	v_char_member;
+    short	v_short_member;
+    int		v_int_member;
+    long	v_long_member;
+#ifndef NO_LONG_LONG
+    long long	v_long_long_member;
+#endif
+    float	v_float_member;
+    double	v_double_member;
+} v_struct1, *v_struct_ptr1;
+
+struct {
+    char	v_char_member;
+    short	v_short_member;
+    int		v_int_member;
+    long	v_long_member;
+#ifndef NO_LONG_LONG
+    long long	v_long_long_member;
+#endif
+    float	v_float_member;
+    double	v_double_member;
+} v_struct2, *v_struct_ptr2;
+
+/**** unions *******/
+
+union t_union {
+    char	v_char_member;
+    short	v_short_member;
+    int		v_int_member;
+    long	v_long_member;
+#ifndef NO_LONG_LONG
+    long long	v_long_long_member;
+#endif
+    float	v_float_member;
+    double	v_double_member;
+} v_union, *v_union_ptr;
+
+union {
+    char	v_char_member;
+    short	v_short_member;
+    int		v_int_member;
+    long	v_long_member;
+#ifndef NO_LONG_LONG
+    long long	v_long_long_member;
+#endif
+    float	v_float_member;
+    double	v_double_member;
+} v_union2, *v_union_ptr2;
+
+/**** Some misc more complicated things *******/
+
+struct outer_struct {
+	int outer_int;
+	struct inner_struct {
+		int inner_int;
+		long inner_long;
+	}inner_struct_instance;
+	union inner_union {
+		int inner_union_int;
+		long inner_union_long;
+	}inner_union_instance;
+	long outer_long;
+} nested_su;
+
+/***********/
+
+int main ()
+{
+  /* Some linkers (e.g. on AIX) remove unreferenced variables,
+     so make sure to reference them. */
+  v_char = 0;
+  v_signed_char = 1;
+  v_unsigned_char = 2;
+
+  v_short = 3;
+  v_signed_short = 4;
+  v_unsigned_short = 5;
+
+  v_int = 6;
+  v_signed_int = 7;
+  v_unsigned_int = 8;
+
+  v_long = 9;
+  v_signed_long = 10;
+  v_unsigned_long = 11;
+
+#ifndef NO_LONG_LONG
+  v_long_long = 12;
+  v_signed_long_long = 13;
+  v_unsigned_long_long = 14;
+#endif
+
+  v_float = 100.0;
+  v_double = 200.0;
+
+
+  v_char_array[0] = v_char;
+  v_signed_char_array[0] = v_signed_char;
+  v_unsigned_char_array[0] = v_unsigned_char;
+
+  v_short_array[0] = v_short;
+  v_signed_short_array[0] = v_signed_short;
+  v_unsigned_short_array[0] = v_unsigned_short;
+
+  v_int_array[0] = v_int;
+  v_signed_int_array[0] = v_signed_int;
+  v_unsigned_int_array[0] = v_unsigned_int;
+
+  v_long_array[0] = v_long;
+  v_signed_long_array[0] = v_signed_long;
+  v_unsigned_long_array[0] = v_unsigned_long;
+
+#ifndef NO_LONG_LONG
+  v_long_long_array[0] = v_long_long;
+  v_signed_long_long_array[0] = v_signed_long_long;
+  v_unsigned_long_long_array[0] = v_unsigned_long_long;
+#endif
+
+  v_float_array[0] = v_float;
+  v_double_array[0] = v_double;
+
+  v_char_pointer = &v_char;
+  v_signed_char_pointer = &v_signed_char;
+  v_unsigned_char_pointer = &v_unsigned_char;
+
+  v_short_pointer = &v_short;
+  v_signed_short_pointer = &v_signed_short;
+  v_unsigned_short_pointer = &v_unsigned_short;
+
+  v_int_pointer = &v_int;
+  v_signed_int_pointer = &v_signed_int;
+  v_unsigned_int_pointer = &v_unsigned_int;
+
+  v_long_pointer = &v_long;
+  v_signed_long_pointer = &v_signed_long;
+  v_unsigned_long_pointer = &v_unsigned_long;
+
+#ifndef NO_LONG_LONG
+  v_long_long_pointer = &v_long_long;
+  v_signed_long_long_pointer = &v_signed_long_long;
+  v_unsigned_long_long_pointer = &v_unsigned_long_long;
+#endif
+
+  v_float_pointer = &v_float;
+  v_double_pointer = &v_double;
+
+  v_union2.v_short_member = v_union.v_short_member;
+
+  v_struct1.v_char_member = 0;
+  v_struct2.v_char_member = 0;
+
+  nested_su.outer_int = 0;
+  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.3.50.20191001/gdb/testsuite/gdb.base/ctf-whatis.exp ./gdb/testsuite/gdb.base/ctf-whatis.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ctf-whatis.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ctf-whatis.exp	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,413 @@
+# Copyright 2019 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 a subset of whatis.exp written by Rob Savoye. (rob@cygnus.com)
+
+#
+# test running programs
+#
+# -gt generates full-fledged CTF.
+
+standard_testfile .c
+set opts "additional_flags=-gt"
+
+if { [prepare_for_testing "failed to prepare" ${testfile} \
+          [list $srcfile] [list $opts nowarnings]] } {
+    return 0
+}
+
+# Create and source the file that provides information about the compiler
+# used to compile the test case.
+if [get_compiler_info] {
+    return -1
+}
+
+# Start with a fresh gdb.
+
+clean_restart $binfile
+
+# Define a procedure to set up an xfail for all targets that put out a
+# `long' type as an `int' type.
+# Sun cc has this problem.
+# It was said that COFF targets can not distinguish int from long either.
+
+proc setup_xfail_on_long_vs_int {} {
+    global gcc_compiled
+
+    if {!$gcc_compiled} {
+	setup_xfail "*-sun-sunos4*" "i*86-sequent-bsd*"
+    }
+}
+
+#
+# Test whatis command with basic C types
+#
+# The name printed now (as of 23 May 1993) is whatever name the compiler
+# uses in the stabs.  So we need to deal with names both from gcc and
+# native compilers.
+#
+
+gdb_test "whatis v_char" \
+    "type = (unsigned char|char)" \
+    "whatis char"
+
+gdb_test "whatis v_signed_char" \
+    "type = (signed char|char)" \
+    "whatis signed char"
+
+gdb_test "whatis v_unsigned_char" \
+    "type = unsigned char" \
+    "whatis unsigned char"
+
+gdb_test "whatis v_short" \
+    "type = (short|short int)" \
+    "whatis short"
+
+gdb_test "whatis v_signed_short" \
+    "type = (short|short int|signed short|signed short int)" \
+    "whatis signed short"
+
+gdb_test "whatis v_unsigned_short" \
+    "type = (unsigned short|short unsigned int)" \
+    "whatis unsigned short"
+
+gdb_test "whatis v_int" \
+    "type = int" \
+    "whatis int"
+
+gdb_test "whatis v_signed_int" \
+    "type = (signed |)int" \
+    "whatis signed int"
+
+gdb_test "whatis v_unsigned_int" \
+    "type = unsigned int" \
+    "whatis unsigned int"
+
+setup_xfail_on_long_vs_int
+# AIX xlc gets this wrong and unsigned long right.  Go figure.
+if {!$gcc_compiled} then {setup_xfail "rs6000-*-aix*"}
+gdb_test "whatis v_long" \
+    "type = (long|long int)" \
+    "whatis long"
+
+setup_xfail_on_long_vs_int
+# AIX xlc gets this wrong and unsigned long right.  Go figure.
+if {!$gcc_compiled} then {setup_xfail "rs6000-*-aix*"}
+gdb_test "whatis v_signed_long" \
+    "type = (signed |)(long|long int)" \
+    "whatis signed long"
+
+setup_xfail_on_long_vs_int
+gdb_test "whatis v_unsigned_long" \
+    "type = (unsigned long|long unsigned int)" \
+    "whatis unsigned long"
+
+
+if ![target_info exists no_long_long] {
+    gdb_test "whatis v_unsigned_long_long" \
+	"type = (unsigned long long|long long unsigned int)" \
+	"whatis unsigned long long"
+}
+
+gdb_test "whatis v_float" \
+    "type = float" \
+    "whatis float"
+
+gdb_test "whatis v_double" \
+    "type = double" \
+    "whatis double"
+
+
+# test whatis command with arrays
+#
+# We already tested whether char prints as "char", so here we accept
+# "unsigned char", "signed char", and other perversions.  No need for more
+# than one xfail for the same thing.
+gdb_test "whatis v_char_array" \
+    "type = (signed |unsigned |)char \\\[2\\\]" \
+    "whatis char array"
+
+gdb_test "whatis v_signed_char_array" \
+    "type = (signed |unsigned |)char \\\[2\\\]" \
+    "whatis signed char array"
+
+gdb_test "whatis v_unsigned_char_array" \
+    "type = unsigned char \\\[2\\\]" \
+    "whatis unsigned char array"
+
+gdb_test "whatis v_short_array" \
+    "type = (short|short int) \\\[2\\\]" \
+    "whatis short array"
+
+gdb_test "whatis v_signed_short_array" \
+    "type = (signed |)(short|short int) \\\[2\\\]" \
+    "whatis signed short array"
+
+gdb_test "whatis v_unsigned_short_array" \
+    "type = (unsigned short|short unsigned int) \\\[2\\\]" \
+    "whatis unsigned short array"
+
+gdb_test "whatis v_int_array" \
+    "type = int \\\[2\\\]" \
+    "whatis int array"
+
+gdb_test "whatis v_signed_int_array" \
+    "type = (signed |)int \\\[2\\\]" \
+    "whatis signed int array"
+
+gdb_test "whatis v_unsigned_int_array" \
+    "type = unsigned int \\\[2\\\]" \
+    "whatis unsigned int array"
+
+# We already tested whether long prints as long, so here we accept int
+# No need for more than one xfail for the same thing.
+gdb_test "whatis v_long_array" \
+    "type = (int|long|long int) \\\[2\\\]" \
+    "whatis long array"
+
+gdb_test "whatis v_signed_long_array" \
+    "type = (signed |)(int|long|long int) \\\[2\\\]" \
+    "whatis signed long array"
+
+gdb_test "whatis v_unsigned_long_array" \
+    "type = (unsigned (int|long|long int)|long unsigned int) \\\[2\\\]" \
+    "whatis unsigned long array"
+
+if ![target_info exists no_long_long] {
+    gdb_test "whatis v_unsigned_long_long_array" \
+	"type = (unsigned long long|long long unsigned int) \\\[2\\\]" \
+	"whatis unsigned long array"
+}
+
+gdb_test "whatis v_float_array" \
+    "type = float \\\[2\\\]" \
+    "whatis float array"
+
+gdb_test "whatis v_double_array" \
+    "type = double \\\[2\\\]" \
+    "whatis double array"
+
+
+# test whatis command with pointers
+#
+# We already tested whether char prints as char, so accept various perversions
+# here.  We especially want to make sure we test that it doesn't print as
+# caddr_t.
+gdb_test "whatis v_char_pointer" \
+    "type = (unsigned |signed |)char \\*" \
+    "whatis char pointer"
+
+gdb_test "whatis v_signed_char_pointer" \
+    "type = (unsigned |signed |)char \\*" \
+    "whatis signed char pointer"
+
+gdb_test "whatis v_unsigned_char_pointer" \
+    "type = unsigned char \\*" \
+    "whatis unsigned char pointer"
+
+gdb_test "whatis v_short_pointer" \
+    "type = (short|short int) \\*" \
+    "whatis short pointer"
+
+gdb_test "whatis v_signed_short_pointer" \
+    "type = (signed |)(short|short int) \\*" \
+    "whatis signed short pointer"
+
+gdb_test "whatis v_unsigned_short_pointer" \
+    "type = (unsigned short|short unsigned int) \\*" \
+    "whatis unsigned short pointer"
+
+gdb_test "whatis v_int_pointer" \
+    "type = int \\*" \
+    "whatis int pointer"
+
+gdb_test "whatis v_signed_int_pointer" \
+    "type = (signed |)int \\*" \
+    "whatis signed int pointer"
+
+gdb_test "whatis v_unsigned_int_pointer" \
+    "type = unsigned int \\*" \
+    "whatis unsigned int pointer"
+
+# We already tested whether long prints as long, so here we accept int
+gdb_test "whatis v_long_pointer" \
+    "type = (long|int|long int) \\*" \
+    "whatis long pointer"
+
+gdb_test "whatis v_signed_long_pointer" \
+    "type = (signed |)(long|int|long int) \\*" \
+    "whatis signed long pointer"
+
+gdb_test "whatis v_unsigned_long_pointer" \
+    "type = (unsigned (int|long|long int)|long unsigned int) \\*" \
+    "whatis unsigned long pointer"
+
+if ![target_info exists no_long_long] {
+    gdb_test "whatis v_long_long_pointer" \
+	"type = long long(| int) \\*" \
+	"whatis long long pointer"
+
+    gdb_test "whatis v_signed_long_long_pointer" \
+	"type = (signed |)long long(| int) \\*" \
+	"whatis signed long long pointer"
+
+    gdb_test "whatis v_unsigned_long_long_pointer" \
+	"type = (unsigned long long|long long unsigned int) \\*" \
+	"whatis unsigned long long pointer"
+}
+
+gdb_test "whatis v_float_pointer" \
+    "type = float \\*" \
+    "whatis float pointer"
+
+gdb_test "whatis v_double_pointer" \
+    "type = double \\*" \
+    "whatis double pointer"
+
+
+# test whatis command with structure types
+
+# First with a type argument, with both "set print object" set to "on"
+# and "off", ending with "off" for the following tests.
+foreach_with_prefix print_object {"on" "off"} {
+    gdb_test_no_output "set print object $print_object"
+
+    gdb_test "whatis struct t_struct" \
+	"type = struct t_struct" \
+	"whatis named structure using type name"
+
+    gdb_test "whatis struct t_struct *" \
+	"type = struct t_struct \\*" \
+	"whatis named structure using type name and pointer"
+
+    gdb_test "whatis struct t_struct &" \
+	"type = struct t_struct &" \
+	"whatis named structure using type name and reference"
+}
+
+# Now with an expression argument.
+
+gdb_test "whatis v_struct_ptr1" \
+    "type = struct t_struct \\*"
+
+gdb_test "whatis &v_struct_ptr1" \
+    "type = struct t_struct \\*\\*"
+
+gdb_test "whatis v_struct_ptr1->v_char_member" \
+    "type = char"
+
+gdb_test "whatis v_struct_ptr2->v_char_member" \
+    "type = char"
+
+gdb_test "whatis &(v_struct_ptr1->v_char_member)" \
+    "type = char \\*"
+
+gdb_test "whatis &(v_struct_ptr2->v_char_member)" \
+    "type = char \\*"
+
+# test whatis command with union types
+
+gdb_test "whatis union t_union" \
+    "type = union t_union" \
+    "whatis named union using type name"
+
+gdb_test "whatis v_union_ptr" \
+    "type = union t_union \\*"
+
+gdb_test "whatis &v_union_ptr" \
+    "type = union t_union \\*\\*"
+
+gdb_test "whatis v_union_ptr->v_char_member" \
+    "type = char"
+
+gdb_test "whatis v_union_ptr2->v_char_member" \
+    "type = char"
+
+gdb_test "whatis &(v_union_ptr->v_char_member)" \
+    "type = char \\*"
+
+gdb_test "whatis &(v_union_ptr2->v_char_member)" \
+    "type = char \\*"
+
+# test whatis command with nested struct and union
+gdb_test "whatis nested_su" \
+    "type = struct outer_struct" \
+    "whatis outer structure"
+
+gdb_test "whatis nested_su.outer_int" \
+    "type = int" \
+    "whatis outer structure member"
+
+gdb_test "whatis nested_su.inner_struct_instance" \
+    "type = struct inner_struct" \
+    "whatis inner structure"
+
+gdb_test "whatis nested_su.inner_struct_instance.inner_int" \
+    "type = int" \
+    "whatis inner structure member"
+
+gdb_test "whatis nested_su.inner_union_instance" \
+    "type = union inner_union" \
+    "whatis inner union"
+
+gdb_test "whatis nested_su.inner_union_instance.inner_union_int" \
+    "type = int" \
+    "whatis inner union member"
+
+# Using stabs we will mark these functions as prototyped.  This
+# is harmless but causes an extra VOID to be printed.
+set void "(void|)"
+
+# Regression tests for PR 9514.
+
+gdb_test "whatis void (**)()" \
+  "type = void \\(\\*\\*\\)\\(\\)" \
+  "whatis applied to pointer to pointer to function"
+
+gdb_test "whatis void (** const)()" \
+  "type = void \\(\\*\\* const\\)\\(\\)" \
+  "whatis applied to const pointer to pointer to function"
+
+gdb_test "whatis void (* const *)()" \
+  "type = void \\(\\* const \\*\\)\\(\\)" \
+  "whatis applied to pointer to const pointer to function"
+
+gdb_test "whatis int *(*)()" \
+    "type = int \\*\\(\\*\\)\\(\\)" \
+    "whatis applied to pointer to function returning pointer to int"
+
+gdb_test "whatis int *(**)()" \
+    "type = int \\*\\(\\*\\*\\)\\(\\)" \
+    "whatis applied to pointer to pointer to function returning pointer to int"
+
+gdb_test "whatis char (*(*)())\[23\]" \
+    "type = char \\(\\*\\(\\*\\)\\(\\)\\)\\\[23\\\]" \
+    "whatis applied to pointer to function returning pointer to array"
+
+gdb_test "whatis int (*)(int, int)" \
+    "type = int \\(\\*\\)\\(int, int\\)" \
+    "whatis applied to pointer to function taking int,int and returning int"
+
+gdb_test "whatis int (*)(const int *, ...)" \
+    "type = int \\(\\*\\)\\(const int \\*, \\.\\.\\.\\)" \
+    "whatis applied to pointer to function taking const int ptr and varargs and returning int"
+
+gdb_test "whatis int (*)(void, int, int)" \
+    "parameter types following 'void'" \
+    "whatis applied to function with types trailing 'void'"
+
+gdb_test "whatis int (*)(int, void, int)" \
+    "'void' invalid as parameter type" \
+    "whatis applied to function with 'void' parameter type"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/default.exp ./gdb/testsuite/gdb.base/default.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/default.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/default.exp	2019-10-08 01:49:31.000000000 +0000
@@ -604,8 +604,8 @@ set show_conv_list \
 	{$_cimag = <internal function _cimag>} \
 	{$_creal = <internal function _creal>} \
 	{$_isvoid = <internal function _isvoid>} \
-	{$_gdb_major = 8} \
-	{$_gdb_minor = 4} \
+	{$_gdb_major = 9} \
+	{$_gdb_minor = 1} \
 	{$_shell_exitsignal = void} \
 	{$_shell_exitcode = 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.3.50.20191001/gdb/testsuite/gdb.base/dump.exp ./gdb/testsuite/gdb.base/dump.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/dump.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/dump.exp	2019-10-08 01:49:31.000000000 +0000
@@ -30,6 +30,17 @@ if [istarget "alpha*-*-*"] then {
     lappend options "additional_flags=-Wl,-taso"
 }
 
+# Runs the command 'print zero_all ()'.  Uses the PRINT_ZERO_ALL_COUNT
+# global to ensure the test names are unique.
+set print_zero_all_count 0
+proc print_zero_all { } {
+    global print_zero_all_count
+
+    incr print_zero_all_count
+    gdb_test "print zero_all ()" " = void" \
+	"call ${print_zero_all_count} to zero_all function"
+}
+
 # Debian9/Ubuntu16.10 onwards default to PIE enabled. Ensure it is disabled as
 # this causes addresses to be out of range for IHEX.
 lappend options {nopie}
@@ -272,7 +283,6 @@ proc test_restore_saved_value { restore_
 
 if ![string compare $is64bitonly "no"] then {
 
-  gdb_test "print zero_all ()" ".*"
 
   test_restore_saved_value "[set intarr1.srec]" "array as value, srec" \
 	$array_val "intarray"
@@ -280,7 +290,7 @@ if ![string compare $is64bitonly "no"] t
   test_restore_saved_value "[set intstr1.srec]" "struct as value, srec" \
 	$struct_val "intstruct"
 
-  gdb_test "print zero_all ()" "void" "zero all"
+  print_zero_all
 
   test_restore_saved_value "[set intarr2.srec]" "array as memory, srec" \
 	$array_val "intarray"
@@ -288,7 +298,7 @@ if ![string compare $is64bitonly "no"] t
   test_restore_saved_value "[set intstr2.srec]" "struct as memory, srec" \
 	$struct_val "intstruct"
 
-  gdb_test "print zero_all ()" ".*"
+  print_zero_all
 
   test_restore_saved_value "[set intarr1.ihex]" "array as value, ihex" \
 	$array_val "intarray"
@@ -296,7 +306,7 @@ if ![string compare $is64bitonly "no"] t
   test_restore_saved_value "[set intstr1.ihex]" "struct as value, ihex" \
 	$struct_val "intstruct"
 
-  gdb_test "print zero_all ()" ".*"
+  print_zero_all
 
   test_restore_saved_value "[set intarr2.ihex]" "array as memory, ihex" \
 	$array_val "intarray"
@@ -304,7 +314,7 @@ if ![string compare $is64bitonly "no"] t
   test_restore_saved_value "[set intstr2.ihex]" "struct as memory, ihex" \
 	$struct_val "intstruct"
 
-  gdb_test "print zero_all ()" ".*"
+  print_zero_all
 
   test_restore_saved_value "[set intarr1.tekhex]" "array as value, tekhex" \
 	$array_val "intarray"
@@ -312,7 +322,7 @@ if ![string compare $is64bitonly "no"] t
   test_restore_saved_value "[set intstr1.tekhex]" "struct as value, tekhex" \
 	$struct_val "intstruct"
 
-  gdb_test "print zero_all ()" ".*"
+  print_zero_all
 
   test_restore_saved_value "[set intarr2.tekhex]" "array as memory, tekhex" \
 	$array_val "intarray"
@@ -321,7 +331,7 @@ if ![string compare $is64bitonly "no"] t
 	$struct_val "intstruct"
 }
 
-gdb_test "print zero_all ()" ".*"
+print_zero_all
 
 test_restore_saved_value "[set intarr1.bin] binary $array_start" \
 	"array as value, binary" \
@@ -331,7 +341,7 @@ test_restore_saved_value "[set intstr1.b
 	"struct as value, binary" \
 	$struct_val "intstruct"
 
-gdb_test "print zero_all ()" ".*"
+print_zero_all
 
 test_restore_saved_value "[set intarr2.bin] binary $array_start" \
 	"array as memory, binary" \
@@ -350,7 +360,7 @@ set array2_offset  \
 set struct2_offset \
 	[capture_value "(char *) &intstruct2 - (char *) &intstruct"]
 
-gdb_test "print zero_all ()" ".*"
+print_zero_all
 
 
 if ![string compare $is64bitonly "no"] then {
@@ -362,7 +372,7 @@ if ![string compare $is64bitonly "no"] t
 	"struct copy, srec" \
 	$struct_val "intstruct2"
 
-  gdb_test "print zero_all ()" ".*"
+  print_zero_all
 
   test_restore_saved_value "[set intarr1.ihex] $array2_offset" \
 	"array copy, ihex" \
@@ -372,7 +382,7 @@ if ![string compare $is64bitonly "no"] t
 	"struct copy, ihex" \
 	$struct_val "intstruct2"
 
-  gdb_test "print zero_all ()" ".*"
+  print_zero_all
 
   test_restore_saved_value "[set intarr1.tekhex] $array2_offset" \
 	"array copy, tekhex" \
@@ -383,7 +393,7 @@ if ![string compare $is64bitonly "no"] t
 	$struct_val "intstruct2"
 }
 
-gdb_test "print zero_all ()" ".*"
+print_zero_all
 
 test_restore_saved_value "[set intarr1.bin] binary $array2_start" \
 	"array copy, binary" \
@@ -410,7 +420,7 @@ set element4_offset \
 	[capture_value "/x (char *) &intarray\[4\] - (char *) &intarray\[0\]"]
 
 if ![string compare $is64bitonly "no"] then {
-  gdb_test "print zero_all ()" ".*"
+  print_zero_all
 
   test_restore_saved_value "[set intarr1.srec] 0 $element3_start $element4_start" \
 	"array partial, srec" 4 "intarray\[3\]"
@@ -418,7 +428,7 @@ if ![string compare $is64bitonly "no"] t
   gdb_test "print intarray\[2\] == 0" " = 1" "element 2 not changed - 1"
   gdb_test "print intarray\[4\] == 0" " = 1" "element 4 not changed - 1"
 
-  gdb_test "print zero_all ()" ".*"
+  print_zero_all
 
   test_restore_saved_value "[set intarr1.ihex] 0 $element3_start $element4_start" \
 	"array partial, ihex" 4 "intarray\[3\]"
@@ -426,7 +436,7 @@ if ![string compare $is64bitonly "no"] t
   gdb_test "print intarray\[2\] == 0" " = 1" "element 2 not changed - 2"
   gdb_test "print intarray\[4\] == 0" " = 1" "element 4 not changed - 2"
 
-  gdb_test "print zero_all ()" ".*"
+  print_zero_all
 
   test_restore_saved_value "[set intarr1.tekhex] 0 $element3_start $element4_start" \
 	"array partial, tekhex" 4 "intarray\[3\]"
@@ -435,7 +445,7 @@ if ![string compare $is64bitonly "no"] t
   gdb_test "print intarray\[4\] == 0" " = 1" "element 4 not changed - 3"
 }
 
-gdb_test "print zero_all ()" ".*"
+print_zero_all
 
 test_restore_saved_value \
     "[set intarr1.bin] binary $array_start $element3_offset $element4_offset" \
@@ -445,7 +455,7 @@ gdb_test "print intarray\[2\] == 0" " = 
 gdb_test "print intarray\[4\] == 0" " = 1" "element 4 not changed - 4"
 
 if ![string compare $is64bitonly "no"] then {
-  gdb_test "print zero_all ()" ".*" ""
+  print_zero_all
 
   # restore with expressions 
   test_restore_saved_value \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ena-dis-br.exp ./gdb/testsuite/gdb.base/ena-dis-br.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/ena-dis-br.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/ena-dis-br.exp	2019-10-08 01:49:31.000000000 +0000
@@ -60,7 +60,7 @@ gdb_test_no_output "enable $bp" "enable 
 
 gdb_test "info break $bp" \
     "\[0-9\]*\[ \t\]+breakpoint\[ \t\]+keep\[ \t\]+y.*" \
-    "info break marker1"
+    "info break marker1 before hitting breakpoint"
 
 # See the comments in condbreak.exp for "run until breakpoint at
 # marker1" for an explanation of the xfail below.
@@ -84,7 +84,7 @@ gdb_test_no_output "enable once $bp" "en
 
 gdb_test "info break $bp" \
     "\[0-9\]*\[ \t\]+breakpoint\[ \t\]+dis\[ \t\]+y.*" \
-    "info auto-disabled break marker2"
+    "info auto-disabled break marker2 before hitting breakpoint"
 
 # See the comments in condbreak.exp for "run until breakpoint at
 # marker1" for an explanation of the xfail below.
@@ -100,7 +100,7 @@ gdb_test_multiple "continue" "$test" {
 
 gdb_test "info break $bp" \
     "\[0-9\]*\[ \t\]+breakpoint\[ \t\]+dis\[ \t\]+n.*" \
-    "info auto-disabled break marker2"
+    "info auto-disabled break marker2 after hitting breakpoint"
 
 # Verify that we don't stop at a disabled breakpoint.
 gdb_continue_to_end "no stop"
@@ -209,7 +209,7 @@ gdb_test "ignore $bp 0" \
 
 gdb_test "ignore $bp 1" \
     "Will ignore next crossing of breakpoint \[0-9\]*.*" \
-    "ignore break marker1"
+    "ignore break marker1 1"
 
 gdb_test "info break $bp" \
     "\[0-9\]*\[ \t\]+breakpoint\[ \t\]+keep\[ \t\]+y.*ignore next 1 hits.*" \
@@ -246,7 +246,7 @@ gdb_test_no_output "enable del $bp" "ena
 
 gdb_test "info break $bp" \
     "\[0-9\]*\[ \t\]+breakpoint\[ \t\]+del\[ \t\]+y.*ignore next 1 hits.*" \
-    "info break marker1"
+    "info break marker1 after hitting breakpoint"
 
 gdb_continue_to_end "no stop at ignored & auto-deleted break marker1"
 rerun_to_main
@@ -266,7 +266,7 @@ set bp [break_at marker1 " line $bp_loca
 
 gdb_test "ignore $bp 10" \
     "Will ignore next 10 crossings of breakpoint \[0-9\]*.*" \
-    "ignore break marker1"
+    "ignore break marker1 10"
 
 gdb_test_no_output "disable $bp" "disable break marker1"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/info-types.exp ./gdb/testsuite/gdb.base/info-types.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/info-types.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/info-types.exp	2019-10-08 01:49:31.000000000 +0000
@@ -85,8 +85,8 @@ proc run_test { lang } {
 		 "39:\[\t \]+typedef enum_t nested_enum_t;" \
 		 "19:\[\t \]+typedef float nested_float_t;" \
 		 "18:\[\t \]+typedef int nested_int_t;" \
-		 "62:\[\t \]+typedef union_t nested_union_t;" \
-		 "\[\t \]+unsigned int(" \
+		 "62:\[\t \]+typedef union_t nested_union_t;(" \
+		 "\[\t \]+unsigned int)?(" \
 		 "" \
 		 "File .*:.*)?" ]
     } else {
@@ -117,8 +117,8 @@ proc run_test { lang } {
 		 "19:\[\t \]+typedef float nested_float_t;" \
 		 "18:\[\t \]+typedef int nested_int_t;" \
 		 "62:\[\t \]+typedef union union_t nested_union_t;" \
-		 "56:\[\t \]+union union_t;" \
-		 "\[\t \]+unsigned int(" \
+		 "56:\[\t \]+union union_t;(" \
+		 "\[\t \]+unsigned int)?(" \
 		 "" \
 		 "File .*:.*)?" ]
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/list-missing-source.exp ./gdb/testsuite/gdb.base/list-missing-source.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/list-missing-source.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/list-missing-source.exp	2019-10-08 01:49:31.000000000 +0000
@@ -54,8 +54,8 @@ gdb_test "list" "1\[ \t\]+in\[ \t\]+$src
 gdb_test "info source" \
     [multi_line \
 	 "info source" \
-	 "Current source file is $srcfile" \
-	 "Compilation directory is \[^\n\r\]+" \
+	 "Current source file is $srcfile\(" \
+	 "Compilation directory is \[^\n\r\]+)?" \
 	 "Source language is c." \
 	 "Producer is \[^\n\r\]+" \
 	 "Compiled with DWARF $decimal debugging format." \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/pretty-print.c ./gdb/testsuite/gdb.base/pretty-print.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/pretty-print.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pretty-print.c	2019-10-08 01:49:31.000000000 +0000
@@ -23,16 +23,18 @@ struct s1_t
   struct
   {
     union {
-      int three : 3;
+      unsigned three : 3;
       int four : 4;
     };
 
     union {
       int five : 3;
-      int six : 4;
+      unsigned six : 4;
     };
   } data;
-} s1 = { .one = 1, .two = 2, .data = { .three = 3, .five = 5 } };
+} s1 = { .one = 1, .two = 2,
+	 /* Use all-ones bit patterns for endianness independence.  */
+	 .data = { .four = -1, .six = 15 } };
 
 struct s2_t
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/pretty-print.exp ./gdb/testsuite/gdb.base/pretty-print.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/pretty-print.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/pretty-print.exp	2019-10-08 01:49:31.000000000 +0000
@@ -36,12 +36,12 @@ gdb_test "print s1" \
 	 "  two = 2," \
 	 "  data = {" \
 	 "    {" \
-	 "      three = 3," \
-	 "      four = 3" \
+	 "      three = 7," \
+	 "      four = -1" \
 	 "    }," \
 	 "    {" \
-	 "      five = -3," \
-	 "      six = 5" \
+	 "      five = -1," \
+	 "      six = 15" \
 	 "    }" \
 	 "  }" \
 	 "}" ]
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var.exp ./gdb/testsuite/gdb.base/print-file-var.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-file-var.exp	2019-10-08 01:49:31.000000000 +0000
@@ -17,76 +17,139 @@ if {[skip_shlib_tests]} {
     return -1
 }
 
-set executable print-file-var-main
+proc test {hidden dlopen version_id_main lang} {
+    global srcdir subdir
 
-set lib1 "print-file-var-lib1"
-set lib2 "print-file-var-lib2"
+    set main "print-file-var-main"
 
-set libobj1 [standard_output_file ${lib1}.so]
-set libobj2 [standard_output_file ${lib2}.so]
+    set suffix "-hidden$hidden-dlopen$dlopen-version_id_main$version_id_main"
 
-set lib_opts { debug additional_flags=-fPIC }
+    # Normally we place different builds (C/C++) of a test into
+    # subdirectories within the test build directory, however, using
+    # gdb_load_shlib doesn't work well with this approach, so instead
+    # add a language specific suffix to the binary and library names.
+    if { $lang == "c" } {
+	set suffix "${suffix}_c"
+    } else {
+	set suffix "${suffix}_cpp"
+    }
+
+    set executable $main$suffix
+
+    set lib1 "print-file-var-lib1"
+    set lib2 "print-file-var-lib2"
+
+    set libobj1 [standard_output_file ${lib1}$suffix.so]
+    set libobj2 [standard_output_file ${lib2}$suffix.so]
+
+    set lib_opts { debug additional_flags=-fPIC $lang }
+    lappend lib_opts "additional_flags=-DHIDDEN=$hidden"
+
+    if { [gdb_compile_shlib ${srcdir}/${subdir}/${lib1}.c \
+	      ${libobj1} \
+	      ${lib_opts} ] != "" } {
+	return -1
+    }
+    if { [gdb_compile_shlib ${srcdir}/${subdir}/${lib2}.c \
+	      ${libobj2} \
+	      ${lib_opts} ] != "" } {
+	return -1
+    }
+
+    set main_opts [list debug shlib=${libobj1} $lang]
+
+    if {$dlopen} {
+	lappend main_opts "shlib_load" \
+	    "additional_flags=-DSHLIB_NAME=\"$libobj2\""
+    } else {
+	lappend main_opts "shlib=${libobj2}"
+    }
+
+    lappend main_opts "additional_flags=-DVERSION_ID_MAIN=$version_id_main"
+
+    if { [gdb_compile "${srcdir}/${subdir}/${main}.c" \
+	      [standard_output_file ${executable}] \
+	      executable \
+	      $main_opts]
+	 != ""} {
+	return -1
+    }
+
+    clean_restart $executable
+    gdb_load_shlib $libobj1
+    gdb_load_shlib $libobj2
+
+    if ![runto_main] {
+	untested "could not run to main"
+	return -1
+    }
+
+    # Try printing "this_version_num" qualified with the name of the file
+    # where the variables are defined.  There are three global variables
+    # with that name, and some systems such as GNU/Linux merge them
+    # into one single entity, while some other systems such as Windows
+    # keep them separate.  In the first situation, we have to verify
+    # that GDB does not randomly select the wrong instance, even when
+    # a specific filename is used to qualified the lookup.  And in the
+    # second case, we have to verify that GDB does select the instance
+    # defined in the given filename.
+    #
+    # To avoid adding target-specific code in this testcase, the program
+    # sets three local variables named 'vm', 'v1' and 'v2' with the value of
+    # our global variables.  This allows us to compare the value that
+    # GDB returns for each query against the actual value seen by
+    # the program itself.
+
+    # Get past the initialization of the v* variables.
+
+    set bp_location \
+	[gdb_get_line_number "STOP" "${main}.c"]
+    gdb_test "break $main.c:$bp_location" \
+	"Breakpoint \[0-9\]+ at 0x\[0-9a-fA-F\]+: .*" \
+	"breapoint at STOP marker"
+
+    gdb_test "continue" \
+	"Breakpoint \[0-9\]+, main \\(\\) at.*STOP.*" \
+	"continue to STOP marker"
+
+    # Now check the value of this_version_id in all of
+    # print-file-var-main.c, print-file-var-lib1.c and
+    # print-file-var-lib2.c.
+
+    # Compare the values of $sym1 and $sym2.
+    proc compare {sym1 sym2} {
+	with_test_prefix "sym1=$sym1,sym2=$sym2" {
+	    # Done this way instead of comparing the symbols with "print $sym1
+	    # == sym2" in GDB directly so that the values of the symbols end
+	    # up visible in the logs, for debug purposes.
+	    set vsym1 [get_integer_valueof $sym1 -1]
+	    set vsym2 [get_integer_valueof $sym2 -1]
+	    gdb_assert {$vsym1 == $vsym2} "$sym1 == $sym2"
+	}
+    }
+
+    if $version_id_main {
+	compare "'print-file-var-main.c'::this_version_id" "vm"
+	compare "this_version_id" "vm"
+    }
 
-if { [gdb_compile_shlib ${srcdir}/${subdir}/${lib1}.c \
-                        ${libobj1} \
-                        ${lib_opts} ] != "" } {
-    return -1
-}
-if { [gdb_compile_shlib ${srcdir}/${subdir}/${lib2}.c \
-                        ${libobj2} \
-                        ${lib_opts} ] != "" } {
-    return -1
+    compare "'print-file-var-lib1.c'::this_version_id" "v1"
+    compare "'print-file-var-lib2.c'::this_version_id" "v2"
 }
-if { [gdb_compile "${srcdir}/${subdir}/${executable}.c" \
-                  [standard_output_file ${executable}] \
-                  executable \
-                  [list debug shlib=${libobj1} shlib=${libobj2}]]
-     != ""} {
-    return -1
-}
-
-clean_restart $executable
-gdb_load_shlib $libobj1
-gdb_load_shlib $libobj2
 
-if ![runto_main] {
-    untested "could not run to main"
-    return -1
+# Only test C++ if we are able.  Always use C.
+if { [skip_cplus_tests] || [get_compiler_info "c++"] } {
+    set lang_list {c}
+} else {
+    set lang_list {c c++}
 }
 
-# Try printing "this_version_num" qualified with the name of the file
-# where the variables are defined.  There are two global variables
-# with that name, and some systems such as GNU/Linux merge them
-# into one single entity, while some other systems such as Windows
-# keep them separate.  In the first situation, we have to verify
-# that GDB does not randomly select the wrong instance, even when
-# a specific filename is used to qualified the lookup.  And in the
-# second case, we have to verify that GDB does select the instance
-# defined in the given filename.
-#
-# To avoid adding target-specific code in this testcase, the program
-# sets two local variable named 'v1' and 'v2' with the value of
-# our global variables.  This allows us to compare the value that
-# GDB returns for each query against the actual value seen by
-# the program itself.
-
-# Get past the initialization of variables 'v1' and 'v2'.
-
-set bp_location \
-    [gdb_get_line_number "STOP" "${executable}.c"]
-gdb_test "break $executable.c:$bp_location" \
-         "Breakpoint \[0-9\]+ at 0x\[0-9a-fA-F\]+: .*" \
-         "breapoint past v1 & v2 initialization"
-
-gdb_test "continue" \
-         "Breakpoint \[0-9\]+, main \\(\\) at.*STOP.*" \
-         "continue to STOP marker"
-
-# Now check the value of this_version_id in both print-file-var-lib1.c
-# and print-file-var-lib2.c.
-
-gdb_test "print 'print-file-var-lib1.c'::this_version_id == v1" \
-         " = 1"
-
-gdb_test "print 'print-file-var-lib2.c'::this_version_id == v2" \
-         " = 1"
+foreach_with_prefix lang $lang_list {
+    foreach_with_prefix hidden {0 1} {
+	foreach_with_prefix dlopen {0 1} {
+	    foreach_with_prefix version_id_main {0 1} {
+		test $hidden $dlopen $version_id_main $lang
+	    }
+	}
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var.h ./gdb/testsuite/gdb.base/print-file-var.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-file-var.h	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,34 @@
+/* This testcase is part of GDB, the GNU debugger.
+   Copyright 2019 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/>.  */
+
+#ifndef PRINT_FILE_VAR_H
+#define PRINT_FILE_VAR_H
+
+#if HIDDEN
+# define ATTRIBUTE_VISIBILITY __attribute__((visibility ("hidden")))
+#else
+# define ATTRIBUTE_VISIBILITY
+#endif
+
+#ifdef __cplusplus
+# define START_EXTERN_C extern "C" {
+# define END_EXTERN_C }
+#else
+# define START_EXTERN_C
+# define END_EXTERN_C
+#endif
+
+#endif /* PRINT_FILE_VAR_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var-lib1.c ./gdb/testsuite/gdb.base/print-file-var-lib1.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var-lib1.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-file-var-lib1.c	2019-10-08 01:49:31.000000000 +0000
@@ -14,10 +14,19 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-int this_version_id = 104;
+#include <stdio.h>
+#include "print-file-var.h"
+
+ATTRIBUTE_VISIBILITY int this_version_id = 104;
+
+START_EXTERN_C
 
 int
 get_version_1 (void)
 {
+  printf ("get_version_1: &this_version_id=%p, this_version_id=%d\n", &this_version_id, this_version_id);
+
   return this_version_id;
 }
+
+END_EXTERN_C
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var-lib2.c ./gdb/testsuite/gdb.base/print-file-var-lib2.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var-lib2.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-file-var-lib2.c	2019-10-08 01:49:31.000000000 +0000
@@ -14,10 +14,18 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
-int this_version_id = 203;
+#include <stdio.h>
+#include "print-file-var.h"
+
+ATTRIBUTE_VISIBILITY int this_version_id = 203;
+
+START_EXTERN_C
 
 int
 get_version_2 (void)
 {
+  printf ("get_version_2: &this_version_id=%p, this_version_id=%d\n", &this_version_id, this_version_id);
   return this_version_id;
 }
+
+END_EXTERN_C
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var-main.c ./gdb/testsuite/gdb.base/print-file-var-main.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/print-file-var-main.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/print-file-var-main.c	2019-10-08 01:49:31.000000000 +0000
@@ -14,21 +14,49 @@
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#ifdef SHLIB_NAME
+# include <dlfcn.h>
+#endif
+
+#include <assert.h>
+#include <stddef.h>
+
+#include "print-file-var.h"
+
+START_EXTERN_C
+
 extern int get_version_1 (void);
 extern int get_version_2 (void);
 
+END_EXTERN_C
+
+#if VERSION_ID_MAIN
+ATTRIBUTE_VISIBILITY int this_version_id = 55;
+#endif
+
 int
 main (void)
 {
+#if VERSION_ID_MAIN
+  int vm = this_version_id;
+#endif
   int v1 = get_version_1 ();
-  int v2 = get_version_2 ();
+  int v2;
+
+#ifdef SHLIB_NAME
+  {
+    void *handle = dlopen (SHLIB_NAME, RTLD_LAZY);
+    int (*getver2) (void);
+
+    assert (handle != NULL);
 
-  if (v1 != 104)
-    return 1;
-  /* The value returned by get_version_2 depends on the target system.  */
-  if (v2 != 104 && v2 != 203)
-    return 2;
+    getver2 = (int (*)(void)) dlsym (handle, "get_version_2");
+
+    v2 = getver2 ();
+  }
+#else
+  v2 = get_version_2 ();
+#endif
 
   return 0; /* STOP */
 }
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/relational.exp ./gdb/testsuite/gdb.base/relational.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/relational.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/relational.exp	2019-10-08 01:49:31.000000000 +0000
@@ -46,147 +46,162 @@ if ![runto_main] then {
 # test expressions with "int" types
 #
 
-gdb_test_no_output "set variable x=14" "set variable x=14"
-gdb_test_no_output "set variable y=2" "set variable y=2"
-gdb_test_no_output "set variable z=2" "set variable z=2"
-gdb_test_no_output "set variable w=3" "set variable w=3"
+with_test_prefix "int types" {
 
-gdb_test "print x" " = 14" "print value of x"
+    gdb_test_no_output "set variable x=14" "set variable x=14"
+    gdb_test_no_output "set variable y=2" "set variable y=2"
+    gdb_test_no_output "set variable z=2" "set variable z=2"
+    gdb_test_no_output "set variable w=3" "set variable w=3"
 
-gdb_test "print y" " = 2" "print value of y"
+    gdb_test "print x" " = 14" "print value of x"
 
-gdb_test "print z" " = 2" "print value of z"
+    gdb_test "print y" " = 2" "print value of y"
 
-gdb_test "print w" " = 3" "print value of w"
+    gdb_test "print z" " = 2" "print value of z"
 
-gdb_test "print x < y" "$false" "print value of x<y"
+    gdb_test "print w" " = 3" "print value of w"
 
-gdb_test "print x <= y" "$false" "print value of x<=y"
+    gdb_test "print x < y" "$false" "print value of x<y"
 
-gdb_test "print x > y" "$true" "print value of x>y"
+    gdb_test "print x <= y" "$false" "print value of x<=y"
 
-gdb_test "print x >= y" "$true" "print value of x>=y"
+    gdb_test "print x > y" "$true" "print value of x>y"
 
-gdb_test "print x == y" "$false" "print value of x==y"
+    gdb_test "print x >= y" "$true" "print value of x>=y"
 
-gdb_test "print x != y" "$true" "print value of x!=y"
+    gdb_test "print x == y" "$false" "print value of x==y"
 
+    gdb_test "print x != y" "$true" "print value of x!=y"
+}
 
 # Test associativity of <, >, <=, >=, ==, !=
+with_test_prefix "basic associativity" {
 
-gdb_test_no_output "set variable x=3" "set variable x"
-gdb_test_no_output "set variable y=5" "set variable y"
-gdb_test_no_output "set variable z=2" "set variable z"
+    gdb_test_no_output "set variable x=3" "set variable x=3"
+    gdb_test_no_output "set variable y=5" "set variable y=5"
+    gdb_test_no_output "set variable z=2" "set variable z=2"
 
-gdb_test "print x < y < z" "$true" "print value of x<y<z"
+    gdb_test "print x < y < z" "$true" "print value of x<y<z"
 
-gdb_test "print x <= y <= z" "$true" "print value of x<=y<=z"
+    gdb_test "print x <= y <= z" "$true" "print value of x<=y<=z"
 
-gdb_test "print x > y > z" "$false" "print value of x>y>z"
+    gdb_test "print x > y > z" "$false" "print value of x>y>z"
 
-gdb_test "print x >= y >= z" "$false" "print value of x>=y>=z"
+    gdb_test "print x >= y >= z" "$false" "print value of x>=y>=z"
 
-gdb_test_no_output "set variable x=2" "set variable x"
-gdb_test_no_output "set variable y=2" "set variable y"
-gdb_test_no_output "set variable z=1" "set variable z"
+    gdb_test_no_output "set variable x=2" "set variable x=2"
+    gdb_test_no_output "set variable y=2" "set variable y=2"
+    gdb_test_no_output "set variable z=1" "set variable z=1"
 
-gdb_test "print x == y == z" "$true" "print value of x==y==z"
+    gdb_test "print x == y == z" "$true" "print value of x==y==z"
 
-gdb_test_no_output "set variable z=0" "set variable z"
+    gdb_test_no_output "set variable z=0" "set variable z"
 
-gdb_test "print x != y != z" "$false" "print value of x!=y!=z"
+    gdb_test "print x != y != z" "$false" "print value of x!=y!=z"
+}
 
-# test precedence rules on pairs of relational operators
+# Test precedence rules on pairs of relational operators.  The use of
+# with_test_prefix with keys 1, 2, 3, etc is only to ensure that the
+# test names are unique.  Each nested group of tests starts at a
+# location where we are setting a variable to a value it has had in
+# the past, which would result in a test name repeating.
+with_test_prefix "pair associativity" {
+    with_test_prefix "1" {
+	gdb_test_no_output "set variable x=0" "set variable x=0"
+	gdb_test_no_output "set variable y=2" "set variable y=2"
+	gdb_test_no_output "set variable z=2" "set variable z=2"
 
-gdb_test_no_output "set variable x=0" "set variable x"
-gdb_test_no_output "set variable y=2" "set variable y"
-gdb_test_no_output "set variable z=2" "set variable z"
+	gdb_test "print x < y == z" "$false" "print value of x<y==z"
 
-gdb_test "print x < y == z" "$false" "print value of x<y==z"
+	# 0  2  2
+	gdb_test "print x < y != z" "$true" "print value of x<y!=z"
 
-# 0  2  2
-gdb_test "print x < y != z" "$true" "print value of x<y!=z"
+	gdb_test_no_output "set variable x=2" "set variable x=2"
+	gdb_test_no_output "set variable y=3" "set variable y=3"
+	gdb_test_no_output "set variable z=1" "set variable z=1"
 
-gdb_test_no_output "set variable x=2" "set variable x"
-gdb_test_no_output "set variable y=3" "set variable y"
-gdb_test_no_output "set variable z=1" "set variable z"
+	# 2 3 1
+	gdb_test "print x < y <= z" "$true" "print value of x<y<=z"
 
+	# 2 3 1
+	gdb_test "print x < y >= z" "$true" "print value of x<y>=z"
 
-# 2 3 1
-gdb_test "print x < y <= z" "$true" "print value of x<y<=z"
+	gdb_test_no_output "set variable z=0" " set variable z=0"
 
-# 2 3 1
-gdb_test "print x < y >= z" "$true" "print value of x<y>=z"
+	# 2 3 0
+	gdb_test "print x < y > z" "$true" "print value of x<y>z"
 
-gdb_test_no_output "set variable z=0" " set variable z"
+	gdb_test_no_output "set variable x=1" " set variable x=1"
 
-# 2 3 0
-gdb_test "print x < y > z" "$true" "print value of x<y>z"
+	# 1 3 0
+	gdb_test "print x > y >= z" "$true" "print value of x>y>=z"
+    }
 
-gdb_test_no_output "set variable x=1" " set variable x"
+    with_test_prefix "2" {
+	gdb_test_no_output "set variable z=2" " set variable z=2"
 
-# 1 3 0
-gdb_test "print x > y >= z" "$true" "print value of x>y>=z"
+	# 1 3 2
+	gdb_test "print x > y == z" "$false" "print value of x>y==z"
 
-gdb_test_no_output "set variable z=2" " set variable z"
+	gdb_test_no_output "set variable x=2" " set variable x=2"
+	gdb_test_no_output "set variable z=0" " set variable z=0"
 
-# 1 3 2
-gdb_test "print x > y == z" "$false" "print value of x>y==z"
+	# 2 3 0
+	gdb_test "print x > y != z" "$false" "print value of x>y!=z"
 
-gdb_test_no_output "set variable x=2" " set variable x"
-gdb_test_no_output "set variable z=0" " set variable z"
+	gdb_test_no_output "set variable x=4" "set variable x=4"
 
-# 2 3 0
-gdb_test "print x > y != z" "$false" "print value of x>y!=z"
+	# 4 3 0
+	gdb_test "print x > y <= z" "$false" "print value of x>y<=z"
 
-gdb_test_no_output "set variable x=4" "set x to 4"
+	# 4 3 0
+	gdb_test "print x >= y == z" "$false" "print value of x>=y==z"
+    }
 
-# 4 3 0
-gdb_test "print x > y <= z" "$false" "print value of x>y<=z"
+    with_test_prefix "3" {
+	gdb_test_no_output "set variable x=2" " set variable x=2"
 
-# 4 3 0
-gdb_test "print x >= y == z" "$false" "print value of x>=y==z"
+	# 2 3 0
+	gdb_test "print x >= y != z" "$false" "print value of x>=y!=z"
 
-gdb_test_no_output "set variable x=2" " set variable x"
+	gdb_test_no_output "set variable x=0" " set variable x=0"
+	gdb_test_no_output "set variable z=4" " set variable z=4"
 
-# 2 3 0
-gdb_test "print x >= y != z" "$false" "print value of x>=y!=z"
+	# 0 3 4
+	gdb_test "print x >= y <= z" "$true" "print value of x>=y<=z"
 
-gdb_test_no_output "set variable x=0" " set variable x"
-gdb_test_no_output "set variable z=4" " set variable z"
+	# 0 3 4
+	gdb_test "print x <= y == z" "$false" "print value of x<=y==z"
+    }
 
-# 0 3 4 
-gdb_test "print x >= y <= z" "$true" "print value of x>=y<=z"
-
-# 0 3 4
-gdb_test "print x <= y == z" "$false" "print value of x<=y==z"
-
-gdb_test_no_output "set variable x=2" " set variable x"
-
-# 2 3 4
-gdb_test "print x <= y != z" "$true" "print value of x<=y!=z"
-
-# 2 3 4
-gdb_test "print x == y != z" "$true" "print value of x==y!=z"
+    with_test_prefix "4" {
+	gdb_test_no_output "set variable x=2" " set variable x=2"
 
+	# 2 3 4
+	gdb_test "print x <= y != z" "$true" "print value of x<=y!=z"
 
+	# 2 3 4
+	gdb_test "print x == y != z" "$true" "print value of x==y!=z"
+    }
+}
 
 # test use of parenthesis to enforce different order of evaluation
+with_test_prefix "with parenthesis" {
+    gdb_test_no_output "set variable z=0" " set variable z=0"
 
-gdb_test_no_output "set variable z=0" " set variable z"
-
-# 2 3 0
-gdb_test "print x >= (y < z)" "$true" "print value of x>=(y<z)"
+    # 2 3 0
+    gdb_test "print x >= (y < z)" "$true" "print value of x>=(y<z)"
 
-# 2 3 0
-gdb_test "print x >= (y != z)" "$true" "print value of x>=(y!=z)"
+    # 2 3 0
+    gdb_test "print x >= (y != z)" "$true" "print value of x>=(y!=z)"
 
-# 2 3 0
-gdb_test "print x == (y == z)" "$false" "print value of x==(y==z)" 
+    # 2 3 0
+    gdb_test "print x == (y == z)" "$false" "print value of x==(y==z)"
 
-gdb_test_no_output "set variable x=1" " set variable x"
-gdb_test_no_output "set variable z=4" " set variable z"
+    gdb_test_no_output "set variable x=1" " set variable x=1"
+    gdb_test_no_output "set variable z=4" " set variable z=4"
 
-# 1 3 4
-gdb_test "print (x == y) < z" "$true" "print value of (x==y)<z"
+    # 1 3 4
+    gdb_test "print (x == y) < z" "$true" "print value of (x==y)<z"
+}
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/step-over-syscall.exp ./gdb/testsuite/gdb.base/step-over-syscall.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/step-over-syscall.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/step-over-syscall.exp	2019-10-08 01:49:31.000000000 +0000
@@ -27,7 +27,7 @@ if { [istarget "i\[34567\]86-*-linux*"] 
     return -1
 }
 
-proc check_pc_after_cross_syscall { syscall syscall_insn_next_addr } {
+proc_with_prefix check_pc_after_cross_syscall { syscall syscall_insn_next_addr } {
     set syscall_insn_next_addr_found [get_hexadecimal_valueof "\$pc" "0"]
 
     set test "single step over $syscall final pc"
@@ -59,7 +59,8 @@ proc setup { syscall } {
     # Delete the breakpoint on main.
     gdb_test_no_output "delete break 1"
 
-    gdb_test_no_output "set displaced-stepping off"
+    gdb_test_no_output "set displaced-stepping off" \
+	"set displaced-stepping off during test setup"
 
     gdb_test "break $syscall" "Breakpoint \[0-9\]* at .*"
 
@@ -100,11 +101,13 @@ proc setup { syscall } {
 	return { -1, -1 }
     }
 
-    set syscall_insn_addr [get_hexadecimal_valueof "\$pc" "0"]
+    set syscall_insn_addr [get_hexadecimal_valueof "\$pc" "0" \
+			       "pc before stepi"]
     if {[gdb_test "stepi" "x/i .*=>.*" "stepi $syscall insn"] != 0} {
 	return { -1, -1 }
     }
-    return [list $syscall_insn_addr [get_hexadecimal_valueof "\$pc" "0"]]
+    return [list $syscall_insn_addr [get_hexadecimal_valueof "\$pc" \
+					 "0" "pc after stepi"]]
 }
 
 proc step_over_syscall { syscall } {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/structs.exp ./gdb/testsuite/gdb.base/structs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/structs.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/structs.exp	2019-10-08 01:49:31.000000000 +0000
@@ -82,10 +82,12 @@ proc start_structs_test { types } {
     gdb_load ${binfile}
 
     # Make certain that the output is consistent
-    gdb_test_no_output "set print sevenbit-strings"
-    gdb_test_no_output "set print address off"
-    gdb_test_no_output "set width 0"
-    gdb_test_no_output "set print elements 300"
+    with_test_prefix "types=$types" {
+	gdb_test_no_output "set print sevenbit-strings"
+	gdb_test_no_output "set print address off"
+	gdb_test_no_output "set width 0"
+	gdb_test_no_output "set print elements 300"
+    }
 
     # Advance to main
     if { ![runto_main] } then {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/style.exp ./gdb/testsuite/gdb.base/style.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.base/style.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.base/style.exp	2019-10-08 01:49:31.000000000 +0000
@@ -94,13 +94,13 @@ save_vars { env(TERM) } {
     gdb_test "" "${vers}.*" \
 	"version is styled"
 
-    set address_style_expr [style "\"address\" style" address]
+    set address_style_expr [style ".*\".*address.*\".*style.*" address]
     gdb_test "show style address foreground" \
 	"The ${address_style_expr} foreground color is: blue" \
 	"style name and style word styled using its own style in show style"
 
-    set aliases_expr [style "aliases" title]
-    set breakpoints_expr [style "breakpoints" title]
+    set aliases_expr [style ".*aliases.*" title]
+    set breakpoints_expr [style ".*breakpoints.*" title]
     gdb_test "help" \
 	[multi_line \
 	     "List of classes of commands:" \
@@ -111,8 +111,8 @@ save_vars { env(TERM) } {
 	    ] \
 	"help classes of commands styled with title"
 
-    set taas_expr  [style "taas" title]
-    set tfaas_expr  [style "tfaas" title]
+    set taas_expr  [style ".*taas.*" title]
+    set tfaas_expr  [style ".*tfaas.*" title]
     set cut_for_thre_expr [style "cut for 'thre" highlight]
     gdb_test "apropos -v cut for 'thre" \
 	[multi_line \
@@ -131,4 +131,13 @@ save_vars { env(TERM) } {
     gdb_test "file $binfile" \
 	"Reading symbols from [style $quoted file]..." \
 	"filename is styled when loading symbol file"
+
+    gdb_test "pwd" "Working directory [style .*? file].*"
+
+    gdb_test_no_output "set print repeat 3"
+    gdb_test "print {0,0,0,0,0,0,0,0}" \
+	" = \\{0 [style {<repeats.*8.*times>} metadata]\\}"
+
+    gdb_test "show logging file" \
+	"The current logfile is \"[style .*? file]\"\\..*"
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.cp/local-static.c ./gdb/testsuite/gdb.cp/local-static.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.cp/local-static.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/local-static.c	2019-10-08 01:49:31.000000000 +0000
@@ -145,7 +145,9 @@ free_inline_func (void)
 int
 main ()
 {
-  for (int i = 0; i < 1000; i++)
+  int i;
+
+  for (i = 0; i < 1000; i++)
     {
       free_func ();
       free_inline_func ();
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.fortran/nested-funcs-2.exp ./gdb/testsuite/gdb.fortran/nested-funcs-2.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.fortran/nested-funcs-2.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/nested-funcs-2.exp	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,150 @@
+# Copyright 2019 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/> .
+
+# Further testing of placing breakpoints in nested subroutines.
+
+if {[skip_fortran_tests]} { return -1 }
+load_lib "fortran.exp"
+
+standard_testfile ".f90"
+
+if {[prepare_for_testing ${testfile}.exp ${testfile} \
+	 ${srcfile} {debug f90}]} {
+    return -1
+}
+
+set int4 [fortran_int4]
+
+# When WITH_SRC_PREFIX_P is true then some symbol references will be
+# prefixed with the filename.  When WITH_NEST_PREFIX_P is true then
+# nested subroutine symbols will be prefixed with their parent
+# subroutine scope.
+proc do_bp_tests {with_src_prefix_p with_nest_prefix_p} {
+    global testfile srcfile
+    global int4
+    global hex
+
+    clean_restart ${testfile}
+
+    if { $with_src_prefix_p } {
+	set src_prefix "${srcfile}:"
+    } else {
+	set src_prefix ""
+    }
+
+    if { $with_nest_prefix_p } {
+	set nest_prefix "contains_keyword::"
+    } else {
+	set nest_prefix ""
+    }
+
+    # Test setting up breakpoints and otherwise examining nested
+    # functions before the program starts.
+    with_test_prefix "before start" {
+	foreach entry \
+	    [list \
+		 [list "increment" "${int4} \\\(${int4}\\\)"] \
+		 [list "increment_program_global" "${int4} \\\(void\\\)"] \
+		 [list "hidden_variable" "void \\\(void\\\)"]] {
+		     set function [lindex $entry 0]
+		     set type [lindex $entry 1]
+
+		     # Currently referencing symbols using 'info',
+		     # 'whatis' and 'ptype' before the program is
+		     # started doesn't work.  This is the same
+		     # behaviour we see in C++ so I don't think this
+		     # is a failure, just a limitation in current GDB.
+		     if { ${with_nest_prefix_p} } {
+			 gdb_test "info symbol ${nest_prefix}${function}" \
+			     "${function} in section .*"
+			 gdb_test "whatis ${nest_prefix}${function}" \
+			     "type = ${type}"
+			 gdb_test "ptype ${nest_prefix}${function}" \
+			     "type = ${type}"
+			 gdb_test "print ${nest_prefix}${function}" \
+			     "{${type}} $hex <contains_keyword::${function}>"
+		     }
+
+		     gdb_breakpoint "${src_prefix}${nest_prefix}${function}"
+		 }
+    }
+
+    # Break on a contained function and run to it.
+    if {![runto ${src_prefix}[gdb_get_line_number "pre_init"]]} then {
+	perror "couldn't run to breakpoint pre_init"
+	continue
+    }
+
+    # Call a contained function.
+    if { ${with_nest_prefix_p} } {
+	gdb_test "call ${nest_prefix}subroutine_to_call()" " called"
+    }
+
+    # Break on another contained function and run to it.
+    gdb_breakpoint "${src_prefix}${nest_prefix}increment"
+    gdb_continue_to_breakpoint "increment" ".*increment = i \\\+ 1"
+    gdb_breakpoint ${src_prefix}[gdb_get_line_number "post_increment"]
+    gdb_continue_to_breakpoint "post_increment"
+
+    # Check arguments and locals report the correct values. 12 is
+    # passed in and 13 is the result after adding 1.
+    gdb_test "info args" "i = 12"
+    gdb_test "info locals" " = 13"
+
+    # Check we can see variables from an outer program scope.
+    gdb_breakpoint ${src_prefix}[gdb_get_line_number "post_increment_global"]
+    gdb_continue_to_breakpoint "post_increment_global" \
+	".*print \\\*, program_i ! post_increment_global"
+    gdb_test "info args" "No arguments." \
+	"no argument subroutine has no arguments"
+    gdb_test "p program_i" " = 7" "printing outer scoped variable"
+
+    # Stepping into a contained subroutine.
+    gdb_breakpoint ${src_prefix}[gdb_get_line_number "pre_step"]
+    gdb_continue_to_breakpoint "pre_step" ".*call step\\\(\\\) ! pre_step"
+    gdb_test "step" \
+	".*print '\\\(A\\\)', \\\"step\\\" ! post_step" \
+	"step into the correct place"
+
+    # Local hides program global.
+    gdb_breakpoint ${src_prefix}[gdb_get_line_number "post_hidden"]
+    gdb_continue_to_breakpoint "post_hidden" \
+	".*print \\\*, program_i ! post_hidden"
+    gdb_test "p program_i" " = 30" "printing hidden global"
+
+    # Check info symbol, whatis and ptype can find information on
+    # these nested functions.
+    foreach entry \
+	[list \
+	     [list "increment" "${int4} \\\(${int4}\\\)"] \
+	     [list "increment_program_global" "${int4} \\\(void\\\)"]] {
+		 set function [lindex $entry 0]
+		 set type [lindex $entry 1]
+		 with_test_prefix $function {
+		     gdb_test "info symbol ${nest_prefix}$function" \
+			 "$function in section .*"
+		     gdb_test "whatis ${nest_prefix}$function" \
+			 "type = ${type}"
+		     gdb_test "ptype ${nest_prefix}$function" \
+			 "type = ${type}"
+		 }
+	     }
+}
+
+foreach_with_prefix src_prefix { 0 1 } {
+    foreach_with_prefix nest_prefix { 0 1 } {
+	do_bp_tests ${src_prefix} ${nest_prefix}
+    }
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.fortran/nested-funcs-2.f90 ./gdb/testsuite/gdb.fortran/nested-funcs-2.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.fortran/nested-funcs-2.f90	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/nested-funcs-2.f90	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,62 @@
+! Copyright 2019 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/> .
+
+module container
+    implicit none
+    integer :: a
+    contains
+    subroutine print_from_module()
+       print *, "hello."
+    end subroutine
+end module
+
+program contains_keyword
+    use container
+    implicit none
+    integer :: program_i, program_j
+    program_j = 12 ! pre_init
+    program_i = 7
+    program_j = increment(program_j) ! pre_increment
+    program_i = increment_program_global() ! pre_increment_program_global
+    call subroutine_to_call()
+    call step() ! pre_step
+    call hidden_variable()
+    call print_from_module()
+    print '(I2)', program_j, program_i ! post_init
+
+contains
+    subroutine subroutine_to_call()
+       print *, "called"
+    end subroutine
+    integer function increment(i)
+       integer :: i
+       increment = i + 1
+       print *, i ! post_increment
+    end function
+    integer function increment_program_global()
+       increment_program_global = program_i + 1
+       ! Need to put in a dummy print here to break on as on some systems the
+       ! variables leave scope at "end function", but on others they do not.
+       print *, program_i ! post_increment_global
+    end function
+    subroutine step()
+       print '(A)', "step" ! post_step
+    end subroutine
+    subroutine hidden_variable()
+       integer :: program_i
+       program_i = 30
+       print *, program_i ! post_hidden
+    end subroutine
+end program contains_keyword
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.fortran/nested-funcs.exp ./gdb/testsuite/gdb.fortran/nested-funcs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.fortran/nested-funcs.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/nested-funcs.exp	2019-10-08 01:49:31.000000000 +0000
@@ -30,6 +30,11 @@ if ![runto MAIN__] then {
     continue
 }
 
+# Test if we can set a breakpoint in a nested function
+gdb_breakpoint "testnestedfuncs::sub_nested_outer"
+gdb_continue_to_breakpoint "testnestedfuncs::sub_nested_outer" \
+    ".*local_int = 19"
+
 # Test if we can access local and
 # non-local variables defined one level up.
 gdb_breakpoint [gdb_get_line_number "! BP_outer"]
@@ -43,6 +48,11 @@ gdb_test "print local_int" "= 19" "print
 gdb_test "up"
 gdb_test "print index" "= 42" "print index at BP1, one frame up"
 
+# Test if we can set a breakpoint in a nested function
+gdb_breakpoint "testnestedfuncs::sub_nested_inner"
+gdb_continue_to_breakpoint "testnestedfuncs::sub_nested_inner" \
+    ".*local_int = 17"
+
 # Test if we can access local and
 # non-local variables defined two level up.
 gdb_breakpoint [gdb_get_line_number "! BP_inner"]
@@ -57,6 +67,24 @@ gdb_continue_to_breakpoint "! BP_outer_2
 gdb_test "print local_int" "= 19" \
   "print local_int in outer function, after sub_nested_inner"
 
+# Test if we can set a breakpoint in public routine with the same name
+# as the internal
+gdb_breakpoint "sub_nested_outer"
+gdb_continue_to_breakpoint "sub_nested_outer" \
+    ".*name = 'sub_nested_outer external'"
+
+# Test if we can set a breakpoint in public routine with the same name
+# as the internal
+gdb_breakpoint "sub_with_sub_nested_outer::sub_nested_outer"
+gdb_continue_to_breakpoint \
+    "sub_with_sub_nested_outer::sub_nested_outer" ".*local_int = 11"
+
+# Test if we can set a breakpoint in public routine with the same name
+# as the internal
+gdb_breakpoint "mod1::sub_nested_outer"
+gdb_continue_to_breakpoint "mod1::sub_nested_outer" \
+    ".*name = 'sub_nested_outer_mod1'"
+
 # Sanity check in main.
 gdb_breakpoint [gdb_get_line_number "! BP_main"]
 gdb_continue_to_breakpoint "! BP_main" ".*! BP_main"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.fortran/nested-funcs.f90 ./gdb/testsuite/gdb.fortran/nested-funcs.f90
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.fortran/nested-funcs.f90	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.fortran/nested-funcs.f90	2019-10-08 01:49:31.000000000 +0000
@@ -13,8 +13,62 @@
 ! You should have received a copy of the GNU General Public License
 ! along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-program TestNestedFuncs
+module mod1
+  integer :: var_i = 1
+  integer :: var_const
+  parameter (var_const = 20)
+
+CONTAINS
+
+  SUBROUTINE sub_nested_outer
+    integer :: local_int
+    character (len=20) :: name
+
+    name = 'sub_nested_outer_mod1'
+    local_int = 11
+
+  END SUBROUTINE sub_nested_outer
+end module mod1
+
+! Public sub_nested_outer
+SUBROUTINE sub_nested_outer
+  integer :: local_int
+  character (len=16) :: name
+
+  name = 'sub_nested_outer external'
+  local_int = 11
+END SUBROUTINE sub_nested_outer
+
+! Needed indirection to call public sub_nested_outer from main
+SUBROUTINE sub_nested_outer_ind
+  character (len=20) :: name
+
+  name = 'sub_nested_outer_ind'
+  CALL sub_nested_outer
+END SUBROUTINE sub_nested_outer_ind
 
+! public routine with internal subroutine
+SUBROUTINE sub_with_sub_nested_outer()
+  integer :: local_int
+  character (len=16) :: name
+
+  name = 'subroutine_with_int_sub'
+  local_int = 1
+
+  CALL sub_nested_outer  ! Should call the internal fct
+
+CONTAINS
+
+  SUBROUTINE sub_nested_outer
+    integer :: local_int
+    local_int = 11
+  END SUBROUTINE sub_nested_outer
+
+END SUBROUTINE sub_with_sub_nested_outer
+
+! Main
+program TestNestedFuncs
+  USE mod1, sub_nested_outer_use_mod1 => sub_nested_outer
   IMPLICIT NONE
 
   TYPE :: t_State
@@ -22,10 +76,13 @@ program TestNestedFuncs
   END TYPE t_State
 
   TYPE (t_State) :: v_state
-  integer index
+  integer index, local_int
 
   index = 13
-  CALL sub_nested_outer
+  CALL sub_nested_outer            ! Call internal sub_nested_outer
+  CALL sub_nested_outer_ind        ! Call external sub_nested_outer via sub_nested_outer_ind
+  CALL sub_with_sub_nested_outer   ! Call external routine with nested sub_nested_outer
+  CALL sub_nested_outer_use_mod1   ! Call sub_nested_outer imported via module
   index = 11              ! BP_main
   v_state%code = 27
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.linespec/explicit.exp ./gdb/testsuite/gdb.linespec/explicit.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.linespec/explicit.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/explicit.exp	2019-10-08 01:49:31.000000000 +0000
@@ -104,8 +104,10 @@ namespace eval $testfile {
 
 	# Test abbreviations
 	set short [string range $arg 0 3]
-	gdb_test "break -$short" \
-	    [string_to_regexp "missing argument for \"-$short\""]
+	if { $arg != $short } {
+	    gdb_test "break -$short" \
+		[string_to_regexp "missing argument for \"-$short\""]
+	}
     }
 
     # Test invalid 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.3.50.20191001/gdb/testsuite/gdb.linespec/ls-errs.exp ./gdb/testsuite/gdb.linespec/ls-errs.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.linespec/ls-errs.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.linespec/ls-errs.exp	2019-10-08 01:49:31.000000000 +0000
@@ -92,7 +92,8 @@ proc do_test {lang} {
 
 	gdb_test "break $linespec" [string_to_regexp \
 				    [eval format \$error_messages($msg_id) \
-				     $args]]
+				     $args]] \
+	    "'break $linespec'"
     }
 
     # Some commonly used whitespace tests around ':'.
@@ -234,7 +235,7 @@ proc do_test {lang} {
 	test_break "main:here${x}" unexpected "end of input"
     }
 
-    foreach x {"3" "+100" "-100" "foo"} {
+    foreach_with_prefix x {"3" "+100" "-100" "foo"} {
 	test_break "main 3" invalid_function "main 3"
 	test_break "-function \"main $x\"" invalid_function "main $x"
 	if {$x == "foo"} {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-format-string.c ./gdb/testsuite/gdb.python/py-format-string.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-format-string.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-format-string.c	2019-10-08 01:49:31.000000000 +0000
@@ -15,6 +15,8 @@
    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 <string.h>
+
 typedef struct point
 {
   int x;
@@ -84,7 +86,9 @@ main ()
   struct point another_point = { 123, 456 };
 
   struct_union_t a_struct_with_union;
-  a_struct_with_union.the_union.an_int = 42;
+  /* Fill the union in an endianness-independent way.  */
+  memset (&a_struct_with_union.the_union, 42,
+	  sizeof (a_struct_with_union.the_union));
 
   enum_t an_enum = ENUM_BAR;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-format-string.exp ./gdb/testsuite/gdb.python/py-format-string.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-format-string.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-format-string.exp	2019-10-08 01:49:31.000000000 +0000
@@ -124,7 +124,7 @@ set default_regexp_dict [dict create \
   "a_point_t_pointer"		$default_pointer_regexp \
   "a_point_t_ref"		"Pretty Point \\(42, 12\\)" \
   "another_point"		"Pretty Point \\(123, 456\\)" \
-  "a_struct_with_union"		"\\{the_union = \\{an_int = 42, a_char = 42 '\\*'\\}\\}" \
+  "a_struct_with_union"		"\\{the_union = \\{an_int = 707406378, a_char = 42 '\\*'\\}\\}" \
   "an_enum"			"ENUM_BAR" \
   "a_string"			"${default_pointer_regexp} \"hello world\"" \
   "a_binary_string"		"${default_pointer_regexp} \"hello\"" \
@@ -333,7 +333,7 @@ proc test_pretty_structs {} {
   global current_lang
 
   set a_struct_with_union_pretty \
-    "\\{\[\r\n\]+  the_union = \\{\[\r\n\]+    an_int = 42,\[\r\n\]+    a_char = 42 '\\*'\[\r\n\]+  \\}\[\r\n\]+\\}"
+    "\\{\[\r\n\]+  the_union = \\{\[\r\n\]+    an_int = 707406378,\[\r\n\]+    a_char = 42 '\\*'\[\r\n\]+  \\}\[\r\n\]+\\}"
 
   check_var_with_bool_opt "pretty_structs" "a_point_t"
   check_var_with_bool_opt "pretty_structs" "a_point_t_pointer"
@@ -814,7 +814,7 @@ proc test_format {} {
     check_format_string "a_point_t_pointer" $opts
     check_format_string "another_point" $opts
     check_format_string "a_struct_with_union" $opts \
-      "\\{the_union = \\{an_int = 0x2a, a_char = 0x2a\\}\\}"
+      "\\{the_union = \\{an_int = 0x2a2a2a2a, a_char = 0x2a\\}\\}"
     check_format_string "an_enum" $opts \
       "0x1"
     check_format_string "a_string" $opts \
@@ -851,7 +851,7 @@ proc test_format {} {
       $decimal_pointer_regexp
     check_format_string "another_point" $opts
     check_format_string "a_struct_with_union" $opts \
-      "\\{the_union = \\{an_int = 42, a_char = 42\\}\\}"
+      "\\{the_union = \\{an_int = 707406378, a_char = 42\\}\\}"
     check_format_string "an_enum" $opts \
       "1"
     check_format_string "a_string" $opts \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-parameter.exp ./gdb/testsuite/gdb.python/py-parameter.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-parameter.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-parameter.exp	2019-10-08 01:49:31.000000000 +0000
@@ -38,147 +38,204 @@ if { [is_remote host] } {
 gdb_test "python print (gdb.parameter ('directories'))" $directories
 
 # Test a simple boolean parameter.
-gdb_py_test_multiple "Simple gdb booleanparameter" \
-   "python" "" \
-   "class TestParam (gdb.Parameter):" "" \
-   "   \"\"\"When enabled, test param does something useful. When disabled, does nothing.\"\"\"" "" \
-   "   show_doc = \"Show the state of the boolean test-param\"" ""\
-   "   set_doc = \"Set the state of the boolean test-param\"" "" \
-   "   def get_show_string (self, pvalue):" ""\
-   "      return \"The state of the Test Parameter is \" + pvalue" ""\
-   "   def get_set_string (self):" ""\
-   "      val = \"on\"" ""\
-   "      if (self.value == False):" ""\
-   "         val = \"off\"" ""\
-   "      return \"Test Parameter has been set to \" + val" ""\
-   "   def __init__ (self, name):" "" \
-   "      super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
-   "      self.value = True" "" \
-   "test_param = TestParam ('print test-param')" ""\
-   "end"
-
-gdb_test "python print (test_param.value)" "True" "test parameter value"
-gdb_test "show print test-param" "The state of the Test Parameter is on.*" "show parameter on"
-gdb_test "set print test-param off" "Test Parameter has been set to off" "turn off parameter"
-gdb_test "show print test-param" "The state of the Test Parameter is off.*" "show parameter off"
-gdb_test "python print (test_param.value)" "False" "test parameter value"
-gdb_test "help show print test-param" "Show the state of the boolean test-param.*" "test show help"
-gdb_test "help set print test-param" "Set the state of the boolean test-param.*" "test set help"
-gdb_test "help set print" "set print test-param -- Set the state of the boolean test-param.*" "test general help"
+with_test_prefix "boolean parameter" {
+    gdb_py_test_multiple "Simple gdb booleanparameter" \
+	"python" "" \
+	"class TestParam (gdb.Parameter):" "" \
+	"   \"\"\"When enabled, test param does something useful. When disabled, does nothing.\"\"\"" "" \
+	"   show_doc = \"Show the state of the boolean test-param\"" ""\
+	"   set_doc = \"Set the state of the boolean test-param\"" "" \
+	"   def get_show_string (self, pvalue):" ""\
+	"      return \"The state of the Test Parameter is \" + pvalue" ""\
+	"   def get_set_string (self):" ""\
+	"      val = \"on\"" ""\
+	"      if (self.value == False):" ""\
+	"         val = \"off\"" ""\
+	"      return \"Test Parameter has been set to \" + val" ""\
+	"   def __init__ (self, name):" "" \
+	"      super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
+	"      self.value = True" "" \
+	"test_param = TestParam ('print test-param')" ""\
+	"end"
 
+    gdb_test "python print (test_param.value)" "True" \
+	"test boolean parameter value is True"
+    gdb_test "show print test-param" \
+	"The state of the Test Parameter is on.*" "show parameter on"
+    gdb_test "set print test-param off" \
+	"Test Parameter has been set to off" "turn off parameter"
+    gdb_test "show print test-param" \
+	"The state of the Test Parameter is off.*" "show parameter off"
+    gdb_test "python print (test_param.value)" "False" \
+	"test boolean parameter value is False"
+    gdb_test "help show print test-param" \
+	"Show the state of the boolean test-param.*" "test show help"
+    gdb_test "help set print test-param" \
+	"Set the state of the boolean test-param.*" "test set help"
+    gdb_test "help set print" \
+	"set print test-param -- Set the state of the boolean test-param.*" \
+	"test general help"
+}
 
 # Test an enum parameter.
-gdb_py_test_multiple "enum gdb parameter" \
-   "python" "" \
-   "class TestEnumParam (gdb.Parameter):" "" \
-   "   \"\"\"When set, test param does something useful. When disabled, does nothing.\"\"\"" "" \
-   "   show_doc = \"Show the state of the enum\"" ""\
-   "   set_doc = \"Set the state of the enum\"" "" \
-   "   def get_show_string (self, pvalue):" ""\
-   "      return \"The state of the enum is \" + pvalue" ""\
-   "   def get_set_string (self):" ""\
-   "      return \"The state of the enum has been set to \" + self.value" ""\
-   "   def __init__ (self, name):" "" \
-   "      super (TestEnumParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_ENUM, \[\"one\", \"two\"\])" "" \
-   "      self.value = \"one\"" "" \
-   "test_enum_param = TestEnumParam ('print test-enum-param')" ""\
-   "end"
-
-gdb_test "python print (test_enum_param.value)" "one" "test enum parameter value"
-gdb_test "show print test-enum-param" "The state of the enum is one.*" "show parameter is initial value"
-gdb_test "set print test-enum-param two" "The state of the enum has been set to two" "set enum to two"
-gdb_test "show print test-enum-param" "The state of the enum is two.*" "show parameter is new value"
-gdb_test "python print (test_enum_param.value)" "two" "test enum parameter value"
-gdb_test "set print test-enum-param three" "Undefined item: \"three\".*" "set invalid enum parameter"
+with_test_prefix "enum parameter" {
+    gdb_py_test_multiple "enum gdb parameter" \
+	"python" "" \
+	"class TestEnumParam (gdb.Parameter):" "" \
+	"   \"\"\"When set, test param does something useful. When disabled, does nothing.\"\"\"" "" \
+	"   show_doc = \"Show the state of the enum\"" ""\
+	"   set_doc = \"Set the state of the enum\"" "" \
+	"   def get_show_string (self, pvalue):" ""\
+	"      return \"The state of the enum is \" + pvalue" ""\
+	"   def get_set_string (self):" ""\
+	"      return \"The state of the enum has been set to \" + self.value" ""\
+	"   def __init__ (self, name):" "" \
+	"      super (TestEnumParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_ENUM, \[\"one\", \"two\"\])" "" \
+	"      self.value = \"one\"" "" \
+	"test_enum_param = TestEnumParam ('print test-enum-param')" ""\
+	"end"
+
+    gdb_test "python print (test_enum_param.value)" "one" \
+	"test enum parameter value is one"
+    gdb_test "show print test-enum-param" \
+	"The state of the enum is one.*" \
+	"show parameter is initial value"
+    gdb_test "set print test-enum-param two" \
+	"The state of the enum has been set to two" "set enum to two"
+    gdb_test "show print test-enum-param" \
+	"The state of the enum is two.*" "show parameter is new value"
+    gdb_test "python print (test_enum_param.value)" "two" \
+	"test enum parameter value is two"
+    gdb_test "set print test-enum-param three" \
+	"Undefined item: \"three\".*" "set invalid enum parameter"
+}
 
 # Test a file parameter.
-gdb_py_test_multiple "file gdb parameter" \
-   "python" "" \
-   "class TestFileParam (gdb.Parameter):" "" \
-   "   \"\"\"When set, test param does something useful. When disabled, does nothing.\"\"\"" "" \
-   "   show_doc = \"Show the name of the file\"" ""\
-   "   set_doc = \"Set the name of the file\"" "" \
-   "   def get_show_string (self, pvalue):" ""\
-   "      return \"The name of the file is \" + pvalue" ""\
-   "   def get_set_string (self):" ""\
-   "      return \"The name of the file has been changed to \" + self.value" ""\
-   "   def __init__ (self, name):" "" \
-   "      super (TestFileParam, self).__init__ (name, gdb.COMMAND_FILES, gdb.PARAM_FILENAME)" "" \
-   "      self.value = \"foo.txt\"" "" \
-   "test_file_param = TestFileParam ('test-file-param')" ""\
-   "end"
-
-gdb_test "python print (test_file_param.value)" "foo.txt" "test file parameter value"
-gdb_test "show test-file-param" "The name of the file is foo.txt.*" "show initial file value"
-gdb_test "set test-file-param bar.txt" "The name of the file has been changed to bar.txt" "set new file parameter" 1
-gdb_test "show test-file-param" "The name of the file is bar.txt.*" "show new file value"
-gdb_test "python print (test_file_param.value)" "bar.txt" "test new file parameter value"
-gdb_test "set test-file-param" "Argument required.*" 
+with_test_prefix "file parameter" {
+    gdb_py_test_multiple "file gdb parameter" \
+	"python" "" \
+	"class TestFileParam (gdb.Parameter):" "" \
+	"   \"\"\"When set, test param does something useful. When disabled, does nothing.\"\"\"" "" \
+	"   show_doc = \"Show the name of the file\"" ""\
+	"   set_doc = \"Set the name of the file\"" "" \
+	"   def get_show_string (self, pvalue):" ""\
+	"      return \"The name of the file is \" + pvalue" ""\
+	"   def get_set_string (self):" ""\
+	"      return \"The name of the file has been changed to \" + self.value" ""\
+	"   def __init__ (self, name):" "" \
+	"      super (TestFileParam, self).__init__ (name, gdb.COMMAND_FILES, gdb.PARAM_FILENAME)" "" \
+	"      self.value = \"foo.txt\"" "" \
+	"test_file_param = TestFileParam ('test-file-param')" ""\
+	"end"
+
+    gdb_test "python print (test_file_param.value)" "foo.txt" \
+	"test file parameter value"
+    gdb_test "show test-file-param" \
+	"The name of the file is foo.txt.*" "show initial file value"
+    gdb_test "set test-file-param bar.txt" \
+	"The name of the file has been changed to bar.txt" \
+	"set new file parameter" 1
+    gdb_test "show test-file-param" \
+	"The name of the file is bar.txt.*" "show new file value"
+    gdb_test "python print (test_file_param.value)" \
+	"bar.txt" "test new file parameter value"
+    gdb_test "set test-file-param" "Argument required.*"
+}
 
 # Test a parameter that is not documented.
-gdb_py_test_multiple "Simple gdb booleanparameter" \
-   "python" "" \
-   "class TestUndocParam (gdb.Parameter):" "" \
-   "   def get_show_string (self, pvalue):" ""\
-   "      return \"The state of the Test Parameter is \" + pvalue" ""\
-   "   def get_set_string (self):" ""\
-   "      val = \"on\"" ""\
-   "      if (self.value == False):" ""\
-   "         val = \"off\"" ""\
-   "      return \"Test Parameter has been set to \" + val" ""\
-   "   def __init__ (self, name):" "" \
-   "      super (TestUndocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
-   "      self.value = True" "" \
-   "test_undoc_param = TestUndocParam ('print test-undoc-param')" ""\
-   "end"
-
-gdb_test "show print test-undoc-param" "The state of the Test Parameter is on.*" "show parameter on"
-gdb_test "set print test-undoc-param off" "Test Parameter has been set to off" "turn off parameter"
-gdb_test "show print test-undoc-param" "The state of the Test Parameter is off.*" "show parameter off"
-gdb_test "python print (test_undoc_param.value)" "False" "test parameter value"
-gdb_test "help show print test-undoc-param" "This command is not documented.*" "test show help"
-gdb_test "help set print test-undoc-param" "This command is not documented.*" "test set help"
-gdb_test "help set print" "set print test-undoc-param -- This command is not documented.*" "test general help"
+with_test_prefix "undocumented parameter" {
+    gdb_py_test_multiple "Simple gdb booleanparameter" \
+	"python" "" \
+	"class TestUndocParam (gdb.Parameter):" "" \
+	"   def get_show_string (self, pvalue):" ""\
+	"      return \"The state of the Test Parameter is \" + pvalue" ""\
+	"   def get_set_string (self):" ""\
+	"      val = \"on\"" ""\
+	"      if (self.value == False):" ""\
+	"         val = \"off\"" ""\
+	"      return \"Test Parameter has been set to \" + val" ""\
+	"   def __init__ (self, name):" "" \
+	"      super (TestUndocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
+	"      self.value = True" "" \
+	"test_undoc_param = TestUndocParam ('print test-undoc-param')" ""\
+	"end"
+
+    gdb_test "show print test-undoc-param" \
+	"The state of the Test Parameter is on.*" "show parameter on"
+    gdb_test "set print test-undoc-param off" \
+	"Test Parameter has been set to off" "turn off parameter"
+    gdb_test "show print test-undoc-param" \
+	"The state of the Test Parameter is off.*" "show parameter off"
+    gdb_test "python print (test_undoc_param.value)" \
+	"False" "test undocumented parameter value is False"
+    gdb_test "help show print test-undoc-param" \
+	"This command is not documented.*" "test show help"
+    gdb_test "help set print test-undoc-param" \
+	"This command is not documented.*" "test set help"
+    gdb_test "help set print" \
+	"set print test-undoc-param -- This command is not documented.*" \
+	"test general help"
+}
 
 # Test a parameter that is not documented in any way..
-gdb_py_test_multiple "Simple gdb booleanparameter" \
-   "python" "" \
-   "class TestNodocParam (gdb.Parameter):" "" \
-   "   def __init__ (self, name):" "" \
-   "      super (TestNodocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
-   "      self.value = True" "" \
-   "test_nodoc_param = TestNodocParam ('print test-nodoc-param')" ""\
-   "end"
-
-gdb_test "show print test-nodoc-param" "This command is not documented.*" "show parameter on"
-gdb_test_no_output "set print test-nodoc-param off" "turn off parameter"
-gdb_test "show print test-nodoc-param" "This command is not documented.*.*" "show parameter off"
-gdb_test "python print (test_nodoc_param.value)" "False" "test parameter value"
-gdb_test "help show print test-nodoc-param" "This command is not documented.*" "test show help"
-gdb_test "help set print test-nodoc-param" "This command is not documented.*" "test set help"
-gdb_test "help set print" "set print test-nodoc-param -- This command is not documented.*" "test general help"
+with_test_prefix "really undocumented parameter" {
+    gdb_py_test_multiple "Simple gdb booleanparameter" \
+	"python" "" \
+	"class TestNodocParam (gdb.Parameter):" "" \
+	"   def __init__ (self, name):" "" \
+	"      super (TestNodocParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
+	"      self.value = True" "" \
+	"test_nodoc_param = TestNodocParam ('print test-nodoc-param')" ""\
+	"end"
+
+    gdb_test "show print test-nodoc-param" \
+	"This command is not documented.*" "show parameter on"
+    gdb_test_no_output "set print test-nodoc-param off" \
+	"turn off parameter"
+    gdb_test "show print test-nodoc-param" \
+	"This command is not documented.*.*" "show parameter off"
+    gdb_test "python print (test_nodoc_param.value)" \
+	"False" "test really undocumented parameter value is False"
+    gdb_test "help show print test-nodoc-param" \
+	"This command is not documented.*" "test show help"
+    gdb_test "help set print test-nodoc-param" \
+	"This command is not documented.*" "test set help"
+    gdb_test "help set print" \
+	"set print test-nodoc-param -- This command is not documented.*" \
+	"test general help"
+}
 
 # Test deprecated API. Do not use in your own implementations.
-gdb_py_test_multiple "Simple gdb booleanparameter" \
-   "python" "" \
-   "class TestParam (gdb.Parameter):" "" \
-   "   \"\"\"When enabled, test param does something useful. When disabled, does nothing.\"\"\"" "" \
-   "   show_doc = \"State of the Test Parameter\"" ""\
-   "   set_doc = \"Set the state of the Test Parameter\"" "" \
-   "   def __init__ (self, name):" "" \
-   "      super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
-   "      self.value = True" "" \
-   "test_param = TestParam ('print test-param')" ""\
-   "end"
-
-gdb_test "python print (test_param.value)" "True" "test parameter value"
-gdb_test "show print test-param" "State of the Test Parameter on.*" "show parameter on"
-gdb_test_no_output "set print test-param off" "turn off parameter"
-gdb_test "show print test-param" "State of the Test Parameter off.*" "show parameter off"
-gdb_test "python print (test_param.value)" "False" "test parameter value"
-gdb_test "help show print test-param" "State of the Test Parameter.*" "test show help"
-gdb_test "help set print test-param" "Set the state of the Test Parameter.*" "test set help"
-gdb_test "help set print" "set print test-param -- Set the state of the Test Parameter.*" "test general help"
+with_test_prefix "deprecated API parameter" {
+    gdb_py_test_multiple "Simple gdb booleanparameter" \
+	"python" "" \
+	"class TestParam (gdb.Parameter):" "" \
+	"   \"\"\"When enabled, test param does something useful. When disabled, does nothing.\"\"\"" "" \
+	"   show_doc = \"State of the Test Parameter\"" ""\
+	"   set_doc = \"Set the state of the Test Parameter\"" "" \
+	"   def __init__ (self, name):" "" \
+	"      super (TestParam, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)" "" \
+	"      self.value = True" "" \
+	"test_param = TestParam ('print test-param')" ""\
+	"end"
+
+    gdb_test "python print (test_param.value)" "True" \
+	"test deprecated API parameter value is True"
+    gdb_test "show print test-param" \
+	"State of the Test Parameter on.*" "show parameter on"
+    gdb_test_no_output "set print test-param off" "turn off parameter"
+    gdb_test "show print test-param" \
+	"State of the Test Parameter off.*" "show parameter off"
+    gdb_test "python print (test_param.value)" "False" \
+	"test deprecated API parameter value is False"
+    gdb_test "help show print test-param" \
+	"State of the Test Parameter.*" "test show help"
+    gdb_test "help set print test-param" \
+	"Set the state of the Test Parameter.*" "test set help"
+    gdb_test "help set print" \
+	"set print test-param -- Set the state of the Test Parameter.*" \
+	"test general help"
+}
 
 foreach kind {PARAM_ZUINTEGER PARAM_ZUINTEGER_UNLIMITED} {
     gdb_py_test_multiple "Simple gdb $kind" \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-template.exp ./gdb/testsuite/gdb.python/py-template.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-template.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-template.exp	2019-10-08 01:49:31.000000000 +0000
@@ -48,8 +48,10 @@ proc test_template_arg {exefile type} {
 	return
     }
     # There is no executable code in main(), so we are where we want to be
-    gdb_test "print (foo)" ".*"
-    gdb_test_no_output "python foo = gdb.history(0)"
+    gdb_test "print (foo)" ".*" \
+	"print (foo) in template test of $type"
+    gdb_test_no_output "python foo = gdb.history(0)" \
+	"fetch foo from gdb.history(0) in template test of $type"
 
     # Replace '*' with '\*' in regex.
     regsub -all {\*} $type {\*} t
@@ -57,7 +59,7 @@ proc test_template_arg {exefile type} {
 
     gdb_test "python print(foo.type.template_argument(-1))" \
 	"Template argument number must be non-negative\r\nError while executing Python code." \
-	"negative template argument number"
+	"negative template argument number in template test of $type"
 }
 
 test_template_arg "${binfile}-ci" "const int"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-value.exp ./gdb/testsuite/gdb.python/py-value.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.python/py-value.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-value.exp	2019-10-08 01:49:31.000000000 +0000
@@ -189,9 +189,9 @@ proc test_value_boolean {} {
 
   gdb_test "py test_bool (gdb.Value (0))" "nay" "check evaluation of false integer value in expression"
 
-  gdb_test "py test_bool (gdb.Value (5.2))" "yay" "check evaluation of true integer value in expression"
+  gdb_test "py test_bool (gdb.Value (5.2))" "yay" "check evaluation of true float value in expression"
 
-  gdb_test "py test_bool (gdb.Value (0.0))" "nay" "check evaluation of false integer value in expression"
+  gdb_test "py test_bool (gdb.Value (0.0))" "nay" "check evaluation of false float value in expression"
 }
 
 proc test_value_compare {} {
@@ -232,13 +232,12 @@ proc test_value_in_inferior {} {
   global gdb_py_is_py3k
 
   gdb_breakpoint [gdb_get_line_number "break to inspect struct and union"]
-
   gdb_continue_to_breakpoint "break to inspect struct and union"
 
   # Just get inferior variable s in the value history, available to python.
   gdb_test "print s" " = {a = 3, b = 5}" ""
 
-  gdb_py_test_silent_cmd "python s = gdb.history (0)" "get value from history" 1
+  gdb_py_test_silent_cmd "python s = gdb.history (0)" "get value s from history" 1
 
   gdb_test "python print ('result = ' + str(s\['a'\]))" " = 3" "access element inside struct using 8-bit string name"
   if { $gdb_py_is_py3k == 0 } {
@@ -290,17 +289,23 @@ proc test_value_in_inferior {} {
   } else {
     gdb_test "python inval = gdb.parse_and_eval('*(int*)0')"
     gdb_test "python print (inval.is_lazy)" "True"
-    gdb_test "python inval2 = inval+1" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
-    gdb_test "python inval.fetch_lazy ()" "gdb.MemoryError: Cannot access memory at address 0x0.*" $test
+    gdb_test "python inval2 = inval+1" \
+	"gdb.MemoryError: Cannot access memory at address 0x0.*" \
+	"$test, first test"
+    gdb_test "python inval.fetch_lazy ()" \
+	"gdb.MemoryError: Cannot access memory at address 0x0.*" \
+	"$test, second test"
   }
   set argc_value [get_integer_valueof "argc" 0]
   gdb_test "python argc_lazy = gdb.parse_and_eval('argc')"
   gdb_test "python argc_notlazy = gdb.parse_and_eval('argc')"
   gdb_test "python argc_notlazy.fetch_lazy()"
-  gdb_test "python print (argc_lazy.is_lazy)" "True"
+  gdb_test "python print (argc_lazy.is_lazy)" "True" \
+      "python print (argc_lazy.is_lazy) the first time"
   gdb_test "python print (argc_notlazy.is_lazy)" "False"
   gdb_test "print argc" " = $argc_value" "sanity check argc"
-  gdb_test "python print (argc_lazy.is_lazy)" "\r\nTrue"
+  gdb_test "python print (argc_lazy.is_lazy)" "\r\nTrue" \
+      "python print (argc_lazy.is_lazy) the second time"
   gdb_test_no_output "set argc=[expr $argc_value + 1]" "change argc"
   gdb_test "python print (argc_notlazy)" "\r\n$argc_value"
   gdb_test "python print (argc_lazy)" "\r\n[expr $argc_value + 1]"
@@ -308,7 +313,7 @@ proc test_value_in_inferior {} {
 
   # Test string fetches,  both partial and whole.
   gdb_test "print st" "\"divide et impera\""
-  gdb_py_test_silent_cmd "python st = gdb.history (0)" "get value from history" 1
+  gdb_py_test_silent_cmd "python st = gdb.history (0)" "get value st from history" 1
   gdb_test "python print (st.string ())"  "divide et impera"  "Test string with no length"
   gdb_test "python print (st.string (length = -1))" "divide et impera" "test string (length = -1) is all of the string"
   gdb_test "python print (st.string (length = 6))" "divide"
@@ -325,7 +330,7 @@ proc test_value_in_inferior {} {
 
   # Fetch a string that has embedded nulls.
   gdb_test "print nullst" "\"divide\\\\000et\\\\000impera\".*"
-  gdb_py_test_silent_cmd "python nullst = gdb.history (0)" "get value from history" 1
+  gdb_py_test_silent_cmd "python nullst = gdb.history (0)" "get value nullst from history" 1
   gdb_test "python print (nullst.string ())" "divide" "test string to first null"
   # Python cannot print strings that contain the null (\0) character.
   # For the purposes of this test, use repr()
@@ -350,26 +355,28 @@ proc test_inferior_function_call {} {
 
     # Correct inferior call without arguments.
     gdb_test "p/x fp1" " = $hex.*"
-    gdb_py_test_silent_cmd "python fp1 = gdb.history (0)" "get value from history" 1
+    gdb_py_test_silent_cmd "python fp1 = gdb.history (0)" "get value fp1 from history" 1
     gdb_test "python fp1 = fp1.dereference()" ""
     gdb_test "python result = fp1()" ""
     gdb_test "python print (result)" "void"
 
     # Correct inferior call with arguments.
-    gdb_test "p/x fp2" " = $hex.*"
-    gdb_py_test_silent_cmd "python fp2 = gdb.history (0)" "get value from history" 1
+    gdb_test "p/x fp2" " = $hex.*" \
+	"print fp2 to place it into history"
+    gdb_py_test_silent_cmd "python fp2 = gdb.history (0)" "get value fp2 from history" 1
     gdb_test "python fp2 = fp2.dereference()" ""
     gdb_test "python result2 = fp2(10,20)" ""
     gdb_test "python print (result2)" "30"
 
     # Incorrect to call an int value.
     gdb_test "p i" " = $decimal.*"
-    gdb_py_test_silent_cmd "python i = gdb.history (0)" "get value from history" 1
+    gdb_py_test_silent_cmd "python i = gdb.history (0)" "get value i from history" 1
     gdb_test "python result3 = i()" ".*Value is not callable.*"
 
     # Incorrect number of arguments.
-    gdb_test "p/x fp2" " = $hex.*"
-    gdb_py_test_silent_cmd "python fp3 = gdb.history (0)" "get value from history" 1
+    gdb_test "p/x fp2" " = $hex.*" \
+	"print fp2 again to place it into history"
+    gdb_py_test_silent_cmd "python fp3 = gdb.history (0)" "get value fp3 from history" 1
     gdb_test "python fp3 = fp3.dereference()" ""
     gdb_test "python result2 = fp3(10)" ".*Too few arguments in function call.*"
 }
@@ -451,12 +458,13 @@ proc test_subscript_regression {exefile 
  }
 
  gdb_breakpoint [gdb_get_line_number "break to inspect struct and union"]
- gdb_continue_to_breakpoint "break to inspect struct and union"
+ gdb_continue_to_breakpoint \
+     "break to inspect struct and union for subscript regression test"
 
  gdb_py_test_silent_cmd "python intv = gdb.Value(1)" \
-     "Create a value for subscript test" 1
+     "Create value intv for subscript test" 1
  gdb_py_test_silent_cmd "python stringv = gdb.Value(\"foo\")" \
-     "Create a value for subscript test" 1
+     "Create value stringv for subscript test" 1
 
  # Try to access an int with a subscript.  This should fail.
  gdb_test "python print (intv)" "1" "baseline print of an int Python value"
@@ -469,19 +477,19 @@ proc test_subscript_regression {exefile 
 
  # Try to access an int array via a pointer with a subscript.  This should pass.
  gdb_py_test_silent_cmd "print p" "Build pointer to array" 1
- gdb_py_test_silent_cmd "python pointer = gdb.history(0)" "" 1
+ gdb_py_test_silent_cmd "python pointer = gdb.history(0)" "fetch pointer" 0
  gdb_test "python print (pointer\[0\])" "1" "access array via pointer with int subscript"
  gdb_test "python print (pointer\[intv\])" "2" "access array via pointer with value subscript"
 
  # Try to access a single dimension array with a subscript to the
  # result.  This should fail.
  gdb_test "python print (pointer\[intv\]\[0\])" "gdb.error: Cannot subscript requested type.*" \
-     "Attempt to access an integer with a subscript"
+     "Attempt to access a single dimension array with a two subscripts"
 
  # Lastly, test subscript access to an array with multiple
  # dimensions.  This should pass.
  gdb_py_test_silent_cmd "print {\"fu \",\"foo\",\"bar\"}" "Build array" 1
- gdb_py_test_silent_cmd "python marray = gdb.history(0)" "" 1
+ gdb_py_test_silent_cmd "python marray = gdb.history(0)" "fetch marray" 0
  gdb_test "python print (marray\[1\]\[2\])" "o." "test multiple subscript"
 }
 
@@ -505,9 +513,9 @@ proc test_value_hash {} {
     "three = gdb.Value(3)" "" \
     "vdict = {one:\"one str\",two:\"two str\",three:\"three str\"}" "" \
     "end"
-    gdb_test "python print (vdict\[one\])" "one str" "test dictionary hash"
-    gdb_test "python print (vdict\[two\])" "two str" "test dictionary hash"
-    gdb_test "python print (vdict\[three\])" "three str" "test dictionary hash"
+    gdb_test "python print (vdict\[one\])" "one str" "test dictionary hash for one"
+    gdb_test "python print (vdict\[two\])" "two str" "test dictionary hash for two"
+    gdb_test "python print (vdict\[three\])" "three str" "test dictionary hash for three"
     gdb_test "python print (one.__hash__() == hash(one))" "True" "test inbuilt hash"
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/break-precsave.exp ./gdb/testsuite/gdb.reverse/break-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/break-precsave.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/break-precsave.exp	2019-10-08 01:49:31.000000000 +0000
@@ -69,8 +69,10 @@ proc precsave_tests {} {
 	"Breakpoint $decimal at .* line $bar_location\." \
 	"set breakpoint on bar"
 
-    gdb_continue_to_breakpoint "foo" ".*$srcfile:$foo_location.*"
-    gdb_continue_to_breakpoint "bar" ".*$srcfile:$bar_location.*"
+    gdb_continue_to_breakpoint "foo forward after restore" \
+	".*$srcfile:$foo_location.*"
+    gdb_continue_to_breakpoint "bar forward after restore" \
+	".*$srcfile:$bar_location.*"
     gdb_test_multiple "continue" "go to end of main forward" {
 	-re ".*Breakpoint $decimal,.*$srcfile:$end_location.*$gdb_prompt $"  {
 	    pass "go to end of main forward"
@@ -96,8 +98,10 @@ proc precsave_tests {} {
 
     gdb_test_no_output "set exec-direction forward" "set forward"
 
-    gdb_continue_to_breakpoint "foo" ".*$srcfile:$foo_location.*"
-    gdb_continue_to_breakpoint "bar" ".*$srcfile:$bar_location.*"
+    gdb_continue_to_breakpoint "foo forward again" \
+	".*$srcfile:$foo_location.*"
+    gdb_continue_to_breakpoint "bar forward again" \
+	".*$srcfile:$bar_location.*"
 
     gdb_test_multiple "continue" "end of record log" {
 	-re ".*Breakpoint $decimal,.*$srcfile:$end_location.*$gdb_prompt $" {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/break-reverse.exp ./gdb/testsuite/gdb.reverse/break-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/break-reverse.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/break-reverse.exp	2019-10-08 01:49:31.000000000 +0000
@@ -50,9 +50,12 @@ gdb_test "break $end_location" \
     "Breakpoint $decimal at .* line $end_location\." \
     "set breakpoint at end of main"
 
-gdb_continue_to_breakpoint "foo" ".*$srcfile:$foo_location.*"
-gdb_continue_to_breakpoint "bar" ".*$srcfile:$bar_location.*"
-gdb_continue_to_breakpoint "end" ".*$srcfile:$end_location.*"
+gdb_continue_to_breakpoint "foo forward, the first time" \
+    ".*$srcfile:$foo_location.*"
+gdb_continue_to_breakpoint "bar forward, the first time" \
+    ".*$srcfile:$bar_location.*"
+gdb_continue_to_breakpoint "end forward, the first time" \
+    ".*$srcfile:$end_location.*"
 
 gdb_test_no_output "set exec-direction reverse" "set reverse"
 
@@ -70,8 +73,10 @@ gdb_test_multiple "continue" "main backw
 
 gdb_test_no_output "set exec-direction forward" "set forward"
 
-gdb_continue_to_breakpoint "foo" ".*$srcfile:$foo_location.*"
-gdb_continue_to_breakpoint "bar" ".*$srcfile:$bar_location.*"
+gdb_continue_to_breakpoint "foo forward again" \
+    ".*$srcfile:$foo_location.*"
+gdb_continue_to_breakpoint "bar forward again" \
+    ".*$srcfile:$bar_location.*"
 
 gdb_test_multiple "continue" "end of record log" {
     -re ".*Breakpoint $decimal,.*$srcfile:$end_location.*$gdb_prompt $" {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/finish-precsave.exp ./gdb/testsuite/gdb.reverse/finish-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/finish-precsave.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/finish-precsave.exp	2019-10-08 01:49:31.000000000 +0000
@@ -179,7 +179,8 @@ gdb_test_no_output "set exec-dir reverse
 # Test reverse finish from long long func
 
 set breakloc [gdb_get_line_number "LONG LONG FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "long_long_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "long_long_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from long_long_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -191,7 +192,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from long func
 
 set breakloc [gdb_get_line_number "LONG FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "long_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "long_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from long_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -203,7 +205,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from int func
 
 set breakloc [gdb_get_line_number "INT FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "int_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "int_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from int_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -215,7 +218,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from short func
 
 set breakloc [gdb_get_line_number "SHORT FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "short_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "short_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from short_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -227,7 +231,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from char func
 
 set breakloc [gdb_get_line_number "CHAR FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "char_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "char_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from char_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -239,7 +244,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from void func
 
 set breakloc [gdb_get_line_number "VOID FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "void_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "void_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from void_func"
 gdb_test_multiple "finish" "$test_msg" {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/finish-reverse.exp ./gdb/testsuite/gdb.reverse/finish-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/finish-reverse.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/finish-reverse.exp	2019-10-08 01:49:31.000000000 +0000
@@ -158,7 +158,8 @@ gdb_test_no_output "set exec-dir reverse
 # Test reverse finish from long long func
 
 set breakloc [gdb_get_line_number "LONG LONG FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "long_long_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "long_long_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from long_long_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -170,7 +171,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from long func
 
 set breakloc [gdb_get_line_number "LONG FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "long_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "long_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from long_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -182,7 +184,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from int func
 
 set breakloc [gdb_get_line_number "INT FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "int_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "int_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from int_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -194,7 +197,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from short func
 
 set breakloc [gdb_get_line_number "SHORT FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "short_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "short_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from short_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -206,7 +210,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from char func
 
 set breakloc [gdb_get_line_number "CHAR FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "char_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "char_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from char_func"
 gdb_test_multiple "finish" "$test_msg" {
@@ -218,7 +223,8 @@ gdb_test_multiple "finish" "$test_msg" {
 # Test reverse finish from void func
 
 set breakloc [gdb_get_line_number "VOID FUNC" "$srcfile"]
-gdb_continue_to_breakpoint "void_func" ".*$srcfile:$breakloc.*"
+gdb_continue_to_breakpoint "void_func backward" \
+    ".*$srcfile:$breakloc.*"
 
 set test_msg "reverse finish from void_func"
 gdb_test_multiple "finish" "$test_msg" {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/machinestate.exp ./gdb/testsuite/gdb.reverse/machinestate.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/machinestate.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/machinestate.exp	2019-10-08 01:49:31.000000000 +0000
@@ -142,7 +142,8 @@ gdb_test "print a"      ".* = 0$newline"
 gdb_test "step"         ".* register post-change .*" ""
 gdb_test "print a"      ".* = 1$newline"  "register var step post-change"
 gdb_test "reverse-step" ".*$newline$breakloc.*" ""
-gdb_test "print a"      ".* = 0$newline"  "register var reverse step-to"
+gdb_test "print a"      ".* = 0$newline"  \
+    "register var reverse step-to, first time"
 
 # Proceed to beginning of main
 
@@ -164,7 +165,8 @@ gdb_test "reverse-step" ".*hide.*" ""
 gdb_test "step"         ".*$newline$breakloc.*" ""
 gdb_test "print a"      ".* = 0$newline"  "register var forward step-to"
 gdb_test "step"         ".* register post-change .*" ""
-gdb_test "print a"      ".* = 1$newline"  "register var step post-change"
+gdb_test "print a"      ".* = 1$newline"  \
+    "register var step post-change, second time"
 
 # Auto variable, forward
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/machinestate-precsave.exp ./gdb/testsuite/gdb.reverse/machinestate-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/machinestate-precsave.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/machinestate-precsave.exp	2019-10-08 01:49:31.000000000 +0000
@@ -167,7 +167,8 @@ gdb_test "reverse-continue" ".*$srcfile:
 
 gdb_test "print a"      ".* = 0$newline"  "register var reverse-breakpoint"
 gdb_test "step"         ".* register post-change .*" ""
-gdb_test "print a"      ".* = 1$newline"  "register var step post-change"
+gdb_test "print a"      ".* = 1$newline"  \
+    "register var step post-change, first time"
 gdb_test "reverse-step" ".*$newline$breakloc.*" ""
 gdb_test "print a"      ".* = 0$newline"  "register var reverse step-to"
 
@@ -191,7 +192,8 @@ gdb_test "reverse-step" ".*hide.*" ""
 gdb_test "step"         ".*$newline$breakloc.*" ""
 gdb_test "print a"      ".* = 0$newline"  "register var forward step-to"
 gdb_test "step"         ".* register post-change .*" ""
-gdb_test "print a"      ".* = 1$newline"  "register var step post-change"
+gdb_test "print a"      ".* = 1$newline" \
+    "register var step post-change, second time"
 
 # Auto variable, forward
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/readv-reverse.exp ./gdb/testsuite/gdb.reverse/readv-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/readv-reverse.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/readv-reverse.exp	2019-10-08 01:49:31.000000000 +0000
@@ -52,7 +52,7 @@ gdb_test "reverse-continue" ".*$srcfile:
 # will be remembered.  If not, new contents ("NUXI") will be
 # used, and the test will fail.
 
-gdb_test "print (int)buf\[0]" ".* = 0" "check readv record"
-gdb_test "print (int)buf\[1]" ".* = 0" "check readv record"
-gdb_test "print (int)buf\[2]" ".* = 0" "check readv record"
-gdb_test "print (int)buf\[3]" ".* = 0" "check readv record"
+for { set i 0 } { $i < 4 } { incr i } {
+    gdb_test "print (int)buf\[$i]" ".* = 0" \
+	"check readv record for buf\[$i\]"
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp ./gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/recvmsg-reverse.exp	2019-10-08 01:49:31.000000000 +0000
@@ -55,11 +55,13 @@ gdb_test "reverse-continue" ".*$srcfile:
 gdb_test "print rdata" ".* = \"xxxx\"" "check recvmsg record - rdata"
 
 # rmsg.msg_flags should be zeros, not MSG_TRUNC | MSG_CTRUNC
-gdb_test "print rmsg.msg_flags" ".* = 0" "check recvmsg record - rmsg"
+gdb_test "print rmsg.msg_flags" ".* = 0" \
+    "check recvmsg record - rmsg.msg_flags"
 
 # rmsg.msg_controllen should be sizeof rc, not actual size of control data
 # (7 bytes less)
-gdb_test "print rmsg.msg_controllen - sizeof rc" ".* = 0" "check recvmsg record - rmsg"
+gdb_test "print rmsg.msg_controllen - sizeof rc" ".* = 0" \
+    "check recvmsg record - rmsg.msg_controllen"
 
 # rc should be zeros, not received cmsg
 gdb_test "print ((struct cmsghdr *)rc)->cmsg_len" ".* = 0" "check recvmsg record - cmsg"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/sigall-precsave.exp ./gdb/testsuite/gdb.reverse/sigall-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/sigall-precsave.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/sigall-precsave.exp	2019-10-08 01:49:31.000000000 +0000
@@ -117,7 +117,7 @@ proc test_one_sig_reverse {prevsig} {
 	-re "Program received signal SIG$prevsig.*$gdb_prompt " {
 	    pass "reverse to signal event, $prevsig"
 
-	    set nested_testmsg "reverse signal delivered"
+	    set nested_testmsg "reverse signal $prevsig delivered"
 	    gdb_test_multiple "frame" $nested_testmsg {
 		-re ".*handle_$prevsig.*$gdb_prompt " {
 		    fail "$nested_testmsg (wrong location)"
@@ -289,8 +289,10 @@ set sig_supported 1
 set thissig "ABRT"
 
 # test signal handling
-foreach sig [lrange $signals 1 end] {
-    test_one_sig $sig
+with_test_prefix "sig-test-1" {
+    foreach sig [lrange $signals 1 end] {
+	test_one_sig $sig
+    }
 }
 
 # The last signal (SIGTERM) gets handled slightly differently because
@@ -313,6 +315,8 @@ foreach sig [lreverse $signals] {
 set sig_supported 1
 set thissig "ABRT"
 
-foreach sig [lrange $signals 1 end] {
-    test_one_sig $sig
+with_test_prefix "sig-test-2" {
+    foreach sig [lrange $signals 1 end] {
+	test_one_sig $sig
+    }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/sigall-reverse.exp ./gdb/testsuite/gdb.reverse/sigall-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/sigall-reverse.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/sigall-reverse.exp	2019-10-08 01:49:31.000000000 +0000
@@ -116,7 +116,7 @@ proc test_one_sig_reverse {prevsig} {
 	-re "Program received signal SIG$prevsig.*$gdb_prompt " {
 	    pass "reverse to signal event, $prevsig"
 
-	    set nested_testmsg "reverse signal delivered"
+	    set nested_testmsg "reverse signal $prevsig delivered"
 	    gdb_test_multiple "frame" $nested_testmsg {
 		-re ".*handle_$prevsig.*$gdb_prompt " {
 		    fail "$nested_testmsg (wrong location)"
@@ -237,8 +237,10 @@ set sig_supported 1
 set thissig "ABRT"
 
 # test signal handling
-foreach sig [lrange $signals 1 end] {
-    test_one_sig $sig
+with_test_prefix "sig-test-1" {
+    foreach sig [lrange $signals 1 end] {
+	test_one_sig $sig
+    }
 }
 
 # The last signal (SIGTERM) gets handled slightly differently because
@@ -265,6 +267,8 @@ foreach sig [lreverse $signals] {
 set sig_supported 1
 set thissig "ABRT"
 
-foreach sig [lrange $signals 1 end] {
-    test_one_sig $sig
+with_test_prefix "sig-test-2" {
+    foreach sig [lrange $signals 1 end] {
+	test_one_sig $sig
+    }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp ./gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp	2019-10-08 01:49:31.000000000 +0000
@@ -72,12 +72,12 @@ gdb_test "reverse-step" "apply\.3.*" "re
 gdb_test "reverse-step" "inc\.3.*" "reverse-step into inc"
 gdb_test "reverse-step" "inc\.2.*" "reverse-step inside inc"
 gdb_test "reverse-step" "apply\.2.*" \
-    "reverse-step through call thunk into apply"
+    "reverse-step through call thunk into apply, first time"
 gdb_test "reverse-step" "main\.2.*" "reverse-step into main"
 gdb_test "step" "apply\.2.*" "step into apply"
 gdb_test "step" "inc\.2.*" "step through call thunk into inc"
 gdb_test "reverse-step" "apply\.2.*" \
-    "reverse-step through call thunk into apply"
+    "reverse-step through call thunk into apply, second time"
 gdb_test "next" "apply\.3.*" "step through thunks and over inc"
 gdb_test "reverse-next" "apply\.2.*" \
     "reverse-step through thunks and over 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.3.50.20191001/gdb/testsuite/gdb.reverse/watch-precsave.exp ./gdb/testsuite/gdb.reverse/watch-precsave.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/watch-precsave.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/watch-precsave.exp	2019-10-08 01:49:31.000000000 +0000
@@ -108,7 +108,8 @@ gdb_continue_to_breakpoint "marker2" ".*
 ###
 ###
 
-gdb_test_no_output "set exec-direction reverse" "set reverse"
+gdb_test_no_output "set exec-direction reverse" \
+    "set reverse, first time"
 
 # Reverse until the previous change, from 4 to 3
 # Note that this one is outside the loop
@@ -183,7 +184,8 @@ gdb_test "continue" "marker2 .*" "replay
 ###
 ###
 
-gdb_test_no_output "set exec-direction reverse" "set reverse"
+gdb_test_no_output "set exec-direction reverse" \
+    "set reverse, second time"
 
 # Reverse until the previous change, from 4 to 3
 # Note that this one is outside the loop
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/watch-reverse.exp ./gdb/testsuite/gdb.reverse/watch-reverse.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.reverse/watch-reverse.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.reverse/watch-reverse.exp	2019-10-08 01:49:31.000000000 +0000
@@ -89,7 +89,8 @@ gdb_continue_to_breakpoint "marker2" ".*
 ###
 ###
 
-gdb_test_no_output "set exec-direction reverse" "set reverse"
+gdb_test_no_output "set exec-direction reverse" \
+    "set reverse, first time"
 
 # Reverse until the previous change, from 4 to 3
 # Note that this one is outside the loop
@@ -164,7 +165,8 @@ gdb_test "continue" "marker2 .*" "replay
 ###
 ###
 
-gdb_test_no_output "set exec-direction reverse" "set reverse"
+gdb_test_no_output "set exec-direction reverse" \
+    "set reverse, second time"
 
 # Reverse until the previous change, from 4 to 3
 # Note that this one is outside the loop
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.rust/simple.exp ./gdb/testsuite/gdb.rust/simple.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.rust/simple.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/simple.exp	2019-10-08 01:49:31.000000000 +0000
@@ -309,6 +309,8 @@ gdb_test_sequence "ptype/o SimpleLayout"
     "                         }"
 }
 
+gdb_test "print u2" " = simple::Union2 {name: \\\[1\\\]}"
+
 # PR rust/23626 - this used to crash.  Note that the results are
 # fairly lax because most existing versions of Rust (those before the
 # DW_TAG_variant patches) do not emit what gdb wants here; and there
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.rust/simple.rs ./gdb/testsuite/gdb.rust/simple.rs
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.rust/simple.rs	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/gdb.rust/simple.rs	2019-10-08 01:49:31.000000000 +0000
@@ -85,6 +85,10 @@ union Union {
     f2: u8,
 }
 
+pub union Union2 {
+    pub name: [u8; 1],
+}
+
 struct StringAtOffset {
     pub field1: &'static str,
     pub field2: i32,
@@ -180,6 +184,8 @@ fn main () {
 
     let empty_enum_value: EmptyEnum;
 
+    let u2 = Union2 { name: [1] };
+
     println!("{}, {}", x.0, x.1);        // set breakpoint here
     println!("{}", diff2(92, 45));
     empty();
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.threads/stop-with-handle.c ./gdb/testsuite/gdb.threads/stop-with-handle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.threads/stop-with-handle.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/stop-with-handle.c	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,74 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2019 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 <stdio.h>
+#include <pthread.h>
+#include <unistd.h>
+
+/* A place to record the thread.  */
+pthread_t the_thread;
+
+/* The worker thread just spins forever.  */
+void*
+thread_worker (void *payload)
+{
+  while (1)
+    {
+      sleep (1);
+    }
+
+  return NULL;
+}
+
+/* Create a worker thread.  */
+int
+spawn_thread ()
+{
+  if (pthread_create (&the_thread, NULL, thread_worker, NULL))
+    {
+      fprintf (stderr, "Unable to create thread.\n");
+      return 0;
+    }
+  return 1;
+}
+
+/* A place for GDB to place a breakpoint.   */
+void __attribute__((used))
+breakpt ()
+{
+  /* Nothing.  */
+}
+
+/* Create a worker thread that just spins forever, then enter a loop
+   periodically calling the BREAKPT function.  */
+int
+main()
+{
+  /* Ensure we stop if GDB crashes and DejaGNU fails to kill us.  */
+  alarm (10);
+
+  spawn_thread ();
+
+  while (1)
+    {
+      sleep (1);
+
+      breakpt ();
+    }
+
+  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.3.50.20191001/gdb/testsuite/gdb.threads/stop-with-handle.exp ./gdb/testsuite/gdb.threads/stop-with-handle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/gdb.threads/stop-with-handle.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/stop-with-handle.exp	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,51 @@
+# Copyright 2019 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 test covers a case where SIGSTOP has been configured to be
+# passed to the target with GDB's 'handle' command, and then a
+# multi-threaded inferior encounters an event that causes all theads
+# to be stopped.
+#
+# The problem that (used) to exist was that GDB would see the SIGSTOP,
+# but decide to ignore the signal based on the handle table.
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" \
+	 "${testfile}" "${srcfile}" {debug pthreads}]} {
+    return -1
+}
+
+if ![runto_main] then {
+    fail "can't run to main"
+    return 0
+}
+
+# Have SIGSTOP sent to the inferior.
+gdb_test "handle SIGSTOP nostop noprint pass" \
+    [multi_line \
+	 "Signal\[ \t\]+Stop\[ \t\]+Print\[ \t\]+Pass to program\[ \t\]+Description" \
+	 "SIGSTOP\[ \t\]+No\[ \t\]+No\[ \t\]+Yes\[ \t\]+Stopped \\(signal\\)"]
+
+# Create a breakpoint, and when we hit it automatically finish the
+# current frame.
+gdb_breakpoint breakpt
+
+# When the bug triggers this continue never completes.  GDB hits the
+# breakpoint in thread 1, and then tries to stop the second thread by
+# sending it SIGSTOP.  GDB sees the SIGSTOP arrive in thread 2 but
+# incorrect decides to pass the SIGSTOP to the thread rather than
+# bringing the thread to a stop.
+gdb_continue_to_breakpoint breakpt
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/lib/gdb.exp ./gdb/testsuite/lib/gdb.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/lib/gdb.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/lib/gdb.exp	2019-10-08 01:49:31.000000000 +0000
@@ -719,10 +719,24 @@ proc gdb_internal_error_resync {} {
 #
 # gdb_test_multiple "print foo" "test foo" {
 #    -re "expected output 1" {
-#        pass "print foo"
+#        pass "test foo"
 #    }
 #    -re "expected output 2" {
-#        fail "print foo"
+#        fail "test foo"
+#    }
+# }
+#
+# Within action elements you can also make use of the variable
+# gdb_test_name.  This variable is setup automatically by
+# gdb_test_multiple, and contains the value of MESSAGE.  You can then
+# write this, which is equivalent to the above:
+#
+# gdb_test_multiple "print foo" "test foo" {
+#    -re "expected output 1" {
+#        pass $gdb_test_name
+#    }
+#    -re "expected output 2" {
+#        fail $gdb_test_name
 #    }
 # }
 #
@@ -1038,8 +1052,28 @@ proc gdb_test_multiple { command message
 	}
     }
 
+    # Create gdb_test_name in the parent scope.  If this variable
+    # already exists, which it might if we have nested calls to
+    # gdb_test_multiple, then preserve the old value, otherwise,
+    # create a new variable in the parent scope.
+    upvar gdb_test_name gdb_test_name
+    if { [info exists gdb_test_name] } {
+	set gdb_test_name_old "$gdb_test_name"
+    }
+    set gdb_test_name "$message"
+
     set result 0
     set code [catch {gdb_expect $code} string]
+
+    # Clean up the gdb_test_name variable.  If we had a
+    # previous value then restore it, otherwise, delete the variable
+    # from the parent scope.
+    if { [info exists gdb_test_name_old] } {
+	set gdb_test_name "$gdb_test_name_old"
+    } else {
+	unset gdb_test_name
+    }
+
     if {$code == 1} {
 	global errorInfo errorCode
 	return -code error -errorinfo $errorInfo -errorcode $errorCode $string
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/lib/gdb-utils.exp ./gdb/testsuite/lib/gdb-utils.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/testsuite/lib/gdb-utils.exp	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/testsuite/lib/gdb-utils.exp	2019-10-08 01:49:31.000000000 +0000
@@ -54,6 +54,7 @@ proc style {str style} {
 	highlight { set style 31 }
 	variable { set style 36 }
 	address { set style 34 }
+	metadata { set style 2 }
     }
     return "\033\\\[${style}m${str}\033\\\[m"
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tracectf.c ./gdb/tracectf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tracectf.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/tracectf.c	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,1730 @@
+/* CTF format support.
+
+   Copyright (C) 2012-2019 Free Software Foundation, Inc.
+   Contributed by Hui Zhu <hui_zhu@mentor.com>
+   Contributed by Yao Qi <yao@codesourcery.com>
+
+   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/>.  */
+
+#include "defs.h"
+#include "tracectf.h"
+#include "tracepoint.h"
+#include "regcache.h"
+#include <sys/stat.h>
+#include "exec.h"
+#include "completer.h"
+#include "inferior.h"
+#include "gdbthread.h"
+#include "tracefile.h"
+#include <ctype.h>
+#include <algorithm>
+#include "gdbsupport/filestuff.h"
+#include "gdbarch.h"
+
+/* The CTF target.  */
+
+static const target_info ctf_target_info = {
+  "ctf",
+  N_("CTF file"),
+  N_("(Use a CTF directory as a target.\n\
+Specify the filename of the CTF directory.")
+};
+
+class ctf_target final : public tracefile_target
+{
+public:
+  const target_info &info () const override
+  { return ctf_target_info; }
+
+  void close () override;
+  void fetch_registers (struct regcache *, int) override;
+  enum target_xfer_status xfer_partial (enum target_object object,
+						const char *annex,
+						gdb_byte *readbuf,
+						const gdb_byte *writebuf,
+						ULONGEST offset, ULONGEST len,
+						ULONGEST *xfered_len) override;
+  void files_info () override;
+  int trace_find (enum trace_find_type type, int num,
+			  CORE_ADDR addr1, CORE_ADDR addr2, int *tpp) override;
+  bool get_trace_state_variable_value (int tsv, LONGEST *val) override;
+  traceframe_info_up traceframe_info () override;
+};
+
+/* GDB saves trace buffers and other information (such as trace
+   status) got from the remote target into Common Trace Format (CTF).
+   The following types of information are expected to save in CTF:
+
+   1. The length (in bytes) of register cache.  Event "register" will
+   be defined in metadata, which includes the length.
+
+   2. Trace status.  Event "status" is defined in metadata, which
+   includes all aspects of trace status.
+
+   3. Uploaded trace variables.  Event "tsv_def" is defined in
+   metadata, which is about all aspects of a uploaded trace variable.
+   Uploaded tracepoints.   Event "tp_def" is defined in meta, which
+   is about all aspects of an uploaded tracepoint.  Note that the
+   "sequence" (a CTF type, which is a dynamically-sized array.) is
+   used for "actions" "step_actions" and "cmd_strings".
+
+   4. Trace frames.  Each trace frame is composed by several blocks
+   of different types ('R', 'M', 'V').  One trace frame is saved in
+   one CTF packet and the blocks of this frame are saved as events.
+   4.1: The trace frame related information (such as the number of
+   tracepoint associated with this frame) is saved in the packet
+   context.
+   4.2: The block 'M', 'R' and 'V' are saved in event "memory",
+   "register" and "tsv" respectively.
+   4.3: When iterating over events, babeltrace can't tell iterator
+   goes to a new packet, so we need a marker or anchor to tell GDB
+   that iterator goes into a new packet or frame.  We define event
+   "frame".  */
+
+#define CTF_MAGIC		0xC1FC1FC1
+#define CTF_SAVE_MAJOR		1
+#define CTF_SAVE_MINOR		8
+
+#define CTF_METADATA_NAME	"metadata"
+#define CTF_DATASTREAM_NAME	"datastream"
+
+/* Reserved event id.  */
+
+#define CTF_EVENT_ID_REGISTER 0
+#define CTF_EVENT_ID_TSV 1
+#define CTF_EVENT_ID_MEMORY 2
+#define CTF_EVENT_ID_FRAME 3
+#define CTF_EVENT_ID_STATUS 4
+#define CTF_EVENT_ID_TSV_DEF 5
+#define CTF_EVENT_ID_TP_DEF 6
+
+#define CTF_PID (2)
+
+/* The state kept while writing the CTF datastream file.  */
+
+struct trace_write_handler
+{
+  /* File descriptor of metadata.  */
+  FILE *metadata_fd;
+  /* File descriptor of traceframes.  */
+  FILE *datastream_fd;
+
+  /* This is the content size of the current packet.  */
+  size_t content_size;
+
+  /* This is the start offset of current packet.  */
+  long packet_start;
+};
+
+/* Write metadata in FORMAT.  */
+
+static void
+ctf_save_write_metadata (struct trace_write_handler *handler,
+			 const char *format, ...)
+  ATTRIBUTE_PRINTF (2, 3);
+
+static void
+ctf_save_write_metadata (struct trace_write_handler *handler,
+			 const char *format, ...)
+{
+  va_list args;
+
+  va_start (args, format);
+  if (vfprintf (handler->metadata_fd, format, args) < 0)
+    error (_("Unable to write metadata file (%s)"),
+	     safe_strerror (errno));
+  va_end (args);
+}
+
+/* Write BUF of length SIZE to datastream file represented by
+   HANDLER.  */
+
+static int
+ctf_save_write (struct trace_write_handler *handler,
+		const gdb_byte *buf, size_t size)
+{
+  if (fwrite (buf, size, 1, handler->datastream_fd) != 1)
+    error (_("Unable to write file for saving trace data (%s)"),
+	   safe_strerror (errno));
+
+  handler->content_size += size;
+
+  return 0;
+}
+
+/* Write a unsigned 32-bit integer to datastream file represented by
+   HANDLER.  */
+
+#define ctf_save_write_uint32(HANDLER, U32) \
+  ctf_save_write (HANDLER, (gdb_byte *) &U32, 4)
+
+/* Write a signed 32-bit integer to datastream file represented by
+   HANDLER.  */
+
+#define ctf_save_write_int32(HANDLER, INT32) \
+  ctf_save_write ((HANDLER), (gdb_byte *) &(INT32), 4)
+
+/* Set datastream file position.  Update HANDLER->content_size
+   if WHENCE is SEEK_CUR.  */
+
+static int
+ctf_save_fseek (struct trace_write_handler *handler, long offset,
+		int whence)
+{
+  gdb_assert (whence != SEEK_END);
+  gdb_assert (whence != SEEK_SET
+	      || offset <= handler->content_size + handler->packet_start);
+
+  if (fseek (handler->datastream_fd, offset, whence))
+    error (_("Unable to seek file for saving trace data (%s)"),
+	   safe_strerror (errno));
+
+  if (whence == SEEK_CUR)
+    handler->content_size += offset;
+
+  return 0;
+}
+
+/* Change the datastream file position to align on ALIGN_SIZE,
+   and write BUF to datastream file.  The size of BUF is SIZE.  */
+
+static int
+ctf_save_align_write (struct trace_write_handler *handler,
+		      const gdb_byte *buf,
+		      size_t size, size_t align_size)
+{
+  long offset
+    = (align_up (handler->content_size, align_size)
+       - handler->content_size);
+
+  if (ctf_save_fseek (handler, offset, SEEK_CUR))
+    return -1;
+
+  if (ctf_save_write (handler, buf, size))
+    return -1;
+
+  return 0;
+}
+
+/* Write events to next new packet.  */
+
+static void
+ctf_save_next_packet (struct trace_write_handler *handler)
+{
+  handler->packet_start += (handler->content_size + 4);
+  ctf_save_fseek (handler, handler->packet_start, SEEK_SET);
+  handler->content_size = 0;
+}
+
+/* Write the CTF metadata header.  */
+
+static void
+ctf_save_metadata_header (struct trace_write_handler *handler)
+{
+  ctf_save_write_metadata (handler, "/* CTF %d.%d */\n",
+			   CTF_SAVE_MAJOR, CTF_SAVE_MINOR);
+  ctf_save_write_metadata (handler,
+			   "typealias integer { size = 8; align = 8; "
+			   "signed = false; encoding = ascii;}"
+			   " := ascii;\n");
+  ctf_save_write_metadata (handler,
+			   "typealias integer { size = 8; align = 8; "
+			   "signed = false; }"
+			   " := uint8_t;\n");
+  ctf_save_write_metadata (handler,
+			   "typealias integer { size = 16; align = 16;"
+			   "signed = false; } := uint16_t;\n");
+  ctf_save_write_metadata (handler,
+			   "typealias integer { size = 32; align = 32;"
+			   "signed = false; } := uint32_t;\n");
+  ctf_save_write_metadata (handler,
+			   "typealias integer { size = 64; align = 64;"
+			   "signed = false; base = hex;}"
+			   " := uint64_t;\n");
+  ctf_save_write_metadata (handler,
+			   "typealias integer { size = 32; align = 32;"
+			   "signed = true; } := int32_t;\n");
+  ctf_save_write_metadata (handler,
+			   "typealias integer { size = 64; align = 64;"
+			   "signed = true; } := int64_t;\n");
+  ctf_save_write_metadata (handler,
+			   "typealias string { encoding = ascii;"
+			   " } := chars;\n");
+  ctf_save_write_metadata (handler, "\n");
+
+  /* Get the byte order of the host and write CTF data in this byte
+     order.  */
+#if WORDS_BIGENDIAN
+#define HOST_ENDIANNESS "be"
+#else
+#define HOST_ENDIANNESS "le"
+#endif
+
+  ctf_save_write_metadata (handler,
+			   "\ntrace {\n"
+			   "	major = %u;\n"
+			   "	minor = %u;\n"
+			   "	byte_order = %s;\n"
+			   "	packet.header := struct {\n"
+			   "		uint32_t magic;\n"
+			   "	};\n"
+			   "};\n"
+			   "\n"
+			   "stream {\n"
+			   "	packet.context := struct {\n"
+			   "		uint32_t content_size;\n"
+			   "		uint32_t packet_size;\n"
+			   "		uint16_t tpnum;\n"
+			   "	};\n"
+			   "	event.header := struct {\n"
+			   "		uint32_t id;\n"
+			   "	};\n"
+			   "};\n",
+			   CTF_SAVE_MAJOR, CTF_SAVE_MINOR,
+			   HOST_ENDIANNESS);
+  ctf_save_write_metadata (handler, "\n");
+}
+
+/* CTF trace writer.  */
+
+struct ctf_trace_file_writer
+{
+  struct trace_file_writer base;
+
+  /* States related to writing CTF trace file.  */
+  struct trace_write_handler tcs;
+};
+
+/* This is the implementation of trace_file_write_ops method
+   dtor.  */
+
+static void
+ctf_dtor (struct trace_file_writer *self)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+
+  if (writer->tcs.metadata_fd != NULL)
+    fclose (writer->tcs.metadata_fd);
+
+  if (writer->tcs.datastream_fd != NULL)
+    fclose (writer->tcs.datastream_fd);
+
+}
+
+/* This is the implementation of trace_file_write_ops method
+   target_save.  */
+
+static int
+ctf_target_save (struct trace_file_writer *self,
+		 const char *dirname)
+{
+  /* Don't support save trace file to CTF format in the target.  */
+  return 0;
+}
+
+/* This is the implementation of trace_file_write_ops method
+   start.  It creates the directory DIRNAME, metadata and datastream
+   in the directory.  */
+
+static void
+ctf_start (struct trace_file_writer *self, const char *dirname)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+  mode_t hmode = S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IXGRP | S_IROTH;
+
+  /* Create DIRNAME.  */
+  if (mkdir (dirname, hmode) && errno != EEXIST)
+    error (_("Unable to open directory '%s' for saving trace data (%s)"),
+	   dirname, safe_strerror (errno));
+
+  memset (&writer->tcs, '\0', sizeof (writer->tcs));
+
+  std::string file_name = string_printf ("%s/%s", dirname, CTF_METADATA_NAME);
+
+  writer->tcs.metadata_fd
+    = gdb_fopen_cloexec (file_name.c_str (), "w").release ();
+  if (writer->tcs.metadata_fd == NULL)
+    error (_("Unable to open file '%s' for saving trace data (%s)"),
+	   file_name.c_str (), safe_strerror (errno));
+
+  ctf_save_metadata_header (&writer->tcs);
+
+  file_name = string_printf ("%s/%s", dirname, CTF_DATASTREAM_NAME);
+  writer->tcs.datastream_fd
+    = gdb_fopen_cloexec (file_name.c_str (), "w").release ();
+  if (writer->tcs.datastream_fd == NULL)
+    error (_("Unable to open file '%s' for saving trace data (%s)"),
+	   file_name.c_str (), safe_strerror (errno));
+}
+
+/* This is the implementation of trace_file_write_ops method
+   write_header.  Write the types of events on trace variable and
+   frame.  */
+
+static void
+ctf_write_header (struct trace_file_writer *self)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+
+
+  ctf_save_write_metadata (&writer->tcs, "\n");
+  ctf_save_write_metadata (&writer->tcs,
+			   "event {\n\tname = \"memory\";\n\tid = %u;\n"
+			   "\tfields := struct { \n"
+			   "\t\tuint64_t address;\n"
+			   "\t\tuint16_t length;\n"
+			   "\t\tuint8_t contents[length];\n"
+			   "\t};\n"
+			   "};\n", CTF_EVENT_ID_MEMORY);
+
+  ctf_save_write_metadata (&writer->tcs, "\n");
+  ctf_save_write_metadata (&writer->tcs,
+			   "event {\n\tname = \"tsv\";\n\tid = %u;\n"
+			   "\tfields := struct { \n"
+			   "\t\tuint64_t val;\n"
+			   "\t\tuint32_t num;\n"
+			   "\t};\n"
+			   "};\n", CTF_EVENT_ID_TSV);
+
+  ctf_save_write_metadata (&writer->tcs, "\n");
+  ctf_save_write_metadata (&writer->tcs,
+			   "event {\n\tname = \"frame\";\n\tid = %u;\n"
+			   "\tfields := struct { \n"
+			   "\t};\n"
+			   "};\n", CTF_EVENT_ID_FRAME);
+
+  ctf_save_write_metadata (&writer->tcs, "\n");
+  ctf_save_write_metadata (&writer->tcs,
+			  "event {\n\tname = \"tsv_def\";\n"
+			  "\tid = %u;\n\tfields := struct { \n"
+			  "\t\tint64_t initial_value;\n"
+			  "\t\tint32_t number;\n"
+			  "\t\tint32_t builtin;\n"
+			  "\t\tchars name;\n"
+			  "\t};\n"
+			  "};\n", CTF_EVENT_ID_TSV_DEF);
+
+  ctf_save_write_metadata (&writer->tcs, "\n");
+  ctf_save_write_metadata (&writer->tcs,
+			   "event {\n\tname = \"tp_def\";\n"
+			   "\tid = %u;\n\tfields := struct { \n"
+			   "\t\tuint64_t addr;\n"
+			   "\t\tuint64_t traceframe_usage;\n"
+			   "\t\tint32_t number;\n"
+			   "\t\tint32_t enabled;\n"
+			   "\t\tint32_t step;\n"
+			   "\t\tint32_t pass;\n"
+			   "\t\tint32_t hit_count;\n"
+			   "\t\tint32_t type;\n"
+			   "\t\tchars cond;\n"
+
+			  "\t\tuint32_t action_num;\n"
+			  "\t\tchars actions[action_num];\n"
+
+			  "\t\tuint32_t step_action_num;\n"
+			  "\t\tchars step_actions[step_action_num];\n"
+
+			  "\t\tchars at_string;\n"
+			  "\t\tchars cond_string;\n"
+
+			  "\t\tuint32_t cmd_num;\n"
+			  "\t\tchars cmd_strings[cmd_num];\n"
+			  "\t};\n"
+			  "};\n", CTF_EVENT_ID_TP_DEF);
+
+  gdb_assert (writer->tcs.content_size == 0);
+  gdb_assert (writer->tcs.packet_start == 0);
+
+  /* Create a new packet to contain this event.  */
+  self->ops->frame_ops->start (self, 0);
+}
+
+/* This is the implementation of trace_file_write_ops method
+   write_regblock_type.  Write the type of register event in
+   metadata.  */
+
+static void
+ctf_write_regblock_type (struct trace_file_writer *self, int size)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+
+  ctf_save_write_metadata (&writer->tcs, "\n");
+
+  ctf_save_write_metadata (&writer->tcs,
+			   "event {\n\tname = \"register\";\n\tid = %u;\n"
+			   "\tfields := struct { \n"
+			   "\t\tascii contents[%d];\n"
+			   "\t};\n"
+			   "};\n",
+			   CTF_EVENT_ID_REGISTER, size);
+}
+
+/* This is the implementation of trace_file_write_ops method
+   write_status.  */
+
+static void
+ctf_write_status (struct trace_file_writer *self,
+		  struct trace_status *ts)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+  uint32_t id;
+
+  ctf_save_write_metadata (&writer->tcs, "\n");
+  ctf_save_write_metadata (&writer->tcs,
+			   "event {\n\tname = \"status\";\n\tid = %u;\n"
+			   "\tfields := struct { \n"
+			   "\t\tint32_t stop_reason;\n"
+			   "\t\tint32_t stopping_tracepoint;\n"
+			   "\t\tint32_t traceframe_count;\n"
+			   "\t\tint32_t traceframes_created;\n"
+			   "\t\tint32_t buffer_free;\n"
+			   "\t\tint32_t buffer_size;\n"
+			   "\t\tint32_t disconnected_tracing;\n"
+			   "\t\tint32_t circular_buffer;\n"
+			   "\t};\n"
+			   "};\n",
+			   CTF_EVENT_ID_STATUS);
+
+  id = CTF_EVENT_ID_STATUS;
+  /* Event Id.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &id, 4, 4);
+
+  ctf_save_write_int32 (&writer->tcs, ts->stop_reason);
+  ctf_save_write_int32 (&writer->tcs, ts->stopping_tracepoint);
+  ctf_save_write_int32 (&writer->tcs, ts->traceframe_count);
+  ctf_save_write_int32 (&writer->tcs, ts->traceframes_created);
+  ctf_save_write_int32 (&writer->tcs, ts->buffer_free);
+  ctf_save_write_int32 (&writer->tcs, ts->buffer_size);
+  ctf_save_write_int32 (&writer->tcs, ts->disconnected_tracing);
+  ctf_save_write_int32 (&writer->tcs, ts->circular_buffer);
+}
+
+/* This is the implementation of trace_file_write_ops method
+   write_uploaded_tsv.  */
+
+static void
+ctf_write_uploaded_tsv (struct trace_file_writer *self,
+			struct uploaded_tsv *tsv)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+  int32_t int32;
+  int64_t int64;
+  const gdb_byte zero = 0;
+
+  /* Event Id.  */
+  int32 = CTF_EVENT_ID_TSV_DEF;
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int32, 4, 4);
+
+  /* initial_value */
+  int64 = tsv->initial_value;
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int64, 8, 8);
+
+  /* number */
+  ctf_save_write_int32 (&writer->tcs, tsv->number);
+
+  /* builtin */
+  ctf_save_write_int32 (&writer->tcs, tsv->builtin);
+
+  /* name */
+  if (tsv->name != NULL)
+    ctf_save_write (&writer->tcs, (gdb_byte *) tsv->name,
+		    strlen (tsv->name));
+  ctf_save_write (&writer->tcs, &zero, 1);
+}
+
+/* This is the implementation of trace_file_write_ops method
+   write_uploaded_tp.  */
+
+static void
+ctf_write_uploaded_tp (struct trace_file_writer *self,
+		       struct uploaded_tp *tp)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+  int32_t int32;
+  int64_t int64;
+  uint32_t u32;
+  const gdb_byte zero = 0;
+
+  /* Event Id.  */
+  int32 = CTF_EVENT_ID_TP_DEF;
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int32, 4, 4);
+
+  /* address */
+  int64 = tp->addr;
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int64, 8, 8);
+
+  /* traceframe_usage */
+  int64 = tp->traceframe_usage;
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &int64, 8, 8);
+
+  /* number */
+  ctf_save_write_int32 (&writer->tcs, tp->number);
+
+  /* enabled */
+  ctf_save_write_int32 (&writer->tcs, tp->enabled);
+
+  /* step */
+  ctf_save_write_int32 (&writer->tcs, tp->step);
+
+  /* pass */
+  ctf_save_write_int32 (&writer->tcs, tp->pass);
+
+  /* hit_count */
+  ctf_save_write_int32 (&writer->tcs, tp->hit_count);
+
+  /* type */
+  ctf_save_write_int32 (&writer->tcs, tp->type);
+
+  /* condition  */
+  if (tp->cond != NULL)
+    ctf_save_write (&writer->tcs, (gdb_byte *) tp->cond.get (),
+		    strlen (tp->cond.get ()));
+  ctf_save_write (&writer->tcs, &zero, 1);
+
+  /* actions */
+  u32 = tp->actions.size ();
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4);
+  for (const auto &act : tp->actions)
+    ctf_save_write (&writer->tcs, (gdb_byte *) act.get (),
+		    strlen (act.get ()) + 1);
+
+  /* step_actions */
+  u32 = tp->step_actions.size ();
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4);
+  for (const auto &act : tp->step_actions)
+    ctf_save_write (&writer->tcs, (gdb_byte *) act.get (),
+		    strlen (act.get ()) + 1);
+
+  /* at_string */
+  if (tp->at_string != NULL)
+    ctf_save_write (&writer->tcs, (gdb_byte *) tp->at_string.get (),
+		    strlen (tp->at_string.get ()));
+  ctf_save_write (&writer->tcs, &zero, 1);
+
+  /* cond_string */
+  if (tp->cond_string != NULL)
+    ctf_save_write (&writer->tcs, (gdb_byte *) tp->cond_string.get (),
+		    strlen (tp->cond_string.get ()));
+  ctf_save_write (&writer->tcs, &zero, 1);
+
+  /* cmd_strings */
+  u32 = tp->cmd_strings.size ();
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &u32, 4, 4);
+  for (const auto &act : tp->cmd_strings)
+    ctf_save_write (&writer->tcs, (gdb_byte *) act.get (),
+		    strlen (act.get ()) + 1);
+
+}
+
+/* This is the implementation of trace_file_write_ops method
+   write_tdesc.  */
+
+static void
+ctf_write_tdesc (struct trace_file_writer *self)
+{
+  /* Nothing so far. */
+}
+
+/* This is the implementation of trace_file_write_ops method
+   write_definition_end.  */
+
+static void
+ctf_write_definition_end (struct trace_file_writer *self)
+{
+  self->ops->frame_ops->end (self);
+}
+
+/* This is the implementation of trace_file_write_ops method
+   end.  */
+
+static void
+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);
+}
+
+/* This is the implementation of trace_frame_write_ops method
+   start.  */
+
+static void
+ctf_write_frame_start (struct trace_file_writer *self, uint16_t tpnum)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+  uint32_t id = CTF_EVENT_ID_FRAME;
+  uint32_t u32;
+
+  /* Step 1: Write packet context.  */
+  /* magic.  */
+  u32 = CTF_MAGIC;
+  ctf_save_write_uint32 (&writer->tcs, u32);
+  /* content_size and packet_size..  We still don't know the value,
+     write it later.  */
+  ctf_save_fseek (&writer->tcs, 4, SEEK_CUR);
+  ctf_save_fseek (&writer->tcs, 4, SEEK_CUR);
+  /* Tracepoint number.  */
+  ctf_save_write (&writer->tcs, (gdb_byte *) &tpnum, 2);
+
+  /* Step 2: Write event "frame".  */
+  /* Event Id.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &id, 4, 4);
+}
+
+/* This is the implementation of trace_frame_write_ops method
+   write_r_block.  */
+
+static void
+ctf_write_frame_r_block (struct trace_file_writer *self,
+			 gdb_byte *buf, int32_t size)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+  uint32_t id = CTF_EVENT_ID_REGISTER;
+
+  /* Event Id.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &id, 4, 4);
+
+  /* array contents.  */
+  ctf_save_align_write (&writer->tcs, buf, size, 1);
+}
+
+/* This is the implementation of trace_frame_write_ops method
+   write_m_block_header.  */
+
+static void
+ctf_write_frame_m_block_header (struct trace_file_writer *self,
+				uint64_t addr, uint16_t length)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+  uint32_t event_id = CTF_EVENT_ID_MEMORY;
+
+  /* Event Id.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &event_id, 4, 4);
+
+  /* Address.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &addr, 8, 8);
+
+  /* Length.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &length, 2, 2);
+}
+
+/* This is the implementation of trace_frame_write_ops method
+   write_m_block_memory.  */
+
+static void
+ctf_write_frame_m_block_memory (struct trace_file_writer *self,
+				gdb_byte *buf, uint16_t length)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+
+  /* Contents.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) buf, length, 1);
+}
+
+/* This is the implementation of trace_frame_write_ops method
+   write_v_block.  */
+
+static void
+ctf_write_frame_v_block (struct trace_file_writer *self,
+			 int32_t num, uint64_t val)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+  uint32_t id = CTF_EVENT_ID_TSV;
+
+  /* Event Id.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &id, 4, 4);
+
+  /* val.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &val, 8, 8);
+  /* num.  */
+  ctf_save_align_write (&writer->tcs, (gdb_byte *) &num, 4, 4);
+}
+
+/* This is the implementation of trace_frame_write_ops method
+   end.  */
+
+static void
+ctf_write_frame_end (struct trace_file_writer *self)
+{
+  struct ctf_trace_file_writer *writer
+    = (struct ctf_trace_file_writer *) self;
+  uint32_t u32;
+  uint32_t t;
+
+  /* Write the content size to packet header.  */
+  ctf_save_fseek (&writer->tcs, writer->tcs.packet_start + 4,
+		  SEEK_SET);
+  u32 = writer->tcs.content_size * TARGET_CHAR_BIT;
+
+  t = writer->tcs.content_size;
+  ctf_save_write_uint32 (&writer->tcs, u32);
+
+  /* Write the packet size.  */
+  u32 += 4 * TARGET_CHAR_BIT;
+  ctf_save_write_uint32 (&writer->tcs, u32);
+
+  writer->tcs.content_size = t;
+
+  /* Write zero at the end of the packet.  */
+  ctf_save_fseek (&writer->tcs, writer->tcs.packet_start + t,
+		  SEEK_SET);
+  u32 = 0;
+  ctf_save_write_uint32 (&writer->tcs, u32);
+  writer->tcs.content_size = t;
+
+  ctf_save_next_packet (&writer->tcs);
+}
+
+/* Operations to write various types of trace frames into CTF
+   format.  */
+
+static const struct trace_frame_write_ops ctf_write_frame_ops =
+{
+  ctf_write_frame_start,
+  ctf_write_frame_r_block,
+  ctf_write_frame_m_block_header,
+  ctf_write_frame_m_block_memory,
+  ctf_write_frame_v_block,
+  ctf_write_frame_end,
+};
+
+/* Operations to write trace buffers into CTF format.  */
+
+static const struct trace_file_write_ops ctf_write_ops =
+{
+  ctf_dtor,
+  ctf_target_save,
+  ctf_start,
+  ctf_write_header,
+  ctf_write_regblock_type,
+  ctf_write_status,
+  ctf_write_uploaded_tsv,
+  ctf_write_uploaded_tp,
+  ctf_write_tdesc,
+  ctf_write_definition_end,
+  NULL,
+  &ctf_write_frame_ops,
+  ctf_end,
+};
+
+/* Return a trace writer for CTF format.  */
+
+struct trace_file_writer *
+ctf_trace_file_writer_new (void)
+{
+  struct ctf_trace_file_writer *writer = XNEW (struct ctf_trace_file_writer);
+
+  writer->base.ops = &ctf_write_ops;
+
+  return (struct trace_file_writer *) writer;
+}
+
+#if HAVE_LIBBABELTRACE
+/* Use libbabeltrace to read CTF data.  The libbabeltrace provides
+   iterator to iterate over each event in CTF data and APIs to get
+   details of event and packet, so it is very convenient to use
+   libbabeltrace to access events in CTF.  */
+
+#include <babeltrace/babeltrace.h>
+#include <babeltrace/ctf/events.h>
+#include <babeltrace/ctf/iterator.h>
+
+/* The struct pointer for current CTF directory.  */
+static int handle_id = -1;
+static struct bt_context *ctx = NULL;
+static struct bt_ctf_iter *ctf_iter = NULL;
+/* The position of the first packet containing trace frame.  */
+static struct bt_iter_pos *start_pos;
+
+/* The name of CTF directory.  */
+static char *trace_dirname;
+
+static ctf_target ctf_ops;
+
+/* Destroy ctf iterator and context.  */
+
+static void
+ctf_destroy (void)
+{
+  if (ctf_iter != NULL)
+    {
+      bt_ctf_iter_destroy (ctf_iter);
+      ctf_iter = NULL;
+    }
+  if (ctx != NULL)
+    {
+      bt_context_put (ctx);
+      ctx = NULL;
+    }
+}
+
+/* Open CTF trace data in DIRNAME.  */
+
+static void
+ctf_open_dir (const char *dirname)
+{
+  struct bt_iter_pos begin_pos;
+  unsigned int count, i;
+  struct bt_ctf_event_decl * const *list;
+
+  ctx = bt_context_create ();
+  if (ctx == NULL)
+    error (_("Unable to create bt_context"));
+  handle_id = bt_context_add_trace (ctx, dirname, "ctf", NULL, NULL, NULL);
+  if (handle_id < 0)
+    {
+      ctf_destroy ();
+      error (_("Unable to use libbabeltrace on directory \"%s\""),
+	     dirname);
+    }
+
+  begin_pos.type = BT_SEEK_BEGIN;
+  ctf_iter = bt_ctf_iter_create (ctx, &begin_pos, NULL);
+  if (ctf_iter == NULL)
+    {
+      ctf_destroy ();
+      error (_("Unable to create bt_iterator"));
+    }
+
+  /* Look for the declaration of register block.  Get the length of
+     array "contents" to set trace_regblock_size.  */
+
+  bt_ctf_get_event_decl_list (handle_id, ctx, &list, &count);
+  for (i = 0; i < count; i++)
+    if (strcmp ("register", bt_ctf_get_decl_event_name (list[i])) == 0)
+      {
+	const struct bt_ctf_field_decl * const *field_list;
+	const struct bt_declaration *decl;
+
+	bt_ctf_get_decl_fields (list[i], BT_EVENT_FIELDS, &field_list,
+				&count);
+
+	gdb_assert (count == 1);
+	gdb_assert (0 == strcmp ("contents",
+				 bt_ctf_get_decl_field_name (field_list[0])));
+	decl = bt_ctf_get_decl_from_field_decl (field_list[0]);
+	trace_regblock_size = bt_ctf_get_array_len (decl);
+
+	break;
+      }
+}
+
+#define SET_INT32_FIELD(EVENT, SCOPE, VAR, FIELD)			\
+  (VAR)->FIELD = (int) bt_ctf_get_int64 (bt_ctf_get_field ((EVENT),	\
+							   (SCOPE),	\
+							   #FIELD))
+
+#define SET_ENUM_FIELD(EVENT, SCOPE, VAR, TYPE, FIELD)			\
+  (VAR)->FIELD = (TYPE) bt_ctf_get_int64 (bt_ctf_get_field ((EVENT),	\
+							    (SCOPE),	\
+							    #FIELD))
+
+
+/* EVENT is the "status" event and TS is filled in.  */
+
+static void
+ctf_read_status (struct bt_ctf_event *event, struct trace_status *ts)
+{
+  const struct bt_definition *scope
+    = bt_ctf_get_top_level_scope (event, BT_EVENT_FIELDS);
+
+  SET_ENUM_FIELD (event, scope, ts, enum trace_stop_reason, stop_reason);
+  SET_INT32_FIELD (event, scope, ts, stopping_tracepoint);
+  SET_INT32_FIELD (event, scope, ts, traceframe_count);
+  SET_INT32_FIELD (event, scope, ts, traceframes_created);
+  SET_INT32_FIELD (event, scope, ts, buffer_free);
+  SET_INT32_FIELD (event, scope, ts, buffer_size);
+  SET_INT32_FIELD (event, scope, ts, disconnected_tracing);
+  SET_INT32_FIELD (event, scope, ts, circular_buffer);
+
+  bt_iter_next (bt_ctf_get_iter (ctf_iter));
+}
+
+/* Read the events "tsv_def" one by one, extract its contents and fill
+   in the list UPLOADED_TSVS.  */
+
+static void
+ctf_read_tsv (struct uploaded_tsv **uploaded_tsvs)
+{
+  gdb_assert (ctf_iter != NULL);
+
+  while (1)
+    {
+      struct bt_ctf_event *event;
+      const struct bt_definition *scope;
+      const struct bt_definition *def;
+      uint32_t event_id;
+      struct uploaded_tsv *utsv = NULL;
+
+      event = bt_ctf_iter_read_event (ctf_iter);
+      scope = bt_ctf_get_top_level_scope (event,
+					  BT_STREAM_EVENT_HEADER);
+      event_id = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope,
+						      "id"));
+      if (event_id != CTF_EVENT_ID_TSV_DEF)
+	break;
+
+      scope = bt_ctf_get_top_level_scope (event,
+					  BT_EVENT_FIELDS);
+
+      def = bt_ctf_get_field (event, scope, "number");
+      utsv = get_uploaded_tsv ((int32_t) bt_ctf_get_int64 (def),
+			       uploaded_tsvs);
+
+      def = bt_ctf_get_field (event, scope, "builtin");
+      utsv->builtin = (int32_t) bt_ctf_get_int64 (def);
+      def = bt_ctf_get_field (event, scope, "initial_value");
+      utsv->initial_value = bt_ctf_get_int64 (def);
+
+      def = bt_ctf_get_field (event, scope, "name");
+      utsv->name =  xstrdup (bt_ctf_get_string (def));
+
+      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
+	break;
+    }
+
+}
+
+/* Read the value of element whose index is NUM from CTF and write it
+   to the corresponding VAR->ARRAY. */
+
+#define SET_ARRAY_FIELD(EVENT, SCOPE, VAR, NUM, ARRAY)	\
+  do							\
+    {							\
+      uint32_t lu32, i;						\
+      const struct bt_definition *def;				\
+								\
+      lu32 = (uint32_t) bt_ctf_get_uint64 (bt_ctf_get_field ((EVENT),	\
+							     (SCOPE),	\
+							     #NUM));	\
+      def = bt_ctf_get_field ((EVENT), (SCOPE), #ARRAY);		\
+      for (i = 0; i < lu32; i++)					\
+	{								\
+	  const struct bt_definition *element				\
+	    = bt_ctf_get_index ((EVENT), def, i);			\
+									\
+	  (VAR)->ARRAY.emplace_back					\
+	    (xstrdup (bt_ctf_get_string (element)));			\
+	}								\
+    }									\
+  while (0)
+
+/* Read a string from CTF and set VAR->FIELD. If the length of string
+   is zero, set VAR->FIELD to NULL.  */
+
+#define SET_STRING_FIELD(EVENT, SCOPE, VAR, FIELD)			\
+  do									\
+    {									\
+      const char *p = bt_ctf_get_string (bt_ctf_get_field ((EVENT),	\
+							   (SCOPE),	\
+							   #FIELD));	\
+									\
+      if (strlen (p) > 0)						\
+	(VAR)->FIELD.reset (xstrdup (p));				\
+      else								\
+	(VAR)->FIELD = NULL;						\
+    }									\
+  while (0)
+
+/* Read the events "tp_def" one by one, extract its contents and fill
+   in the list UPLOADED_TPS.  */
+
+static void
+ctf_read_tp (struct uploaded_tp **uploaded_tps)
+{
+  gdb_assert (ctf_iter != NULL);
+
+  while (1)
+    {
+      struct bt_ctf_event *event;
+      const struct bt_definition *scope;
+      uint32_t u32;
+      int32_t int32;
+      uint64_t u64;
+      struct uploaded_tp *utp = NULL;
+
+      event = bt_ctf_iter_read_event (ctf_iter);
+      scope = bt_ctf_get_top_level_scope (event,
+					  BT_STREAM_EVENT_HEADER);
+      u32 = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope,
+						 "id"));
+      if (u32 != CTF_EVENT_ID_TP_DEF)
+	break;
+
+      scope = bt_ctf_get_top_level_scope (event,
+					  BT_EVENT_FIELDS);
+      int32 = (int32_t) bt_ctf_get_int64 (bt_ctf_get_field (event,
+							    scope,
+							    "number"));
+      u64 = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope,
+						 "addr"));
+      utp = get_uploaded_tp (int32, u64,  uploaded_tps);
+
+      SET_INT32_FIELD (event, scope, utp, enabled);
+      SET_INT32_FIELD (event, scope, utp, step);
+      SET_INT32_FIELD (event, scope, utp, pass);
+      SET_INT32_FIELD (event, scope, utp, hit_count);
+      SET_ENUM_FIELD (event, scope, utp, enum bptype, type);
+
+      /* Read 'cmd_strings'.  */
+      SET_ARRAY_FIELD (event, scope, utp, cmd_num, cmd_strings);
+      /* Read 'actions'.  */
+      SET_ARRAY_FIELD (event, scope, utp, action_num, actions);
+      /* Read 'step_actions'.  */
+      SET_ARRAY_FIELD (event, scope, utp, step_action_num,
+		       step_actions);
+
+      SET_STRING_FIELD(event, scope, utp, at_string);
+      SET_STRING_FIELD(event, scope, utp, cond_string);
+
+      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
+	break;
+    }
+}
+
+/* This is the implementation of target_ops method to_open.  Open CTF
+   trace data, read trace status, trace state variables and tracepoint
+   definitions from the first packet.  Set the start position at the
+   second packet which contains events on trace blocks.  */
+
+static void
+ctf_target_open (const char *dirname, int from_tty)
+{
+  struct bt_ctf_event *event;
+  uint32_t event_id;
+  const struct bt_definition *scope;
+  struct uploaded_tsv *uploaded_tsvs = NULL;
+  struct uploaded_tp *uploaded_tps = NULL;
+
+  if (!dirname)
+    error (_("No CTF directory specified."));
+
+  ctf_open_dir (dirname);
+
+  target_preopen (from_tty);
+
+  /* Skip the first packet which about the trace status.  The first
+     event is "frame".  */
+  event = bt_ctf_iter_read_event (ctf_iter);
+  scope = bt_ctf_get_top_level_scope (event, BT_STREAM_EVENT_HEADER);
+  event_id = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
+  if (event_id != CTF_EVENT_ID_FRAME)
+    error (_("Wrong event id of the first event"));
+  /* The second event is "status".  */
+  bt_iter_next (bt_ctf_get_iter (ctf_iter));
+  event = bt_ctf_iter_read_event (ctf_iter);
+  scope = bt_ctf_get_top_level_scope (event, BT_STREAM_EVENT_HEADER);
+  event_id = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
+  if (event_id != CTF_EVENT_ID_STATUS)
+    error (_("Wrong event id of the second event"));
+  ctf_read_status (event, current_trace_status ());
+
+  ctf_read_tsv (&uploaded_tsvs);
+
+  ctf_read_tp (&uploaded_tps);
+
+  event = bt_ctf_iter_read_event (ctf_iter);
+  /* EVENT can be NULL if we've already gone to the end of stream of
+     events.  */
+  if (event != NULL)
+    {
+      scope = bt_ctf_get_top_level_scope (event,
+					  BT_STREAM_EVENT_HEADER);
+      event_id = bt_ctf_get_uint64 (bt_ctf_get_field (event,
+						      scope, "id"));
+      if (event_id != CTF_EVENT_ID_FRAME)
+	error (_("Wrong event id of the first event of the second packet"));
+    }
+
+  start_pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
+  gdb_assert (start_pos->type == BT_SEEK_RESTORE);
+
+  trace_dirname = xstrdup (dirname);
+  push_target (&ctf_ops);
+
+  inferior_appeared (current_inferior (), CTF_PID);
+  inferior_ptid = ptid_t (CTF_PID);
+  add_thread_silent (inferior_ptid);
+
+  merge_uploaded_trace_state_variables (&uploaded_tsvs);
+  merge_uploaded_tracepoints (&uploaded_tps);
+
+  post_create_inferior (&ctf_ops, from_tty);
+}
+
+/* This is the implementation of target_ops method to_close.  Destroy
+   CTF iterator and context.  */
+
+void
+ctf_target::close ()
+{
+  ctf_destroy ();
+  xfree (trace_dirname);
+  trace_dirname = NULL;
+
+  inferior_ptid = null_ptid;	/* Avoid confusion from thread stuff.  */
+  exit_inferior_silent (current_inferior ());
+
+  trace_reset_local_state ();
+}
+
+/* This is the implementation of target_ops method to_files_info.
+   Print the directory name of CTF trace data.  */
+
+void
+ctf_target::files_info ()
+{
+  printf_filtered ("\t`%s'\n", trace_dirname);
+}
+
+/* This is the implementation of target_ops method to_fetch_registers.
+   Iterate over events whose name is "register" in current frame,
+   extract contents from events, and set REGCACHE with the contents.
+   If no matched events are found, mark registers unavailable.  */
+
+void
+ctf_target::fetch_registers (struct regcache *regcache, int regno)
+{
+  struct gdbarch *gdbarch = regcache->arch ();
+  struct bt_ctf_event *event = NULL;
+  struct bt_iter_pos *pos;
+
+  /* An uninitialized reg size says we're not going to be
+     successful at getting register blocks.  */
+  if (trace_regblock_size == 0)
+    return;
+
+  gdb_assert (ctf_iter != NULL);
+  /* Save the current position.  */
+  pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
+  gdb_assert (pos->type == BT_SEEK_RESTORE);
+
+  while (1)
+    {
+      const char *name;
+      struct bt_ctf_event *event1;
+
+      event1 = bt_ctf_iter_read_event (ctf_iter);
+
+      name = bt_ctf_event_name (event1);
+
+      if (name == NULL || strcmp (name, "frame") == 0)
+	break;
+      else if (strcmp (name, "register") == 0)
+	{
+	  event = event1;
+	  break;
+	}
+
+      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
+	break;
+    }
+
+  /* Restore the position.  */
+  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
+
+  if (event != NULL)
+    {
+      int offset, regsize, regn;
+      const struct bt_definition *scope
+	= bt_ctf_get_top_level_scope (event,
+				      BT_EVENT_FIELDS);
+      const struct bt_definition *array
+	= bt_ctf_get_field (event, scope, "contents");
+      gdb_byte *regs = (gdb_byte *) bt_ctf_get_char_array (array);
+
+      /* Assume the block is laid out in GDB register number order,
+	 each register with the size that it has in GDB.  */
+      offset = 0;
+      for (regn = 0; regn < gdbarch_num_regs (gdbarch); regn++)
+	{
+	  regsize = register_size (gdbarch, regn);
+	  /* Make sure we stay within block bounds.  */
+	  if (offset + regsize >= trace_regblock_size)
+	    break;
+	  if (regcache->get_register_status (regn) == REG_UNKNOWN)
+	    {
+	      if (regno == regn)
+		{
+		  regcache->raw_supply (regno, regs + offset);
+		  break;
+		}
+	      else if (regno == -1)
+		{
+		  regcache->raw_supply (regn, regs + offset);
+		}
+	    }
+	  offset += regsize;
+	}
+    }
+  else
+    tracefile_fetch_registers (regcache, regno);
+}
+
+/* This is the implementation of target_ops method to_xfer_partial.
+   Iterate over events whose name is "memory" in
+   current frame, extract the address and length from events.  If
+   OFFSET is within the range, read the contents from events to
+   READBUF.  */
+
+enum target_xfer_status
+ctf_target::xfer_partial (enum target_object object,
+			  const char *annex, gdb_byte *readbuf,
+			  const gdb_byte *writebuf, ULONGEST offset,
+			  ULONGEST len, ULONGEST *xfered_len)
+{
+  /* We're only doing regular memory for now.  */
+  if (object != TARGET_OBJECT_MEMORY)
+    return TARGET_XFER_E_IO;
+
+  if (readbuf == NULL)
+    error (_("ctf_xfer_partial: trace file is read-only"));
+
+  if (get_traceframe_number () != -1)
+    {
+      struct bt_iter_pos *pos;
+      enum target_xfer_status res;
+      /* Records the lowest available address of all blocks that
+	 intersects the requested range.  */
+      ULONGEST low_addr_available = 0;
+
+      gdb_assert (ctf_iter != NULL);
+      /* Save the current position.  */
+      pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
+      gdb_assert (pos->type == BT_SEEK_RESTORE);
+
+      /* Iterate through the traceframe's blocks, looking for
+	 memory.  */
+      while (1)
+	{
+	  ULONGEST amt;
+	  uint64_t maddr;
+	  uint16_t mlen;
+	  const struct bt_definition *scope;
+	  const struct bt_definition *def;
+	  struct bt_ctf_event *event
+	    = bt_ctf_iter_read_event (ctf_iter);
+	  const char *name = bt_ctf_event_name (event);
+
+	  if (name == NULL || strcmp (name, "frame") == 0)
+	    break;
+	  else if (strcmp (name, "memory") != 0)
+	    {
+	      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
+		break;
+
+	      continue;
+	    }
+
+	  scope = bt_ctf_get_top_level_scope (event,
+					      BT_EVENT_FIELDS);
+
+	  def = bt_ctf_get_field (event, scope, "address");
+	  maddr = bt_ctf_get_uint64 (def);
+	  def = bt_ctf_get_field (event, scope, "length");
+	  mlen = (uint16_t) bt_ctf_get_uint64 (def);
+
+	  /* If the block includes the first part of the desired
+	     range, return as much it has; GDB will re-request the
+	     remainder, which might be in a different block of this
+	     trace frame.  */
+	  if (maddr <= offset && offset < (maddr + mlen))
+	    {
+	      const struct bt_definition *array
+		= bt_ctf_get_field (event, scope, "contents");
+	      gdb_byte *contents;
+	      int k;
+
+	      contents = (gdb_byte *) xmalloc (mlen);
+
+	      for (k = 0; k < mlen; k++)
+		{
+		  const struct bt_definition *element
+		    = bt_ctf_get_index (event, array, k);
+
+		  contents[k] = (gdb_byte) bt_ctf_get_uint64 (element);
+		}
+
+	      amt = (maddr + mlen) - offset;
+	      if (amt > len)
+		amt = len;
+
+	      memcpy (readbuf, &contents[offset - maddr], amt);
+
+	      xfree (contents);
+
+	      /* Restore the position.  */
+	      bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
+
+	      if (amt == 0)
+		return TARGET_XFER_EOF;
+	      else
+		{
+		  *xfered_len = amt;
+		  return TARGET_XFER_OK;
+		}
+	    }
+
+	  if (offset < maddr && maddr < (offset + len))
+	    if (low_addr_available == 0 || low_addr_available > maddr)
+	      low_addr_available = maddr;
+
+	  if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
+	    break;
+	}
+
+      /* Restore the position.  */
+      bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
+
+      /* Requested memory is unavailable in the context of traceframes,
+	 and this address falls within a read-only section, fallback
+	 to reading from executable, up to LOW_ADDR_AVAILABLE  */
+      if (offset < low_addr_available)
+	len = std::min (len, low_addr_available - offset);
+      res = exec_read_partial_read_only (readbuf, offset, len, xfered_len);
+
+      if (res == TARGET_XFER_OK)
+	return TARGET_XFER_OK;
+      else
+	{
+	  /* No use trying further, we know some memory starting
+	     at MEMADDR isn't available.  */
+	  *xfered_len = len;
+	  return TARGET_XFER_UNAVAILABLE;
+	}
+    }
+  else
+    {
+      /* Fallback to reading from read-only sections.  */
+      return section_table_read_available_memory (readbuf, offset, len, xfered_len);
+    }
+}
+
+/* This is the implementation of target_ops method
+   to_get_trace_state_variable_value.
+   Iterate over events whose name is "tsv" in current frame.  When the
+   trace variable is found, set the value of it to *VAL and return
+   true, otherwise return false.  */
+
+bool
+ctf_target::get_trace_state_variable_value (int tsvnum, LONGEST *val)
+{
+  struct bt_iter_pos *pos;
+  bool found = false;
+
+  gdb_assert (ctf_iter != NULL);
+  /* Save the current position.  */
+  pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
+  gdb_assert (pos->type == BT_SEEK_RESTORE);
+
+  /* Iterate through the traceframe's blocks, looking for 'V'
+     block.  */
+  while (1)
+    {
+      struct bt_ctf_event *event
+	= bt_ctf_iter_read_event (ctf_iter);
+      const char *name = bt_ctf_event_name (event);
+
+      if (name == NULL || strcmp (name, "frame") == 0)
+	break;
+      else if (strcmp (name, "tsv") == 0)
+	{
+	  const struct bt_definition *scope;
+	  const struct bt_definition *def;
+
+	  scope = bt_ctf_get_top_level_scope (event,
+					      BT_EVENT_FIELDS);
+
+	  def = bt_ctf_get_field (event, scope, "num");
+	  if (tsvnum == (int32_t) bt_ctf_get_uint64 (def))
+	    {
+	      def = bt_ctf_get_field (event, scope, "val");
+	      *val = bt_ctf_get_uint64 (def);
+
+	      found = true;
+	    }
+	}
+
+      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
+	break;
+    }
+
+  /* Restore the position.  */
+  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
+
+  return found;
+}
+
+/* Return the tracepoint number in "frame" event.  */
+
+static int
+ctf_get_tpnum_from_frame_event (struct bt_ctf_event *event)
+{
+  /* The packet context of events has a field "tpnum".  */
+  const struct bt_definition *scope
+    = bt_ctf_get_top_level_scope (event, BT_STREAM_PACKET_CONTEXT);
+  uint64_t tpnum
+    = bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "tpnum"));
+
+  return (int) tpnum;
+}
+
+/* Return the address at which the current frame was collected.  */
+
+static CORE_ADDR
+ctf_get_traceframe_address (void)
+{
+  struct bt_ctf_event *event = NULL;
+  struct bt_iter_pos *pos;
+  CORE_ADDR addr = 0;
+
+  gdb_assert (ctf_iter != NULL);
+  pos  = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
+  gdb_assert (pos->type == BT_SEEK_RESTORE);
+
+  while (1)
+    {
+      const char *name;
+      struct bt_ctf_event *event1;
+
+      event1 = bt_ctf_iter_read_event (ctf_iter);
+
+      name = bt_ctf_event_name (event1);
+
+      if (name == NULL)
+	break;
+      else if (strcmp (name, "frame") == 0)
+	{
+	  event = event1;
+	  break;
+	}
+
+      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
+	break;
+    }
+
+  if (event != NULL)
+    {
+      int tpnum = ctf_get_tpnum_from_frame_event (event);
+      struct tracepoint *tp
+	= get_tracepoint_by_number_on_target (tpnum);
+
+      if (tp && tp->loc)
+	addr = tp->loc->address;
+    }
+
+  /* Restore the position.  */
+  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
+
+  return addr;
+}
+
+/* This is the implementation of target_ops method to_trace_find.
+   Iterate the events whose name is "frame", extract the tracepoint
+   number in it.  Return traceframe number when matched.  */
+
+int
+ctf_target::trace_find (enum trace_find_type type, int num,
+			CORE_ADDR addr1, CORE_ADDR addr2, int *tpp)
+{
+  int tfnum = 0;
+  int found = 0;
+
+  if (num == -1)
+    {
+      if (tpp != NULL)
+	*tpp = -1;
+      return -1;
+    }
+
+  gdb_assert (ctf_iter != NULL);
+  /* Set iterator back to the start.  */
+  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), start_pos);
+
+  while (1)
+    {
+      struct bt_ctf_event *event;
+      const char *name;
+
+      event = bt_ctf_iter_read_event (ctf_iter);
+
+      name = bt_ctf_event_name (event);
+
+      if (event == NULL || name == NULL)
+	break;
+
+      if (strcmp (name, "frame") == 0)
+	{
+	  CORE_ADDR tfaddr;
+
+	  if (type == tfind_number)
+	    {
+	      /* Looking for a specific trace frame.  */
+	      if (tfnum == num)
+		found = 1;
+	    }
+	  else
+	    {
+	      /* Start from the _next_ trace frame.  */
+	      if (tfnum > get_traceframe_number ())
+		{
+		  switch (type)
+		    {
+		    case tfind_tp:
+		      {
+			struct tracepoint *tp = get_tracepoint (num);
+
+			if (tp != NULL
+			    && (tp->number_on_target
+				== ctf_get_tpnum_from_frame_event (event)))
+			  found = 1;
+			break;
+		      }
+		    case tfind_pc:
+		      tfaddr = ctf_get_traceframe_address ();
+		      if (tfaddr == addr1)
+			found = 1;
+		      break;
+		    case tfind_range:
+		      tfaddr = ctf_get_traceframe_address ();
+		      if (addr1 <= tfaddr && tfaddr <= addr2)
+			found = 1;
+		      break;
+		    case tfind_outside:
+		      tfaddr = ctf_get_traceframe_address ();
+		      if (!(addr1 <= tfaddr && tfaddr <= addr2))
+			found = 1;
+		      break;
+		    default:
+		      internal_error (__FILE__, __LINE__, _("unknown tfind type"));
+		    }
+		}
+	    }
+	  if (found)
+	    {
+	      if (tpp != NULL)
+		*tpp = ctf_get_tpnum_from_frame_event (event);
+
+	      /* Skip the event "frame".  */
+	      bt_iter_next (bt_ctf_get_iter (ctf_iter));
+
+	      return tfnum;
+	    }
+	  tfnum++;
+	}
+
+      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
+	break;
+    }
+
+  return -1;
+}
+
+/* This is the implementation of target_ops method to_traceframe_info.
+   Iterate the events whose name is "memory", in current
+   frame, extract memory range information, and return them in
+   traceframe_info.  */
+
+traceframe_info_up
+ctf_target::traceframe_info ()
+{
+  traceframe_info_up info (new struct traceframe_info);
+  const char *name;
+  struct bt_iter_pos *pos;
+
+  gdb_assert (ctf_iter != NULL);
+  /* Save the current position.  */
+  pos = bt_iter_get_pos (bt_ctf_get_iter (ctf_iter));
+  gdb_assert (pos->type == BT_SEEK_RESTORE);
+
+  do
+    {
+      struct bt_ctf_event *event
+	= bt_ctf_iter_read_event (ctf_iter);
+
+      name = bt_ctf_event_name (event);
+
+      if (name == NULL || strcmp (name, "register") == 0
+	  || strcmp (name, "frame") == 0)
+	;
+      else if (strcmp (name, "memory") == 0)
+	{
+	  const struct bt_definition *scope
+	    = bt_ctf_get_top_level_scope (event,
+					  BT_EVENT_FIELDS);
+	  const struct bt_definition *def;
+
+	  def = bt_ctf_get_field (event, scope, "address");
+	  CORE_ADDR start = bt_ctf_get_uint64 (def);
+
+	  def = bt_ctf_get_field (event, scope, "length");
+	  int length = (uint16_t) bt_ctf_get_uint64 (def);
+
+	  info->memory.emplace_back (start, length);
+	}
+      else if (strcmp (name, "tsv") == 0)
+	{
+	  int vnum;
+	  const struct bt_definition *scope
+	    = bt_ctf_get_top_level_scope (event,
+					  BT_EVENT_FIELDS);
+	  const struct bt_definition *def;
+
+	  def = bt_ctf_get_field (event, scope, "num");
+	  vnum = (int) bt_ctf_get_uint64 (def);
+	  info->tvars.push_back (vnum);
+	}
+      else
+	{
+	  warning (_("Unhandled trace block type (%s) "
+		     "while building trace frame info."),
+		   name);
+	}
+
+      if (bt_iter_next (bt_ctf_get_iter (ctf_iter)) < 0)
+	break;
+    }
+  while (name != NULL && strcmp (name, "frame") != 0);
+
+  /* Restore the position.  */
+  bt_iter_set_pos (bt_ctf_get_iter (ctf_iter), pos);
+
+  return info;
+}
+
+#endif
+
+/* module initialization */
+
+void
+_initialize_ctf (void)
+{
+#if HAVE_LIBBABELTRACE
+  add_target (ctf_target_info, ctf_target_open, filename_completer);
+#endif
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tracectf.h ./gdb/tracectf.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tracectf.h	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/tracectf.h	2019-10-08 01:49:31.000000000 +0000
@@ -0,0 +1,25 @@
+/* CTF format support.
+
+   Copyright (C) 2012-2019 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/>.  */
+
+#ifndef CTF_H
+#define CTF_H
+
+extern struct trace_file_writer *ctf_trace_file_writer_new (void);
+
+#endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tracefile.c ./gdb/tracefile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tracefile.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/tracefile.c	2019-10-08 01:49:31.000000000 +0000
@@ -19,7 +19,7 @@
 
 #include "defs.h"
 #include "tracefile.h"
-#include "ctf.h"
+#include "tracectf.h"
 #include "exec.h"
 #include "regcache.h"
 #include "gdbsupport/byte-vector.h"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tracepoint.c ./gdb/tracepoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tracepoint.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/tracepoint.c	2019-10-08 01:49:31.000000000 +0000
@@ -51,12 +51,12 @@
 #include "memrange.h"
 #include "cli/cli-utils.h"
 #include "probe.h"
-#include "ctf.h"
 #include "gdbsupport/filestuff.h"
 #include "gdbsupport/rsp-low.h"
 #include "tracefile.h"
 #include "location.h"
 #include <algorithm>
+#include "cli/cli-style.h"
 
 #include <unistd.h>
 
@@ -435,6 +435,7 @@ tvariables_info_1 (void)
 	uiout->field_string ("name", std::string ("$") + tsv.name);
 	uiout->field_string ("initial", plongest (tsv.initial_value));
 
+	ui_file_style style;
 	if (tsv.value_known)
 	  c = plongest (tsv.value);
 	else if (uiout->is_mi_like_p ())
@@ -443,13 +444,19 @@ tvariables_info_1 (void)
 	     undefined does not seem important enough to represent.  */
 	  c = NULL;
 	else if (current_trace_status ()->running || traceframe_number >= 0)
-	  /* The value is/was defined, but we don't have it.  */
-	  c = "<unknown>";
+	  {
+	    /* The value is/was defined, but we don't have it.  */
+	    c = "<unknown>";
+	    style = metadata_style.style ();
+	  }
 	else
-	  /* It is not meaningful to ask about the value.  */
-	  c = "<undefined>";
+	  {
+	    /* It is not meaningful to ask about the value.  */
+	    c = "<undefined>";
+	    style = metadata_style.style ();
+	  }
 	if (c)
-	  uiout->field_string ("current", c);
+	  uiout->field_string ("current", c, style);
 	uiout->text ("\n");
       }
   }
@@ -3683,7 +3690,7 @@ print_one_static_tracepoint_marker (int 
     {
       uiout->text ("in ");
       uiout->field_string ("func", SYMBOL_PRINT_NAME (sym),
-			   ui_out_style_kind::FUNCTION);
+			   function_name_style.style ());
       uiout->wrap_hint (wrap_indent);
       uiout->text (" at ");
     }
@@ -3694,7 +3701,7 @@ print_one_static_tracepoint_marker (int 
     {
       uiout->field_string ("file",
 			   symtab_to_filename_for_display (sal.symtab),
-			   ui_out_style_kind::FILE);
+			   file_name_style.style ());
       uiout->text (":");
 
       if (uiout->is_mi_like_p ())
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tui/tui-out.c ./gdb/tui/tui-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tui/tui-out.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/tui/tui-out.c	2019-10-08 01:49:31.000000000 +0000
@@ -52,7 +52,7 @@ tui_ui_out::do_field_signed (int fldno, 
 void
 tui_ui_out::do_field_string (int fldno, int width, ui_align align,
 			     const char *fldname, const char *string,
-			     ui_out_style_kind style)
+			     const ui_file_style &style)
 {
   if (suppress_output ())
     return;
@@ -70,15 +70,15 @@ tui_ui_out::do_field_string (int fldno, 
 
 void
 tui_ui_out::do_field_fmt (int fldno, int width, ui_align align,
-			  const char *fldname, const char *format,
-			  va_list args)
+			  const char *fldname, const ui_file_style &style,
+			  const char *format, va_list args)
 {
   if (suppress_output ())
     return;
 
   m_start_of_line++;
 
-  cli_ui_out::do_field_fmt (fldno, width, align, fldname, format, args);
+  cli_ui_out::do_field_fmt (fldno, width, align, fldname, style, format, args);
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tui/tui-out.h ./gdb/tui/tui-out.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/tui/tui-out.h	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/tui/tui-out.h	2019-10-08 01:49:31.000000000 +0000
@@ -35,10 +35,11 @@ protected:
   void do_field_signed (int fldno, int width, ui_align align, const char *fldname,
 			LONGEST value) override;
   void do_field_string (int fldno, int width, ui_align align, const char *fldname,
-			const char *string, ui_out_style_kind style) override;
+			const char *string, const ui_file_style &style) override;
   void do_field_fmt (int fldno, int width, ui_align align, const char *fldname,
-		  const char *format, va_list args) override
-    ATTRIBUTE_PRINTF (6,0);
+		     const ui_file_style &style,
+		     const char *format, va_list args) override
+    ATTRIBUTE_PRINTF (7, 0);
   void do_text (const char *string) override;
 
 private:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/typeprint.c ./gdb/typeprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/typeprint.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/typeprint.c	2019-10-08 01:49:31.000000000 +0000
@@ -36,6 +36,7 @@
 #include "cli/cli-utils.h"
 #include "extension.h"
 #include "completer.h"
+#include "cli/cli-style.h"
 
 const struct type_print_options type_print_raw_options =
 {
@@ -415,7 +416,8 @@ type_to_string (struct type *type)
 void
 type_print_unknown_return_type (struct ui_file *stream)
 {
-  fprintf_filtered (stream, _("<unknown return type>"));
+  fprintf_styled (stream, metadata_style.style (),
+		  _("<unknown return type>"));
 }
 
 /* See typeprint.h.  */
@@ -862,7 +864,7 @@ Show the number of recursive nested type
 void
 val_print_not_allocated (struct ui_file *stream)
 {
-  fprintf_filtered (stream, _("<not allocated>"));
+  fprintf_styled (stream, metadata_style.style (), _("<not allocated>"));
 }
 
 /* Print <not associated> status to stream STREAM.  */
@@ -870,5 +872,5 @@ val_print_not_allocated (struct ui_file 
 void
 val_print_not_associated (struct ui_file *stream)
 {
-  fprintf_filtered (stream, _("<not associated>"));
+  fprintf_styled (stream, metadata_style.style (), _("<not associated>"));
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ui-out.c ./gdb/ui-out.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ui-out.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/ui-out.c	2019-10-08 01:49:31.000000000 +0000
@@ -24,6 +24,8 @@
 #include "expression.h"		/* For language.h */
 #include "language.h"
 #include "ui-out.h"
+#include "gdbsupport/format.h"
+#include "cli/cli-style.h"
 
 #include <vector>
 #include <memory>
@@ -483,12 +485,12 @@ ui_out::field_core_addr (const char *fld
 			 CORE_ADDR address)
 {
   field_string (fldname, print_core_address (gdbarch, address),
-		ui_out_style_kind::ADDRESS);
+		address_style.style ());
 }
 
 void
 ui_out::field_stream (const char *fldname, string_file &stream,
-		      ui_out_style_kind style)
+		      const ui_file_style &style)
 {
   if (!stream.empty ())
     field_string (fldname, stream.c_str (), style);
@@ -513,7 +515,7 @@ ui_out::field_skip (const char *fldname)
 
 void
 ui_out::field_string (const char *fldname, const char *string,
-		      ui_out_style_kind style)
+		      const ui_file_style &style)
 {
   int fldno;
   int width;
@@ -543,7 +545,25 @@ ui_out::field_fmt (const char *fldname, 
 
   va_start (args, format);
 
-  do_field_fmt (fldno, width, align, fldname, format, args);
+  do_field_fmt (fldno, width, align, fldname, ui_file_style (), format, args);
+
+  va_end (args);
+}
+
+void
+ui_out::field_fmt (const char *fldname, const ui_file_style &style,
+		   const char *format, ...)
+{
+  va_list args;
+  int fldno;
+  int width;
+  ui_align align;
+
+  verify_field (&fldno, &width, &align);
+
+  va_start (args, format);
+
+  do_field_fmt (fldno, width, align, fldname, style, format, args);
 
   va_end (args);
 }
@@ -561,12 +581,190 @@ ui_out::text (const char *string)
 }
 
 void
-ui_out::message (const char *format, ...)
+ui_out::call_do_message (const ui_file_style &style, const char *format,
+			 ...)
 {
   va_list args;
 
   va_start (args, format);
-  do_message (format, args);
+  do_message (style, format, args);
+  va_end (args);
+}
+
+void
+ui_out::vmessage (const ui_file_style &in_style, const char *format,
+		  va_list args)
+{
+  format_pieces fpieces (&format, true);
+
+  ui_file_style style = in_style;
+
+  for (auto &&piece : fpieces)
+    {
+      const char *current_substring = piece.string;
+
+      gdb_assert (piece.n_int_args >= 0 && piece.n_int_args <= 2);
+      int intvals[2] = { 0, 0 };
+      for (int i = 0; i < piece.n_int_args; ++i)
+	intvals[i] = va_arg (args, int);
+
+      /* The only ones we support for now.  */
+      gdb_assert (piece.n_int_args == 0
+		  || piece.argclass == string_arg
+		  || piece.argclass == int_arg
+		  || piece.argclass == long_arg);
+
+      switch (piece.argclass)
+	{
+	case string_arg:
+	  {
+	    const char *str = va_arg (args, const char *);
+	    switch (piece.n_int_args)
+	      {
+	      case 0:
+		call_do_message (style, current_substring, str);
+		break;
+	      case 1:
+		call_do_message (style, current_substring, intvals[0], str);
+		break;
+	      case 2:
+		call_do_message (style, current_substring,
+				 intvals[0], intvals[1], str);
+		break;
+	      }
+	  }
+	  break;
+	case wide_string_arg:
+	  gdb_assert_not_reached (_("wide_string_arg not supported in vmessage"));
+	  break;
+	case wide_char_arg:
+	  gdb_assert_not_reached (_("wide_char_arg not supported in vmessage"));
+	  break;
+	case long_long_arg:
+	  call_do_message (style, current_substring, va_arg (args, long long));
+	  break;
+	case int_arg:
+	  {
+	    int val = va_arg (args, int);
+	    switch (piece.n_int_args)
+	      {
+	      case 0:
+		call_do_message (style, current_substring, val);
+		break;
+	      case 1:
+		call_do_message (style, current_substring, intvals[0], val);
+		break;
+	      case 2:
+		call_do_message (style, current_substring,
+				 intvals[0], intvals[1], val);
+		break;
+	      }
+	  }
+	  break;
+	case long_arg:
+	  {
+	    long val = va_arg (args, long);
+	    switch (piece.n_int_args)
+	      {
+	      case 0:
+		call_do_message (style, current_substring, val);
+		break;
+	      case 1:
+		call_do_message (style, current_substring, intvals[0], val);
+		break;
+	      case 2:
+		call_do_message (style, current_substring,
+				 intvals[0], intvals[1], val);
+		break;
+	      }
+	  }
+	  break;
+	case double_arg:
+	  call_do_message (style, current_substring, va_arg (args, double));
+	  break;
+	case long_double_arg:
+	  gdb_assert_not_reached (_("long_double_arg not supported in vmessage"));
+	  break;
+	case dec32float_arg:
+	  gdb_assert_not_reached (_("dec32float_arg not supported in vmessage"));
+	  break;
+	case dec64float_arg:
+	  gdb_assert_not_reached (_("dec64float_arg not supported in vmessage"));
+	  break;
+	case dec128float_arg:
+	  gdb_assert_not_reached (_("dec128float_arg not supported in vmessage"));
+	  break;
+	case ptr_arg:
+	  switch (current_substring[2])
+	    {
+	    case 'F':
+	      {
+		gdb_assert (!test_flags (disallow_ui_out_field));
+		base_field_s *bf = va_arg (args, base_field_s *);
+		switch (bf->kind)
+		  {
+		  case field_kind::SIGNED:
+		    {
+		      auto *f = (signed_field_s *) bf;
+		      field_signed (f->name, f->val);
+		    }
+		    break;
+		  case field_kind::STRING:
+		    {
+		      auto *f = (string_field_s *) bf;
+		      field_string (f->name, f->str);
+		    }
+		    break;
+		  }
+	      }
+	      break;
+	    case 's':
+	      {
+		styled_string_s *ss = va_arg (args, styled_string_s *);
+		call_do_message (ss->style, "%s", ss->str);
+	      }
+	      break;
+	    case '[':
+	      style = *va_arg (args, const ui_file_style *);
+	      break;
+	    case ']':
+	      {
+		void *arg = va_arg (args, void *);
+		gdb_assert (arg == nullptr);
+
+		style = {};
+	      }
+	      break;
+	    default:
+	      call_do_message (style, current_substring, va_arg (args, void *));
+	      break;
+	    }
+	  break;
+	case literal_piece:
+	  /* Print a portion of the format string that has no
+	     directives.  Note that this will not include any ordinary
+	     %-specs, but it might include "%%".  That is why we use
+	     call_do_message here.  Also, we pass a dummy argument
+	     because some platforms have modified GCC to include
+	     -Wformat-security by default, which will warn here if
+	     there is no argument.  */
+	  call_do_message (style, current_substring, 0);
+	  break;
+	default:
+	  internal_error (__FILE__, __LINE__,
+			  _("failed internal consistency check"));
+	}
+    }
+}
+
+void
+ui_out::message (const char *format, ...)
+{
+  va_list args;
+  va_start (args, format);
+
+  vmessage (ui_file_style (), format, args);
+
   va_end (args);
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ui-out.h ./gdb/ui-out.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ui-out.h	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/ui-out.h	2019-10-08 01:49:31.000000000 +0000
@@ -26,6 +26,7 @@
 #include <vector>
 
 #include "gdbsupport/enum-flags.h"
+#include "ui-style.h"
 
 class ui_out_level;
 class ui_out_table;
@@ -52,6 +53,12 @@ enum ui_out_flag
 {
   ui_source_list = (1 << 0),
   fix_multi_location_breakpoint_output = (1 << 1),
+  /* For CLI output, this flag is set if unfiltered output is desired.
+     This should only be used by low-level formatting functions.  */
+  unfiltered_output = (1 << 2),
+  /* This indicates that %pF should be disallowed in a printf format
+     string.  */
+  disallow_ui_out_field = (1 << 3)
 };
 
 DEF_ENUM_FLAGS_TYPE (ui_out_flag, ui_out_flags);
@@ -67,22 +74,87 @@ enum ui_out_type
     ui_out_type_list
   };
 
-/* Possible kinds of styling.  */
+/* The possible kinds of fields.  */
+enum class field_kind
+  {
+    SIGNED,
+    STRING,
+  };
+
+/* The base type of all fields that can be emitted using %pF.  */
+
+struct base_field_s
+{
+  const char *name;
+  field_kind kind;
+};
+
+/* A signed integer field, to be passed to %pF in format strings.  */
+
+struct signed_field_s : base_field_s
+{
+  LONGEST val;
+};
+
+/* Construct a temporary signed_field_s on the caller's stack and
+   return a pointer to the constructed object.  We use this because
+   it's not possible to pass a reference via va_args.  */
+
+static inline signed_field_s *
+signed_field (const char *name, LONGEST val,
+	      signed_field_s &&tmp = {})
+{
+  tmp.name = name;
+  tmp.kind = field_kind::SIGNED;
+  tmp.val = val;
+  return &tmp;
+}
 
-enum class ui_out_style_kind
+/* A string field, to be passed to %pF in format strings.  */
+
+struct string_field_s : base_field_s
+{
+  const char *str;
+};
+
+/* Construct a temporary string_field_s on the caller's stack and
+   return a pointer to the constructed object.  We use this because
+   it's not possible to pass a reference via va_args.  */
+
+static inline string_field_s *
+string_field (const char *name, const char *str,
+	      string_field_s &&tmp = {})
+{
+  tmp.name = name;
+  tmp.kind = field_kind::STRING;
+  tmp.str = str;
+  return &tmp;
+}
+
+/* A styled string.  */
+
+struct styled_string_s
 {
-  /* The default (plain) style.  */
-  DEFAULT,
-  /* File name.  */
-  FILE,
-  /* Function name.  */
-  FUNCTION,
-  /* Variable name.  */
-  VARIABLE,
-  /* Address.  */
-  ADDRESS
+  /* The style.  */
+  ui_file_style style;
+
+  /* The string.  */
+  const char *str;
 };
 
+/* Construct a temporary styled_string_s on the caller's stack and
+   return a pointer to the constructed object.  We use this because
+   it's not possible to pass a reference via va_args.  */
+
+static inline styled_string_s *
+styled_string (const ui_file_style &style, const char *str,
+	       styled_string_s &&tmp = {})
+{
+  tmp.style = style;
+  tmp.str = str;
+  return &tmp;
+}
+
 class ui_out
 {
  public:
@@ -115,17 +187,68 @@ class ui_out
   void field_core_addr (const char *fldname, struct gdbarch *gdbarch,
 			CORE_ADDR address);
   void field_string (const char *fldname, const char *string,
-		     ui_out_style_kind style = ui_out_style_kind::DEFAULT);
+		     const ui_file_style &style = ui_file_style ());
   void field_string (const char *fldname, const std::string &string);
   void field_stream (const char *fldname, string_file &stream,
-		     ui_out_style_kind style = ui_out_style_kind::DEFAULT);
+		     const ui_file_style &style = ui_file_style ());
   void field_skip (const char *fldname);
   void field_fmt (const char *fldname, const char *format, ...)
     ATTRIBUTE_PRINTF (3, 4);
+  void field_fmt (const char *fldname, const ui_file_style &style,
+		  const char *format, ...)
+    ATTRIBUTE_PRINTF (4, 5);
 
   void spaces (int numspaces);
   void text (const char *string);
+
+  /* Output a printf-style formatted string.  In addition to the usual
+     printf format specs, this supports a few GDB-specific
+     formatters:
+
+     - '%pF' - output a field.
+
+       The argument is a field, wrapped in any of the base_field_s
+       subclasses.  signed_field for integer fields, string_field for
+       string fields.  This is preferred over separate
+       uiout->field_signed(), uiout_>field_string() etc. calls when
+       the formatted message is translatable.  E.g.:
+
+         uiout->message (_("\nWatchpoint %pF deleted because the program has "
+                         "left the block in\n"
+                         "which its expression is valid.\n"),
+                         signed_field ("wpnum", b->number));
+
+     - '%p[' - output the following text in a specified style.
+       '%p]' - output the following text in the default style.
+
+       The argument to '%p[' is a ui_file_style pointer.  The argument
+       to '%p]' must be nullptr.
+
+       This is useful when you want to output some portion of a string
+       literal in some style.  E.g.:
+
+	 uiout->message (_(" %p[<repeats %u times>%p]"),
+			 metadata_style.style ().ptr (),
+			 reps, repeats, nullptr);
+
+     - '%ps' - output a styled string.
+
+       The argument is the result of a call to styled_string.  This is
+       useful when you want to output some runtime-generated string in
+       some style.  E.g.:
+
+	 uiout->message (_("this is a target address %ps.\n"),
+			 styled_string (address_style.style (),
+					paddress (gdbarch, pc)));
+
+     Note that these all "abuse" the %p printf format spec, in order
+     to be compatible with GCC's printf format checking.  This is OK
+     because code in GDB that wants to print a host address should use
+     host_address_to_string instead of %p.  */
   void message (const char *format, ...) ATTRIBUTE_PRINTF (2, 3);
+  void vmessage (const ui_file_style &in_style,
+		 const char *format, va_list args) ATTRIBUTE_PRINTF (3, 0);
+
   void wrap_hint (const char *identstring);
 
   void flush ();
@@ -169,15 +292,16 @@ class ui_out
 			      const char *fldname) = 0;
   virtual void do_field_string (int fldno, int width, ui_align align,
 				const char *fldname, const char *string,
-				ui_out_style_kind style) = 0;
+				const ui_file_style &style) = 0;
   virtual void do_field_fmt (int fldno, int width, ui_align align,
-			     const char *fldname, const char *format,
-			     va_list args)
-    ATTRIBUTE_PRINTF (6,0) = 0;
+			     const char *fldname, const ui_file_style &style,
+			     const char *format, va_list args)
+    ATTRIBUTE_PRINTF (7, 0) = 0;
   virtual void do_spaces (int numspaces) = 0;
   virtual void do_text (const char *string) = 0;
-  virtual void do_message (const char *format, va_list args)
-    ATTRIBUTE_PRINTF (2,0) = 0;
+  virtual void do_message (const ui_file_style &style,
+			   const char *format, va_list args)
+    ATTRIBUTE_PRINTF (3,0) = 0;
   virtual void do_wrap_hint (const char *identstring) = 0;
   virtual void do_flush () = 0;
   virtual void do_redirect (struct ui_file *outstream) = 0;
@@ -189,6 +313,8 @@ class ui_out
   { return false; }
 
  private:
+  void call_do_message (const ui_file_style &style, const char *format,
+			...);
 
   ui_out_flags m_flags;
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ui-style.h ./gdb/ui-style.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/ui-style.h	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/ui-style.h	2019-10-08 01:49:31.000000000 +0000
@@ -223,6 +223,12 @@ struct ui_file_style
      BUF.  */
   bool parse (const char *buf, size_t *n_read);
 
+  /* We need this because we can't pass a reference via va_args.  */
+  const ui_file_style *ptr () const
+  {
+    return this;
+  }
+
 private:
 
   color m_foreground = NONE;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/unittests/format_pieces-selftests.c ./gdb/unittests/format_pieces-selftests.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/unittests/format_pieces-selftests.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/unittests/format_pieces-selftests.c	2019-10-08 01:49:31.000000000 +0000
@@ -27,9 +27,10 @@ namespace format_pieces {
 /* Verify that parsing STR gives pieces equal to EXPECTED_PIECES.  */
 
 static void
-check (const char *str, const std::vector<format_piece> &expected_pieces)
+check (const char *str, const std::vector<format_piece> &expected_pieces,
+       bool gdb_format = false)
 {
-  ::format_pieces pieces (&str);
+  ::format_pieces pieces (&str, gdb_format);
 
   SELF_CHECK ((pieces.end () - pieces.begin ()) == expected_pieces.size ());
   SELF_CHECK (std::equal (pieces.begin (), pieces.end (),
@@ -41,28 +42,46 @@ test_escape_sequences ()
 {
   check ("This is an escape sequence: \\e",
     {
-      format_piece ("This is an escape sequence: \e", literal_piece),
+      format_piece ("This is an escape sequence: \e", literal_piece, 0),
     });
 }
 
 static void
 test_format_specifier ()
 {
-  check ("Hello %d%llx%%d", /* ARI: %ll */
+  /* The format string here ends with a % sequence, to ensure we don't
+     see a trailing empty literal piece.  */
+  check ("Hello\\t %d%llx%%d%d", /* ARI: %ll */
     {
-      format_piece ("Hello ", literal_piece),
-      format_piece ("%d", int_arg),
-      format_piece ("", literal_piece),
-      format_piece ("%llx", long_long_arg), /* ARI: %ll */
-      format_piece ("%%d", literal_piece),
+      format_piece ("Hello\t ", literal_piece, 0),
+      format_piece ("%d", int_arg, 0),
+      format_piece ("%llx", long_long_arg, 0), /* ARI: %ll */
+      format_piece ("%%d", literal_piece, 0),
+      format_piece ("%d", int_arg, 0),
     });
 }
 
 static void
+test_gdb_formats ()
+{
+  check ("Hello\\t \"%p[%pF%ps%*.*d%p]\"",
+    {
+      format_piece ("Hello\\t \"", literal_piece, 0),
+      format_piece ("%p[", ptr_arg, 0),
+      format_piece ("%pF", ptr_arg, 0),
+      format_piece ("%ps", ptr_arg, 0),
+      format_piece ("%*.*d", int_arg, 2),
+      format_piece ("%p]", ptr_arg, 0),
+      format_piece ("\"", literal_piece, 0),
+    }, true);
+}
+
+static void
 run_tests ()
 {
   test_escape_sequences ();
   test_format_specifier ();
+  test_gdb_formats ();
 }
 
 } /* namespace format_pieces */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/utils.c ./gdb/utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/utils.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/utils.c	2019-10-08 01:49:31.000000000 +0000
@@ -73,13 +73,15 @@
 #include "cli/cli-style.h"
 #include "gdbsupport/scope-exit.h"
 #include "gdbarch.h"
+#include "cli-out.h"
 
 void (*deprecated_error_begin_hook) (void);
 
 /* Prototypes for local functions */
 
 static void vfprintf_maybe_filtered (struct ui_file *, const char *,
-				     va_list, int) ATTRIBUTE_PRINTF (2, 0);
+				     va_list, bool, bool)
+  ATTRIBUTE_PRINTF (2, 0);
 
 static void fputs_maybe_filtered (const char *, struct ui_file *, int);
 
@@ -1855,6 +1857,24 @@ fputs_styled (const char *linebuffer, co
 /* See utils.h.  */
 
 void
+fputs_styled_unfiltered (const char *linebuffer, const ui_file_style &style,
+			 struct ui_file *stream)
+{
+  /* This just makes it so we emit somewhat fewer escape
+     sequences.  */
+  if (style.is_default ())
+    fputs_maybe_filtered (linebuffer, stream, 0);
+  else
+    {
+      set_output_style (stream, style);
+      fputs_maybe_filtered (linebuffer, stream, 0);
+      set_output_style (stream, ui_file_style ());
+    }
+}
+
+/* See utils.h.  */
+
+void
 fputs_highlighted (const char *str, const compiled_regex &highlight,
 		   struct ui_file *stream)
 {
@@ -2021,34 +2041,46 @@ puts_debug (char *prefix, char *string, 
    We implement three variants, vfprintf (takes a vararg list and stream),
    fprintf (takes a stream to write on), and printf (the usual).
 
-   Note also that a longjmp to top level may occur in this routine
-   (since prompt_for_continue may do so) so this routine should not be
-   called when cleanups are not in place.  */
+   Note also that this may throw a quit (since prompt_for_continue may
+   do so).  */
 
 static void
 vfprintf_maybe_filtered (struct ui_file *stream, const char *format,
-			 va_list args, int filter)
+			 va_list args, bool filter, bool gdbfmt)
 {
-  std::string linebuffer = string_vprintf (format, args);
-  fputs_maybe_filtered (linebuffer.c_str (), stream, filter);
+  if (gdbfmt)
+    {
+      ui_out_flags flags = disallow_ui_out_field;
+      if (!filter)
+	flags |= unfiltered_output;
+      cli_ui_out (stream, flags).vmessage (applied_style, format, args);
+    }
+  else
+    {
+      std::string str = string_vprintf (format, args);
+      fputs_maybe_filtered (str.c_str (), stream, filter);
+    }
 }
 
 
 void
 vfprintf_filtered (struct ui_file *stream, const char *format, va_list args)
 {
-  vfprintf_maybe_filtered (stream, format, args, 1);
+  vfprintf_maybe_filtered (stream, format, args, true, true);
 }
 
 void
 vfprintf_unfiltered (struct ui_file *stream, const char *format, va_list args)
 {
-  std::string linebuffer = string_vprintf (format, args);
   if (debug_timestamp && stream == gdb_stdlog)
     {
       using namespace std::chrono;
       int len, need_nl;
 
+      string_file sfile;
+      cli_ui_out (&sfile, 0).vmessage (ui_file_style (), format, args);
+      std::string linebuffer = std::move (sfile.string ());
+
       steady_clock::time_point now = steady_clock::now ();
       seconds s = duration_cast<seconds> (now.time_since_epoch ());
       microseconds us = duration_cast<microseconds> (now.time_since_epoch () - s);
@@ -2064,13 +2096,13 @@ vfprintf_unfiltered (struct ui_file *str
       fputs_unfiltered (timestamp.c_str (), stream);
     }
   else
-    fputs_unfiltered (linebuffer.c_str (), stream);
+    vfprintf_maybe_filtered (stream, format, args, false, true);
 }
 
 void
 vprintf_filtered (const char *format, va_list args)
 {
-  vfprintf_maybe_filtered (gdb_stdout, format, args, 1);
+  vfprintf_maybe_filtered (gdb_stdout, format, args, true, false);
 }
 
 void
@@ -2130,6 +2162,33 @@ fprintf_styled (struct ui_file *stream, 
   set_output_style (stream, ui_file_style ());
 }
 
+/* See utils.h.  */
+
+void
+vfprintf_styled (struct ui_file *stream, const ui_file_style &style,
+		 const char *format, va_list args)
+{
+  set_output_style (stream, style);
+  vfprintf_filtered (stream, format, args);
+  set_output_style (stream, ui_file_style ());
+}
+
+/* See utils.h.  */
+
+void
+vfprintf_styled_no_gdbfmt (struct ui_file *stream, const ui_file_style &style,
+			   bool filter, const char *format, va_list args)
+{
+  std::string str = string_vprintf (format, args);
+  if (!str.empty ())
+    {
+      if (!style.is_default ())
+	set_output_style (stream, style);
+      fputs_maybe_filtered (str.c_str (), stream, filter);
+      if (!style.is_default ())
+	set_output_style (stream, ui_file_style ());
+    }
+}
 
 void
 printf_filtered (const char *format, ...)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/utils.h ./gdb/utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/utils.h	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/utils.h	2019-10-08 01:49:31.000000000 +0000
@@ -350,7 +350,10 @@ extern struct ui_file *gdb_stdtargin;
 extern void set_screen_width_and_height (int width, int height);
 
 /* More generic printf like operations.  Filtered versions may return
-   non-locally on error.  */
+   non-locally on error.  As an extension over plain printf, these
+   support some GDB-specific format specifiers.  Particularly useful
+   here are the styling formatters: '%p[', '%p]' and '%ps'.  See
+   ui_out::message for details.  */
 
 extern void fputs_filtered (const char *, struct ui_file *);
 
@@ -430,6 +433,20 @@ extern void fprintf_styled (struct ui_fi
 			    ...)
   ATTRIBUTE_PRINTF (3, 4);
 
+extern void vfprintf_styled (struct ui_file *stream,
+			     const ui_file_style &style,
+			     const char *fmt,
+			     va_list args)
+  ATTRIBUTE_PRINTF (3, 0);
+
+/* Like vfprintf_styled, but do not process gdb-specific format
+   specifiers.  */
+extern void vfprintf_styled_no_gdbfmt (struct ui_file *stream,
+				       const ui_file_style &style,
+				       bool filter,
+				       const char *fmt, va_list args)
+  ATTRIBUTE_PRINTF (4, 0);
+
 /* Like fputs_filtered, but styles the output according to STYLE, when
    appropriate.  */
 
@@ -437,6 +454,12 @@ extern void fputs_styled (const char *li
 			  const ui_file_style &style,
 			  struct ui_file *stream);
 
+/* Unfiltered variant of fputs_styled.  */
+
+extern void fputs_styled_unfiltered (const char *linebuffer,
+				     const ui_file_style &style,
+				     struct ui_file *stream);
+
 /* Like fputs_styled, but uses highlight_style to highlight the
    parts of STR that match HIGHLIGHT.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/valprint.c ./gdb/valprint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/valprint.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/valprint.c	2019-10-08 01:49:31.000000000 +0000
@@ -38,6 +38,7 @@
 #include "gdbsupport/byte-vector.h"
 #include "cli/cli-option.h"
 #include "gdbarch.h"
+#include "cli/cli-style.h"
 
 /* Maximum number of wchars returned from wchar_iterate.  */
 #define MAX_WCHARS 4
@@ -347,7 +348,8 @@ valprint_check_validity (struct ui_file 
 	    }
 
 	  if (!is_ref || !ref_is_addressable)
-	    fputs_filtered (_("<synthetic pointer>"), stream);
+	    fputs_styled (_("<synthetic pointer>"), metadata_style.style (),
+			  stream);
 
 	  /* C++ references should be valid even if they're synthetic.  */
 	  return is_ref;
@@ -369,25 +371,25 @@ val_print_optimized_out (const struct va
   if (val != NULL && value_lval_const (val) == lval_register)
     val_print_not_saved (stream);
   else
-    fprintf_filtered (stream, _("<optimized out>"));
+    fprintf_styled (stream, metadata_style.style (), _("<optimized out>"));
 }
 
 void
 val_print_not_saved (struct ui_file *stream)
 {
-  fprintf_filtered (stream, _("<not saved>"));
+  fprintf_styled (stream, metadata_style.style (), _("<not saved>"));
 }
 
 void
 val_print_unavailable (struct ui_file *stream)
 {
-  fprintf_filtered (stream, _("<unavailable>"));
+  fprintf_styled (stream, metadata_style.style (), _("<unavailable>"));
 }
 
 void
 val_print_invalid_address (struct ui_file *stream)
 {
-  fprintf_filtered (stream, _("<invalid address>"));
+  fprintf_styled (stream, metadata_style.style (), _("<invalid address>"));
 }
 
 /* Print a pointer based on the type of its target.
@@ -988,7 +990,7 @@ generic_val_print (struct type *type,
       /* This happens (without TYPE_STUB set) on systems which don't use
          dbx xrefs (NO_DBX_XREFS in gcc) if a file has a "struct foo *bar"
          and no complete type for struct foo in that file.  */
-      fprintf_filtered (stream, _("<incomplete type>"));
+      fprintf_styled (stream, metadata_style.style (), _("<incomplete type>"));
       break;
 
     case TYPE_CODE_COMPLEX:
@@ -1047,7 +1049,7 @@ val_print (struct type *type, LONGEST em
 
   if (TYPE_STUB (real_type))
     {
-      fprintf_filtered (stream, _("<incomplete type>"));
+      fprintf_styled (stream, metadata_style.style (), _("<incomplete type>"));
       return;
     }
 
@@ -1084,7 +1086,8 @@ val_print (struct type *type, LONGEST em
     }
   catch (const gdb_exception_error &except)
     {
-      fprintf_filtered (stream, _("<error reading variable>"));
+      fprintf_styled (stream, metadata_style.style (),
+		      _("<error reading variable>"));
     }
 }
 
@@ -1115,7 +1118,8 @@ value_check_printable (struct value *val
 {
   if (val == 0)
     {
-      fprintf_filtered (stream, _("<address of value unknown>"));
+      fprintf_styled (stream, metadata_style.style (),
+		      _("<address of value unknown>"));
       return 0;
     }
 
@@ -1139,8 +1143,9 @@ value_check_printable (struct value *val
 
   if (TYPE_CODE (value_type (val)) == TYPE_CODE_INTERNAL_FUNCTION)
     {
-      fprintf_filtered (stream, _("<internal function %s>"),
-			value_internal_function_name (val));
+      fprintf_styled (stream, metadata_style.style (),
+		      _("<internal function %s>"),
+		      value_internal_function_name (val));
       return 0;
     }
 
@@ -2069,7 +2074,8 @@ val_print_array_elements (struct type *t
 		     address, stream, recurse + 1, val, options,
 		     current_language);
 	  annotate_elt_rep (reps);
-	  fprintf_filtered (stream, " <repeats %u times>", reps);
+	  fprintf_filtered (stream, " %p[<repeats %u times>%p]",
+			    metadata_style.style ().ptr (), reps, nullptr);
 	  annotate_elt_rep_end ();
 
 	  i = rep1 - 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.3.50.20191001/gdb/value.c ./gdb/value.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/value.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/value.c	2019-10-08 01:49:31.000000000 +0000
@@ -43,6 +43,7 @@
 #include "completer.h"
 #include "gdbsupport/selftest.h"
 #include "gdbsupport/array-view.h"
+#include "cli/cli-style.h"
 
 /* Definition of a user function.  */
 struct internal_function
@@ -2539,7 +2540,8 @@ show_convenience (const char *ignore, in
 	}
       catch (const gdb_exception_error &ex)
 	{
-	  fprintf_filtered (gdb_stdout, _("<error: %s>"), ex.what ());
+	  fprintf_styled (gdb_stdout, metadata_style.style (),
+			  _("<error: %s>"), ex.what ());
 	}
 
       printf_filtered (("\n"));
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/version.in ./gdb/version.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/version.in	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/version.in	2019-10-08 01:49:31.000000000 +0000
@@ -1 +1 @@
-8.3.50.DATE-git
+9.0.50.DATE-git
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/xcoffread.c ./gdb/xcoffread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/gdb/xcoffread.c	2019-10-01 01:49:31.000000000 +0000
+++ ./gdb/xcoffread.c	2019-10-08 01:49:31.000000000 +0000
@@ -1576,7 +1576,7 @@ process_xcoff_symbol (struct coff_symbol
   initialize_objfile_symbol (sym);
 
   /* default assumptions */
-  SYMBOL_VALUE_ADDRESS (sym) = cs->c_value + off;
+  SET_SYMBOL_VALUE_ADDRESS (sym, cs->c_value + off);
   SYMBOL_DOMAIN (sym) = VAR_DOMAIN;
   SYMBOL_SECTION (sym) = secnum_to_section (cs->c_secnum, objfile);
 
@@ -1674,7 +1674,9 @@ process_xcoff_symbol (struct coff_symbol
 			       cs->c_name, 0, 0, objfile);
 	  if (sym != NULL)
 	    {
-	      SYMBOL_VALUE_ADDRESS (sym) += static_block_base;
+	      SET_SYMBOL_VALUE_ADDRESS (sym,
+					SYMBOL_VALUE_ADDRESS (sym)
+					+ static_block_base);
 	      SYMBOL_SECTION (sym) = static_block_section;
 	    }
 	  return sym;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/include/bfdlink.h ./include/bfdlink.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/include/bfdlink.h	2019-10-01 01:49:31.000000000 +0000
+++ ./include/bfdlink.h	2019-10-08 01:49:31.000000000 +0000
@@ -636,6 +636,11 @@ struct bfd_link_info
   struct bfd_elf_version_tree *version_info;
 };
 
+/* Some forward-definitions used by some callbacks.  */
+
+struct elf_strtab_hash;
+struct elf_sym_strtab;
+
 /* This structures holds a set of callback functions.  These are called
    by the BFD linker routines.  */
 
@@ -757,6 +762,16 @@ struct bfd_link_callbacks
     (struct bfd_link_info *, bfd * abfd,
      asection * current_section, asection * previous_section,
      bfd_boolean new_segment);
+  /* This callback provides a chance for callers of the BFD to examine the
+     ELF string table and symbol table once they are complete and indexes and
+     offsets assigned.  */
+  void (*examine_strtab)
+    (struct elf_sym_strtab *syms, bfd_size_type symcount,
+     struct elf_strtab_hash *symstrtab);
+  /* This callback should emit the CTF section into a non-loadable section in
+     the output BFD named .ctf or a name beginning with ".ctf.".  */
+  void (*emit_ctf)
+    (void);
 };
 
 /* The linker builds link_order structures which tell the code how 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.3.50.20191001/include/ChangeLog ./include/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/include/ChangeLog	2019-10-01 01:49:31.000000000 +0000
+++ ./include/ChangeLog	2019-10-08 01:49:31.000000000 +0000
@@ -1,3 +1,93 @@
+2019-10-07  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+	* elf/msp430.h: Add enums for MSPABI and GNU object attribute tag
+	names and values.
+
+2019-09-23  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h (ctf_cuname_set): Can now fail, returning int.
+	(ctf_parent_name_set): Likewise.
+
+2019-08-05  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h (ECTF_NONREPRESENTABLE): New.
+
+2019-09-23  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h: Note the instability of the ctf_link interfaces.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* bfdlink.h (elf_strtab_hash): New forward.
+	(elf_sym_strtab): Likewise.
+	(struct bfd_link_callbacks <examine_strtab>): New.
+	(struct bfd_link_callbacks <emit_ctf>): Likewise.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h (includes): No longer include <sys/param.h>.
+
+2019-07-30  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h (ctf_link_add_cu_mapping): New.
+	(ctf_link_memb_name_changer_f): New.
+	(ctf_link_set_memb_name_changer): New.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h (ECTF_INTERNAL): New.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h (struct ctf_link_sym): New, a symbol in flight to the
+	libctf linking machinery.
+	(CTF_LINK_SHARE_UNCONFLICTED): New.
+	(CTF_LINK_SHARE_DUPLICATED): New.
+	(ECTF_LINKADDEDLATE): New, replacing ECTF_UNUSED.
+	(ECTF_NOTYET): New, a 'not yet implemented' message.
+	(ctf_link_add_ctf): New, add an input file's CTF to the link.
+	(ctf_link): New, merge the type and string sections.
+	(ctf_link_strtab_string_f): New, callback for feeding strtab info.
+	(ctf_link_iter_symbol_f): New, callback for feeding symtab info.
+	(ctf_link_add_strtab): New, tell the CTF linker about the ELF
+	strtab's strings.
+	(ctf_link_shuffle_syms): New, ask the CTF linker to shuffle its
+	symbols into symtab order.
+	(ctf_link_write): New, ask the CTF linker to write the CTF out.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h (ctf_arc_write_fd): New.
+	(ctf_write_mem): Likewise.
+	(ctf_gzwrite): Spacing fix.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf.h (CTF_SET_STID): New.
+
+2019-07-13  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h (ctf_type_all_f): New.
+	(ctf_type_iter_all): New.
+
+2019-07-11  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf.h: Add object index and function index sections.  Describe
+	them. Improve the description of the variable section and clarify
+	the constraints on backward-pointing type nodes.
+	(ctf_header): Add cth_objtidxoff, cth_funcidxoff.
+
+2019-07-06  Nick Alcock  <nick.alcock@oracle.com>
+
+	* ctf-api.h (ctf_cuname): New function.
+	(ctf_cuname_set): Likewise.
+	* ctf.h: Improve comment around upgrading, no longer
+	implying that v2 is the target of upgrades (it is v3 now).
+	(ctf_header_v2_t): New, old-format header for backward
+	compatibility.
+	(ctf_header_t): Add cth_cuname: this is the first of several
+	header changes in format v3.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* bfdlink.h (struct bfd_section_already_linked): Forward declare.
@@ -97,7 +187,7 @@
 	* opcode/aarch64.h (enum aarch64_insn_class): sve_size_013
 	renamed to sve_size_13.
 
-2019-06-19  Nick Alcock <nick.alcock@oracle.com>
+2019-06-19  Nick Alcock  <nick.alcock@oracle.com>
 
 	* ctf.h (ctf_slice_t): Make cts_offset and cts_bits unsigned
 	short, so following structures are properly aligned.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/include/ctf-api.h ./include/ctf-api.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/include/ctf-api.h	2019-10-01 01:49:31.000000000 +0000
+++ ./include/ctf-api.h	2019-10-08 01:49:31.000000000 +0000
@@ -24,7 +24,6 @@
 #ifndef	_CTF_API_H
 #define	_CTF_API_H
 
-#include <sys/param.h>
 #include <sys/types.h>
 #include <ctf.h>
 #include <zlib.h>
@@ -65,6 +64,28 @@ typedef struct ctf_sect
   size_t cts_entsize;		  /* Size of each section entry (symtab only).  */
 } ctf_sect_t;
 
+/* A minimal symbol extracted from a linker's internal symbol table
+   representation.  */
+
+typedef struct ctf_link_sym
+{
+  /* The st_name will not be accessed outside the call to
+     ctf_link_shuffle_syms().  */
+
+  const char *st_name;
+  uint32_t st_shndx;
+  uint32_t st_type;
+  uint32_t st_value;
+} ctf_link_sym_t;
+
+/* Indication of how to share types when linking.  */
+
+/* Share all types thare are not in conflict.  The default.  */
+#define CTF_LINK_SHARE_UNCONFLICTED 0x0
+
+/* Share only types that are used by multiple inputs.  Not implemented yet.  */
+#define CTF_LINK_SHARE_DUPLICATED 0x1
+
 /* Symbolic names for CTF sections.  */
 
 typedef enum ctf_sect_names
@@ -145,7 +166,7 @@ enum
    ECTF_NOSYMTAB,		/* Symbol table data is not available.  */
    ECTF_NOPARENT,		/* Parent CTF container is not available.  */
    ECTF_DMODEL,			/* Data model mismatch.  */
-   ECTF_UNUSED,			/* Unused error.  */
+   ECTF_LINKADDEDLATE,		/* File added to link too late.  */
    ECTF_ZALLOC,			/* Failed to allocate (de)compression buffer.  */
    ECTF_DECOMPRESS,		/* Failed to decompress CTF data.  */
    ECTF_STRTAB,			/* String table for this string is missing.  */
@@ -180,7 +201,10 @@ enum
    ECTF_ARNNAME,		/* Name not found in CTF archive.  */
    ECTF_SLICEOVERFLOW,		/* Overflow of type bitness or offset in slice.  */
    ECTF_DUMPSECTUNKNOWN,	/* Unknown section number in dump.  */
-   ECTF_DUMPSECTCHANGED		/* Section changed in middle of dump.  */
+   ECTF_DUMPSECTCHANGED,	/* Section changed in middle of dump.  */
+   ECTF_NOTYET,			/* Feature not yet implemented.  */
+   ECTF_INTERNAL,		/* Internal error in link.  */
+   ECTF_NONREPRESENTABLE	/* Type not representable in CTF.  */
   };
 
 /* The CTF data model is inferred to be the caller's data model or the data
@@ -211,6 +235,7 @@ typedef int ctf_member_f (const char *na
 typedef int ctf_enum_f (const char *name, int val, void *arg);
 typedef int ctf_variable_f (const char *name, ctf_id_t type, void *arg);
 typedef int ctf_type_f (ctf_id_t type, void *arg);
+typedef int ctf_type_all_f (ctf_id_t type, int flag, void *arg);
 typedef int ctf_label_f (const char *name, const ctf_lblinfo_t *info,
 			 void *arg);
 typedef int ctf_archive_member_f (ctf_file_t *fp, const char *name, void *arg);
@@ -257,10 +282,14 @@ extern void ctf_file_close (ctf_file_t *
 
 extern int ctf_arc_write (const char *, ctf_file_t **, size_t,
 			  const char **, size_t);
+extern int ctf_arc_write_fd (int, ctf_file_t **, size_t, const char **,
+			     size_t);
 
+extern const char *ctf_cuname (ctf_file_t *);
+extern int ctf_cuname_set (ctf_file_t *, const char *);
 extern ctf_file_t *ctf_parent_file (ctf_file_t *);
 extern const char *ctf_parent_name (ctf_file_t *);
-extern void ctf_parent_name_set (ctf_file_t *, const char *);
+extern int ctf_parent_name_set (ctf_file_t *, const char *);
 extern int ctf_type_isparent (ctf_file_t *, ctf_id_t);
 extern int ctf_type_ischild (ctf_file_t *, ctf_id_t);
 
@@ -315,6 +344,7 @@ extern int ctf_label_info (ctf_file_t *,
 extern int ctf_member_iter (ctf_file_t *, ctf_id_t, ctf_member_f *, void *);
 extern int ctf_enum_iter (ctf_file_t *, ctf_id_t, ctf_enum_f *, void *);
 extern int ctf_type_iter (ctf_file_t *, ctf_type_f *, void *);
+extern int ctf_type_iter_all (ctf_file_t *, ctf_type_all_f *, void *);
 extern int ctf_label_iter (ctf_file_t *, ctf_label_f *, void *);
 extern int ctf_variable_iter (ctf_file_t *, ctf_variable_f *, void *);
 extern int ctf_archive_iter (const ctf_archive_t *, ctf_archive_member_f *,
@@ -375,8 +405,33 @@ extern ctf_snapshot_id_t ctf_snapshot (c
 extern int ctf_rollback (ctf_file_t *, ctf_snapshot_id_t);
 extern int ctf_discard (ctf_file_t *);
 extern int ctf_write (ctf_file_t *, int);
-extern int ctf_gzwrite (ctf_file_t * fp, gzFile fd);
+extern int ctf_gzwrite (ctf_file_t *fp, gzFile fd);
 extern int ctf_compress_write (ctf_file_t * fp, int fd);
+extern unsigned char *ctf_write_mem (ctf_file_t *, size_t *, size_t threshold);
+
+/* The ctf_link interfaces are not stable yet.  No guarantees!  */
+
+extern int ctf_link_add_ctf (ctf_file_t *, ctf_archive_t *, const char *);
+extern int ctf_link (ctf_file_t *, int share_mode);
+typedef const char *ctf_link_strtab_string_f (uint32_t *offset, void *arg);
+extern int ctf_link_add_strtab (ctf_file_t *, ctf_link_strtab_string_f *,
+				void *);
+typedef ctf_link_sym_t *ctf_link_iter_symbol_f (ctf_link_sym_t *dest,
+						void *arg);
+extern int ctf_link_shuffle_syms (ctf_file_t *, ctf_link_iter_symbol_f *,
+				  void *);
+extern unsigned char *ctf_link_write (ctf_file_t *, size_t *size,
+				      size_t threshold);
+
+/* Specialist linker functions.  These functions are not used by ld, but can be
+   used by other prgorams making use of the linker machinery for other purposes
+   to customize its output.  */
+extern int ctf_link_add_cu_mapping (ctf_file_t *, const char *from,
+				    const char *to);
+typedef char *ctf_link_memb_name_changer_f (ctf_file_t *,
+					    const char *, void *);
+extern void ctf_link_set_memb_name_changer
+  (ctf_file_t *, ctf_link_memb_name_changer_f *, void *);
 
 extern void ctf_setdebug (int debug);
 extern int ctf_getdebug (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/include/ctf.h ./include/ctf.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/include/ctf.h	2019-10-01 01:49:31.000000000 +0000
+++ ./include/ctf.h	2019-10-08 01:49:31.000000000 +0000
@@ -52,10 +52,15 @@ extern "C"
 
    The CTF file or section itself has the following structure:
 
-   +--------+--------+---------+----------+----------+-------+--------+
-   |  file  |  type  |  data   | function | variable | data  | string |
-   | header | labels | objects |   info   |   info   | types | table  |
-   +--------+--------+---------+----------+----------+-------+--------+
+   +--------+--------+---------+----------+--------+----------+...
+   |  file  |  type  |  data   | function | object | function |...
+   | header | labels | objects |   info   | index  |  index   |...
+   +--------+--------+---------+----------+--------+----------+...
+
+   ...+----------+-------+--------+
+   ...| variable | data  | string |
+   ...|   info   | types | table  |
+      +----------+-------+--------+
 
    The file header stores a magic number and version information, encoding
    flags, and the byte offset of each of the sections relative to the end of the
@@ -74,14 +79,27 @@ extern "C"
    For each data object, the type ID (a small integer) is recorded.  For each
    function, the type ID of the return type and argument types is recorded.
 
+   For situations in which the order of the symbols in the symtab is not known,
+   a pair of optional indexes follow the data object and function info sections:
+   each of these is an array of strtab indexes, mapped 1:1 to the corresponding
+   data object / function info section, giving each entry in those sections a
+   name so that the linker can correlate them with final symtab entries and
+   reorder them accordingly (dropping the indexes in the process).
+
    Variable records (as distinct from data objects) provide a modicum of support
    for non-ELF systems, mapping a variable name to a CTF type ID.  The variable
-   names are sorted into ASCIIbetical order, permitting binary searching.
+   names are sorted into ASCIIbetical order, permitting binary searching.  We do
+   not define how the consumer maps these variable names to addresses or
+   anything else, or indeed what these names represent: they might be names
+   looked up at runtime via dlsym() or names extracted at runtime by a debugger
+   or anything else the consumer likes.
 
    The data types section is a list of variable size records that represent each
    type, in order by their ID.  The types themselves form a directed graph,
    where each node may contain one or more outgoing edges to other type nodes,
-   denoted by their ID.
+   denoted by their ID.  Most type nodes are standalone or point backwards to
+   earlier nodes, but this is not required: nodes can point to later nodes,
+   particularly structure and union members.
 
    Strings are recorded as a string table ID (0 or 1) and a byte offset into the
    string table.  String table 0 is the internal CTF string table.  String table
@@ -126,14 +144,31 @@ typedef struct ctf_preamble
   unsigned char ctp_flags;	/* Flags (see below).  */
 } ctf_preamble_t;
 
+typedef struct ctf_header_v2
+{
+  ctf_preamble_t cth_preamble;
+  uint32_t cth_parlabel;	/* Ref to name of parent lbl uniq'd against.  */
+  uint32_t cth_parname;		/* Ref to basename of parent.  */
+  uint32_t cth_lbloff;		/* Offset of label section.  */
+  uint32_t cth_objtoff;		/* Offset of object section.  */
+  uint32_t cth_funcoff;		/* Offset of function section.  */
+  uint32_t cth_varoff;		/* Offset of variable section.  */
+  uint32_t cth_typeoff;		/* Offset of type section.  */
+  uint32_t cth_stroff;		/* Offset of string section.  */
+  uint32_t cth_strlen;		/* Length of string section in bytes.  */
+} ctf_header_v2_t;
+
 typedef struct ctf_header
 {
   ctf_preamble_t cth_preamble;
   uint32_t cth_parlabel;	/* Ref to name of parent lbl uniq'd against.  */
   uint32_t cth_parname;		/* Ref to basename of parent.  */
+  uint32_t cth_cuname;		/* Ref to CU name (may be 0).  */
   uint32_t cth_lbloff;		/* Offset of label section.  */
   uint32_t cth_objtoff;		/* Offset of object section.  */
   uint32_t cth_funcoff;		/* Offset of function section.  */
+  uint32_t cth_objtidxoff;	/* Offset of object index section.  */
+  uint32_t cth_funcidxoff;	/* Offset of function index section.  */
   uint32_t cth_varoff;		/* Offset of variable section.  */
   uint32_t cth_typeoff;		/* Offset of type section.  */
   uint32_t cth_stroff;		/* Offset of string section.  */
@@ -148,13 +183,14 @@ typedef struct ctf_header
 
 /* Data format version number.  */
 
-/* v1 upgraded to v2 is not quite the same as native v2 (the boundary between
-   parent and child types is different), and you can write it out again via
-   ctf_compress_write(), so we must track whether the thing was originally v1 or
-   not.  If we were writing the header from scratch, we would add a *pair* of
-   version number fields to allow for this, but this will do for now.  (A flag
-   will not do, because we need to encode both the version we came from and the
-   version we went to, not just "we were upgraded".) */
+/* v1 upgraded to a later version is not quite the same as the native form,
+   because the boundary between parent and child types is different but not
+   recorded anywhere, and you can write it out again via ctf_compress_write(),
+   so we must track whether the thing was originally v1 or not.  If we were
+   writing the header from scratch, we would add a *pair* of version number
+   fields to allow for this, but this will do for now.  (A flag will not do,
+   because we need to encode both the version we came from and the version we
+   went to, not just "we were upgraded".) */
 
 # define CTF_VERSION_1 1
 # define CTF_VERSION_1_UPGRADED_3 2
@@ -317,6 +353,7 @@ union
 
 #define CTF_NAME_STID(name)		((name) >> 31)
 #define CTF_NAME_OFFSET(name)		((name) & CTF_MAX_NAME)
+#define CTF_SET_STID(name, stid)	((name) | (stid) << 31)
 
 /* V2 only. */
 #define CTF_TYPE_INFO(kind, isroot, vlen) \
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/include/elf/msp430.h ./include/elf/msp430.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/include/elf/msp430.h	2019-10-01 01:49:31.000000000 +0000
+++ ./include/elf/msp430.h	2019-10-08 01:49:31.000000000 +0000
@@ -58,6 +58,47 @@
 #define OFBA_MSPABI_Tag_ISA		4
 #define OFBA_MSPABI_Tag_Code_Model	6
 #define OFBA_MSPABI_Tag_Data_Model	8
+#define OFBA_MSPABI_Tag_enum_size	10	/* Unused by GNU.  */
+
+/* GNU Object attribute tags.  */
+enum
+{
+  /* 0-3 are generic.  */
+
+  /* Define a GNU attribute for keeping track of whether the compiler has
+     generated code assuming that the upper region could be in use.
+     Added by the assembler based on the -mdata-region option.
+     This tag is ignored unless the large memory model is in use.  */
+  Tag_GNU_MSP430_Data_Region = 4,
+};
+
+/* Object attribute values.  */
+enum
+{
+  /* Values defined for OFBA_MSPABI_Tag_ISA.  */
+  OFBA_MSPABI_Val_ISA_NONE = 0,
+  OFBA_MSPABI_Val_ISA_MSP430 = 1,
+  OFBA_MSPABI_Val_ISA_MSP430X = 2,
+
+  /* Values defined for OFBA_MSPABI_Tag_Code_Model.  */
+  OFBA_MSPABI_Val_Code_Model_NONE = 0,
+  OFBA_MSPABI_Val_Code_Model_SMALL = 1,
+  OFBA_MSPABI_Val_Code_Model_LARGE = 2,
+
+  /* Values defined for OFBA_MSPABI_Tag_Data_Model.  */
+  OFBA_MSPABI_Val_Data_Model_NONE = 0,
+  OFBA_MSPABI_Val_Data_Model_SMALL = 1,
+  OFBA_MSPABI_Val_Data_Model_LARGE = 2,
+  OFBA_MSPABI_Val_Data_Model_RESTRICTED = 3,	/* Unused by GNU.  */
+
+  /* Values defined for Tag_GNU_MSP430_Data_Region.  */
+  Val_GNU_MSP430_Data_Region_NONE = 0,
+  /* The default data region.  Assumes all data is below address 0x10000.  */
+  Val_GNU_MSP430_Data_Region_Lower = 1,
+  /* Set if -mdata-region={none,upper,either}.  Assumes
+     data could be placed at or above address 0x10000.  */
+  Val_GNU_MSP430_Data_Region_Any = 2,
+};
 
 /* Relocations.  */
 START_RELOC_NUMBERS (elf_msp430_reloc_type)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/Makefile.def ./Makefile.def
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/Makefile.def	2019-10-01 01:49:26.000000000 +0000
+++ ./Makefile.def	2019-10-08 01:49:28.000000000 +0000
@@ -129,7 +129,7 @@ host_modules= { module= lto-plugin; boot
 		extra_make_flags='@extra_linker_plugin_flags@'; };
 host_modules= { module= libcc1; extra_configure_flags=--enable-shared; };
 host_modules= { module= gotools; };
-host_modules= { module= libctf; no_install=true; no_check=true;
+host_modules= { module= libctf; no_check=true;
 		bootstrap=true; };
 
 target_modules = { module= libstdc++-v3;
@@ -404,6 +404,7 @@ dependencies = { module=all-gdb; on=all-
 dependencies = { module=all-gdb; on=all-sim; };
 dependencies = { module=all-gdb; on=all-libdecnumber; };
 dependencies = { module=all-gdb; on=all-libtermcap; };
+dependencies = { module=all-gdb; on=all-libctf; };
 
 dependencies = { module=configure-libgui; on=configure-tcl; };
 dependencies = { module=configure-libgui; on=configure-tk; };
@@ -432,6 +433,7 @@ dependencies = { module=all-binutils; on
 dependencies = { module=all-binutils; on=all-intl; };
 dependencies = { module=all-binutils; on=all-gas; };
 dependencies = { module=all-binutils; on=all-libctf; };
+dependencies = { module=all-ld; on=all-libctf; };
 
 // We put install-opcodes before install-binutils because the installed
 // binutils might be on PATH, and they might need the shared opcodes
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/Makefile.in ./Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/Makefile.in	2019-10-01 01:49:33.000000000 +0000
+++ ./Makefile.in	2019-10-08 01:49:35.000000000 +0000
@@ -33849,7 +33849,13 @@ maybe-install-libctf:
 @if libctf
 maybe-install-libctf: install-libctf
 
-install-libctf:
+install-libctf: installdirs
+	@: $(MAKE); $(unstage)
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	(cd $(HOST_SUBDIR)/libctf && \
+	  $(MAKE) $(FLAGS_TO_PASS)  install)
 
 @endif libctf
 
@@ -33858,7 +33864,13 @@ maybe-install-strip-libctf:
 @if libctf
 maybe-install-strip-libctf: install-strip-libctf
 
-install-strip-libctf:
+install-strip-libctf: installdirs
+	@: $(MAKE); $(unstage)
+	@r=`${PWD_COMMAND}`; export r; \
+	s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+	$(HOST_EXPORTS) \
+	(cd $(HOST_SUBDIR)/libctf && \
+	  $(MAKE) $(FLAGS_TO_PASS)  install-strip)
 
 @endif libctf
 
@@ -51159,6 +51171,13 @@ all-stage3-binutils: maybe-all-stage3-li
 all-stage4-binutils: maybe-all-stage4-libctf
 all-stageprofile-binutils: maybe-all-stageprofile-libctf
 all-stagefeedback-binutils: maybe-all-stagefeedback-libctf
+all-ld: maybe-all-libctf
+all-stage1-ld: maybe-all-stage1-libctf
+all-stage2-ld: maybe-all-stage2-libctf
+all-stage3-ld: maybe-all-stage3-libctf
+all-stage4-ld: maybe-all-stage4-libctf
+all-stageprofile-ld: maybe-all-stageprofile-libctf
+all-stagefeedback-ld: maybe-all-stagefeedback-libctf
 install-binutils: maybe-install-opcodes
 install-strip-binutils: maybe-install-strip-opcodes
 install-opcodes: maybe-install-bfd
@@ -51505,6 +51524,7 @@ all-gdb: maybe-all-libiberty
 all-gdb: maybe-all-libiconv
 all-gdb: maybe-all-opcodes
 all-gdb: maybe-all-libdecnumber
+all-gdb: maybe-all-libctf
 configure-gprof: maybe-configure-intl
 all-gprof: maybe-all-libiberty
 all-gprof: maybe-all-bfd
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/md5.sum ./md5.sum
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/md5.sum	2019-10-01 01:53:11.000000000 +0000
+++ ./md5.sum	2019-10-08 01:53:43.000000000 +0000
@@ -6,7 +6,7 @@ d3a441477076825693ea3d1a18fc3479  bfd/re
 4b342d0aa45059d99009ff2dcdb68664  bfd/libbfd.h
 8b8a453da673107291f4754c544a2ebe  bfd/cpu-nds32.c
 fb32050ffb28a5c4858c29991be30938  bfd/vaxnetbsd.c
-7f98d4abd115e9cdbe23e3c13931731a  bfd/elf64-ppc.c
+019c3568d06c58784d4b964a3a23c741  bfd/elf64-ppc.c
 ea3becf9543146e194d9dd435b550f2a  bfd/elf32-mcore.c
 58ee1669265cf8296820ddf3dc22cb12  bfd/archures.c
 b026e9477cdd5d8a19e171c0853e35b3  bfd/i386lynx.c
@@ -37,14 +37,14 @@ f73502530f3abf5e11406d868ea1af80  bfd/xt
 5cb0eef365977eb8c7430c04738a9e2c  bfd/wasm-module.c
 ce93ef6cd4c0ba0799b9d6d75b36638a  bfd/elf64-mips.c
 c4d082a9c0c27456afe3357c4987b675  bfd/cpu-m9s12x.c
-b9794c145fbe717c9358ccbba650e593  bfd/version.h
+2e247b69ae6cc9ff4d6c1cd70b5d18f8  bfd/version.h
 f635e95e06957e744083b2160029e168  bfd/cpu-tilegx.c
 f2af796af1efd1971472837a26010b6f  bfd/coff-mcore.c
 89637e92fbef834ef0c545805106bcc4  bfd/cpu-avr.c
 177bd7b4c84ba5c009fb078257ef06cb  bfd/aout64.c
 cd3bf9fe5458c06ca0a4cc5abdfbc796  bfd/elf32-pru.c
 f5ad372cf681a57b9a43f6975c05e33c  bfd/ChangeLog-2012
-fb1ac9f3c9938e467e8d68b0b1e737c8  bfd/elf.c
+720dc6e8640632539e3f76ea91787d68  bfd/elf.c
 0b76fafe89d70f2ea04f6b9a1e79989f  bfd/hppabsd-core.c
 8f4546a5e1b4bfb7045af3f6a958973e  bfd/elf32-xgate.c
 0b89057e69f67bd9835a9160e89333e7  bfd/elf32-nds32.h
@@ -107,9 +107,9 @@ d97dde7108578eea9417c70f39d97775  bfd/bf
 58bc56d7dd9219f5efdfa1803bcb27aa  bfd/libxcoff.h
 da3bfcdfa700bc2340bc467012bd56c6  bfd/i386bsd.c
 d86e0e4100a7bd9dadceadd1e4d9a175  bfd/hpux-core.c
-c9ea5b049ea87e6e0ab6e4514081d034  bfd/elf-bfd.h
+b20071fa412e1c7165fe3d8fd08dc708  bfd/elf-bfd.h
 2aeedee8927595bec83bf600ce9a405c  bfd/mach-o-target.c
-29b3cafaa78a412cdebf668ae986299e  bfd/elf-strtab.c
+12f1cf0b75fefe6b0fedf70cf91cf42a  bfd/elf-strtab.c
 79ab00617c0c7ff26c848dbcdf8b5643  bfd/peXXigen.c
 06c8428cc4a55ada8601e8ef4ffb24bd  bfd/simple.c
 b967a433433ae3829243f460e1dbfa3f  bfd/pe-x86_64.c
@@ -250,7 +250,7 @@ a6233c0e696c8b5bdc8415a7c9cecd6c  bfd/co
 d5e1a602431b0bf7049a07418937d087  bfd/bfd-in.h
 a8f6bdd7209b4d9a6550b071226c7e88  bfd/elf32-nds32.c
 6faafd2cb88b1e0e7941e460f3a4646f  bfd/elf32-i386.c
-15c381a539fe29866e7f9d5eb7d8069f  bfd/elf32-ppc.c
+1d383a09d3986d0d160579520e1550c9  bfd/elf32-ppc.c
 7d710529ca3fafb2bb57132df24957e3  bfd/ChangeLog-2004
 bb2db44e83a1cbe7833da3279d111694  bfd/elfxx-sparc.c
 fba04df4d8eb0bafdc8c2daf590c743f  bfd/cpu-powerpc.c
@@ -324,7 +324,7 @@ d6bd4f6d0c2627b13c05ef7cb49b2d7d  bfd/el
 fa97c17a75dc2bd5d51931e1dd1f0693  bfd/elf32-m68hc12.c
 05cedb42f6a9cc65a191a092e591bf32  bfd/elf32-m32c.c
 8f7b5397a7bb5d502a9997e19d244cea  bfd/ChangeLog-2014
-47b0c872ef15706fc50daa1fd2bbfd6b  bfd/elflink.c
+bff2259c9659e6d05f5a5ddb9fd6be29  bfd/elflink.c
 784c80a5abc1b2693d0a0f8438e82545  bfd/elf32-iq2000.c
 506e4cf89b13520b65527de435f6e4b4  bfd/arc-plt.def
 0dcd615606a2ea2fdc30b601c1e9d7bc  bfd/elf-hppa.h
@@ -405,7 +405,7 @@ bf3124212f297f533195226f5574c9d1  bfd/el
 4f64387cc2f68f7f980105d0a6443858  bfd/elfxx-ia64.h
 72fd73fc0277b8c62634baabecbda132  bfd/elf32-or1k.c
 104a70b5229947c59091790c37236944  bfd/targets.c
-50b66f21db992bfcb60e9614e2fa1d7b  bfd/ChangeLog
+c99b3aacaa70438698a75e3b4bae4ed2  bfd/ChangeLog
 80e643d9b80b026d0cb49c1a9844db85  bfd/section.c
 2fddd07f100af0551285d028f9fe8eb0  bfd/elf-s390-common.c
 07d1c3689bb0c5e5b6d5dfce7aee122e  bfd/elf32-lm32.c
@@ -427,7 +427,7 @@ c50e59518604f040f78c62d4c1dba3a6  bfd/pe
 e4d2dc1f4dd23b77953636bf0a721cd1  bfd/cpu-tic30.c
 5dbf7dda55d75e9a4ba95e6e4c9de3ea  bfd/cpu-m32r.c
 7450da4150ff19cb98e15abd7f3acbbd  bfd/elf32-csky.c
-8cdf7b257f8e95f75c3bb0bf18240bf3  bfd/elf32-arm.c
+a810870e581cb4ac84dd4633cb6c217b  bfd/elf32-arm.c
 b639c27d91e37fef6304c7e483f9d511  bfd/elf32-ppc.h
 1304eb5ab3399fa008542bc27b4f4798  bfd/cpu-msp430.c
 68a4c622bb1c6da72efb21da56fc15d3  bfd/cpu-fr30.c
@@ -487,7 +487,7 @@ f738ded1af56f28e05cf307d4fc00b50  bfd/el
 0d25b3166d9d9b475e3b67576d871749  bfd/elf32-xc16x.c
 3d0b3ef34ef193dc72141dd61969556b  bfd/elf64-bpf.c
 9ff7c07063fab364692d99911be11ae0  bfd/cpu-s12z.c
-3a2c5a91d74ea33c594e4cababa0d37d  bfd/elf32-msp430.c
+c7db26d50f9c3ca0c465b3314a0687ed  bfd/elf32-msp430.c
 90cfcfd988f47bcc8c44d04c1418f57d  bfd/elf32-m68hc1x.c
 a69a7febe17dcd39458f62c09053dbfd  bfd/genlink.h
 90a5c6243e726740d1e347c71798b702  bfd/plugin.c
@@ -533,7 +533,7 @@ c3b9a80f7b7b63e87af2f74210ca46cc  bfd/el
 82ee3ab98de753aefddbf322bb89c13b  bfd/cpu-m68k.h
 a1d55ed3f4aa1f53d6c783858a66e382  bfd/elfxx-riscv.c
 447741e3f8791198214f96779cefeabf  bfd/mach-o-aarch64.c
-0dda9a118a71e9a455b6a3b7e8ed5690  ChangeLog
+0e0e51a9b7235f950cec33ca2c71bcdc  ChangeLog
 500b9244caa7a7ab23ece1db37efa76d  compile
 042203b305962ba9a8f8474ef80edeee  config/enable.m4
 2ea0edfde0ce5ce69b49317a5650f048  config/acx.m4
@@ -719,6 +719,7 @@ bd7838cfdec440c25d3cfa9e8e88a3dc  gdb/co
 551c8d8e62a81c00685466c71ed8a767  gdb/ser-event.h
 dc4a20809b96d81ff8056738c7e8d185  gdb/i386-nbsd-nat.c
 b270f0f14e3ff8d460c2d8fa9fa909de  gdb/ppc-linux-nat.c
+7c1a36ee84db23f55ec5494a55686461  gdb/ctfread.h
 440ee11435de5ec90320b04f5a7bc2e2  gdb/charset-list.h
 5c16d905f8bb767ad3eae8e52404dfa4  gdb/m2-lang.c
 4059bdae2cb8752e4cd11edd7c1b1e07  gdb/target-float.h
@@ -775,8 +776,8 @@ e4ad0e0363c34db7802550035d3757aa  gdb/tr
 da0c4f593154c753ed53afc5f32aa17d  gdb/gdb-demangle.h
 02f0c034ef0f6c556acfed96a299d6a2  gdb/process-stratum-target.c
 78c6359a047e4d5483a90c021196a18a  gdb/ravenscar-thread.c
-221958c3bf0b0b18c1e04c5a73627fe1  gdb/Makefile.in
-eef16a70a96168b59fb11b0fe0709b4e  gdb/btrace.h
+b5f20647b2afdebd6f1731bacdacb0ca  gdb/Makefile.in
+c3f8f2a9c5369ed5f42e52208396d484  gdb/btrace.h
 ed316f4adf752b73da1c357437cfa771  gdb/x86-bsd-nat.c
 2cc0e89d09628e04609b0d799c1784bf  gdb/windows-nat.h
 c82987de8310e2bf54a41501beea3df5  gdb/sparc64-linux-tdep.c
@@ -803,15 +804,16 @@ d2a2e8637cabe2067c64c373df3b2561  gdb/re
 964fd1e21dfca4e8f8aa26722d597a2a  gdb/gdb.c
 a5843e056f4a29811ef70df0054a6998  gdb/linux-record.h
 8502008258dde5e90855eef89b85559b  gdb/disasm-selftests.c
-2000bd575e3ebba7d92475780705fceb  gdb/solib.c
+8ff5289e569e76bba683146c00657cab  gdb/solib.c
 53cf114ff5719cd047da9d38dd318599  gdb/ChangeLog-2012
 42b9f7c51223e595f66c2210064be682  gdb/ChangeLog-1990
 ae85ebb79aa1d55c6df133be5f7e0319  gdb/nto-procfs.c
 626a2513f9bd8417f3e13765d7bc78f1  gdb/d-exp.c
 bd1c1fb4146b51eb100da49fd4e3375e  gdb/infcall.c
+51b52961f790609827822eb71b4906dd  gdb/tracectf.c
 ce736dbe663f54bda1bbf9f6192271c2  gdb/remote-fileio.h
 7e403845cc28afa61662060061bbd642  gdb/ft32-tdep.c
-ba0466b0eee924d482fd8fd7bbedff0a  gdb/c-typeprint.c
+768a090ea91b9f098231ef91009bdc48  gdb/c-typeprint.c
 c218854704fa85d7aec326178202b6d7  gdb/xtensa-tdep.c
 2e53e0b3e32b64a7ab61addbe43704db  gdb/or1k-linux-tdep.c
 9c7b6ca044d231ec74abf1a70d8248c6  gdb/top.c
@@ -866,7 +868,7 @@ ee0e2adb0e0067991d6fecf09da5b789  gdb/py
 b832b12bc56b70a00fb2d62b51330c67  gdb/python/py-ref.h
 c0cf46f9f387771667faeabd1d6c2ae5  gdb/python/py-function.c
 74e656f5ceca242e6452dc9cb0ed27ab  gdb/python/py-record-btrace.h
-f210e29b09a6c9264e18b27f457057e6  gdb/python/py-framefilter.c
+fa205c8993e6169c9e202932384c65fd  gdb/python/py-framefilter.c
 a1c15d8ad0ab44b382c1df9433b71ff3  gdb/python/py-gdb-readline.c
 e2d5004a92d97eed4f50a55a004c81f6  gdb/python/py-record.c
 312e43c32799d72c2b53f3b4934288e0  gdb/python/py-stopevent.h
@@ -891,7 +893,7 @@ df220f824d96b1f0036d3ac11df2566b  gdb/py
 8e586924c64926b44f4f0bbed3375d2f  gdb/python/py-auto-load.c
 aa9982c875a8c643dc5fd6b1ae4620d3  gdb/python/py-threadevent.c
 16ab373798f4f72dff5266bc6e701046  gdb/python/py-finishbreakpoint.c
-fb55ea980692a4579ec6929f5e4f0f98  gdb/python/py-prettyprint.c
+04703460818e4cd4259d48d8a32012e1  gdb/python/py-prettyprint.c
 73b8fd394f91ea4cb94438a37dd56d26  gdb/python/py-evts.c
 953e30b2c2d8d71696d4ac926d77c4fd  gdb/target.h
 eb2a102ed912c94add37ac67958f80cf  gdb/obsd-nat.h
@@ -905,18 +907,18 @@ c061a5ff57f9c2891a0c1c91f3070edd  gdb/i3
 a65a25394acd87612fe5a8f86ef24d25  gdb/source-cache.c
 73d248eb61de8211da15f4dab80b95f4  gdb/iq2000-tdep.c
 f325ab547e4cd4ef97b2c857f919dd26  gdb/ser-base.c
-a2d5616a2be04977fbe0938452c8615e  gdb/version.in
+8fa9890157defc6286f324188841e073  gdb/version.in
 195256927383e77b9da7a4eb550e9d3d  gdb/linux-record.c
 52f5df9e620fc58ef3b04c2aa1588696  gdb/sparc64-sol2-tdep.c
 2c2cd5cc1ba76c4529eeeb4825892903  gdb/amd64-nat.c
 b4681cf21f79615beaed6c1b9dad5f81  gdb/ppc-ravenscar-thread.c
-f856d158fe9de788b2107ebdcad13a97  gdb/symfile.c
+517380096f9eae7138ea2b0214d936d3  gdb/symfile.c
 246ae174b54a1e47630bc1858558a01f  gdb/auxv.c
 e5019f9b26d33b511e0dc7994b8d2995  gdb/bfin-linux-tdep.c
 81e45b37ce840a9d11a1c45e3edc473e  gdb/m2-lang.h
 a1a7179f6aa1fd20ff77c84ed26bb1bb  gdb/s390-linux-tdep.c
 deb9ce3a196ff161eceaa19b6424af5a  gdb/riscv-fbsd-tdep.c
-b87ba1d74559c0b06f7998170c010a65  gdb/auto-load.c
+4653c248deddc02ce4b1c4e8267a6569  gdb/auto-load.c
 6b3894d0fc586b052969976d990132a5  gdb/interps.h
 fb0f557a46592d6e03288e2eed21da18  gdb/arm-linux-nat.c
 8f92811187527b8e51173f279347fb9d  gdb/arc-tdep.c
@@ -928,7 +930,7 @@ e401cf632129c067967af70b42d84e73  gdb/pr
 fee7321284a7b6a7ae764203deeba115  gdb/xtensa-config.c
 7fad796ebc9041b5aa5339973cd73781  gdb/go32-nat.c
 2c2e18008574a6f886c4f051254c6c49  gdb/inline-frame.h
-1fa1648c2d00f2b7938937fbdf8d1334  gdb/nat/fork-inferior.h
+3cc5238730f52f590f01c80fc69f3afd  gdb/nat/fork-inferior.h
 7f779a60c3978e5a6272a8fafadb3a26  gdb/nat/aarch64-sve-linux-sigcontext.h
 87c25db96519445c2ef6ae351c404953  gdb/nat/linux-ptrace.h
 2271b51761445de1a5620dd0230fadf9  gdb/nat/linux-waitpid.h
@@ -946,7 +948,7 @@ a804ca7c515b665ca1a96b9686023303  gdb/na
 fc00b983e7e9bec8f515cde95e715c57  gdb/nat/linux-osdata.c
 e1cd9d86601deb75d2b07ff1c4fbc6d3  gdb/nat/linux-procfs.h
 e84e44763a4cb128a13df34f8e6848b6  gdb/nat/linux-nat.h
-fa3475b117a4e2810a8841214ff2572a  gdb/nat/linux-btrace.c
+83a04af3f3148ebb5ca922969606b390  gdb/nat/linux-btrace.c
 d34616a63cf0d2691ac0784a1fbb478b  gdb/nat/x86-dregs.h
 2f0b34c11d7d31d7b972c4d4f7c325a9  gdb/nat/x86-linux-dregs.h
 2d170cd0b3789da61d0155bbb5b0a754  gdb/nat/linux-procfs.c
@@ -972,7 +974,7 @@ d995828d8ddf49372908cf07d229a686  gdb/na
 7a0f9fe89b5a1826ca4282dd192a9d47  gdb/go-valprint.c
 33141abb5fc64cad8e1fea27e9481be1  gdb/dwarf2loc.c
 02c50a8251b0ddad2c026aa558add95e  gdb/tracepoint.h
-f42d2454a33eb7ee3e2e13d0ec114765  gdb/gnu-v3-abi.c
+2f6d57976ef4905438fb253a2a9a2489  gdb/gnu-v3-abi.c
 f5e7a9733585a00f5fbaaac39846c216  gdb/extension.h
 34856e49dde5199e3b63e9f0f4e1c86e  gdb/reverse.c
 503a109df28f442efb4f596c1e9c14f4  gdb/dictionary.h
@@ -987,9 +989,9 @@ d086ad8a6055d51c9f552457bae3cf44  gdb/so
 9a6421441b38a8ae04be6634a6331333  gdb/mips-fbsd-nat.c
 d5c366705f53d1ec50d63239936df921  gdb/remote-fileio.c
 cb9f835e3a121de058bd9cb6f0c1ab60  gdb/complaints.c
-c680423c62c038fceef0c35d64da5c20  gdb/f-typeprint.c
+8828f149ba60c6532138d6758ff6fd8a  gdb/f-typeprint.c
 4eb896112e0c0580f58df5e0793f2b6c  gdb/interps.c
-cb6242fdfe5c2548019ea5d614b56aa1  gdb/skip.c
+20333bb175ae95f254942044a1b37c38  gdb/skip.c
 283653c748736cdad3e4633a8f8c4cf1  gdb/i386-gnu-tdep.c
 a6cf3c46df0fd70b6d266a1db9c4567a  gdb/ppc-fbsd-tdep.c
 121ab65cb4c9b88eaffd3a8bf64e1d24  gdb/mips-sde-tdep.c
@@ -997,7 +999,7 @@ e31ac563bdee8456c5926c7c894e36e8  gdb/ar
 e29e38bfd5dd34ec69271a3378013e6a  gdb/ser-unix.h
 10f1ab52f1493708bbbe37fd10ad91dd  gdb/inferior-iter.h
 a57677b1ee596d9d19609afd283422f1  gdb/csky-linux-tdep.c
-c73ee6e4c8e6784fa88895faf203aeb7  gdb/utils.c
+ef7e8db5db29221c61f578f656ae5903  gdb/utils.c
 90e56dea65beb67443d6c83cbc5fed7f  gdb/ChangeLog-1997
 0d5ba3c2e32c43e5417a9d08edfdb968  gdb/trad-frame.h
 9ce1a134feb7e75a30fb4cd8a15bb64f  gdb/arm-tdep.c
@@ -1005,7 +1007,7 @@ c73ee6e4c8e6784fa88895faf203aeb7  gdb/ut
 a8fa662603dce12f8b83b237e7e08d87  gdb/cris-tdep.c
 dff29ccd9f923e5e452e28827e015380  gdb/dictionary.c
 ec6cb2c74194cbbea66086050bf84b3e  gdb/cli/cli-option.c
-67116dfca8f95824724c25cd7d608031  gdb/cli/cli-style.h
+29342fc9baf286c6ae7f9ccd4bca6764  gdb/cli/cli-style.h
 148dedd0bf8d4c9b38f32d538f379d68  gdb/cli/cli-dump.c
 0e0572092cff3fd670610e39cf89a72b  gdb/cli/cli-interp.c
 be38836f5b8d23456edf044e0c440d3b  gdb/cli/cli-script.h
@@ -1014,19 +1016,19 @@ e2afd267ae0a2a6a72798cf9140035fa  gdb/cl
 6682a9e5e87cd84e8a14b301c07ce84d  gdb/cli/cli-setshow.c
 c44242b7139b3bfb6e107f716e8dbc28  gdb/cli/cli-interp.h
 1c1c12913e0dec60f427ad71bf4e3734  gdb/cli/cli-decode.c
-1caac4a4300b5b0dd2785ac45782b542  gdb/cli/cli-cmds.c
+cb76b8bcfa83b214e741143e39a49106  gdb/cli/cli-cmds.c
 e03f9420ac23898c95ed9f2d838d496a  gdb/cli/cli-utils.h
 33a9aee33ddfefb42ee5f9df38b38af3  gdb/cli/cli-script.c
-64e6f3eab8b599ccf85f8e72a24a008a  gdb/cli/cli-logging.c
+6dba03ffcd4179e20aa50a116f920993  gdb/cli/cli-logging.c
 fb92fe19241f8a516bd6a0922479e78f  gdb/cli/cli-decode.h
-578d9683c37cd9406ad61f22347e1341  gdb/cli/cli-style.c
+6670d5848e05f687eaa447748d6e9ed8  gdb/cli/cli-style.c
 cd657a4e8ed2d45e7bd6bac5a702c10c  gdb/cli/cli-utils.c
 09304ec3c1277123e9d2beff2a20863c  gdb/cli/cli-option.h
 00f89ff2b81028c32352996aa07f7b4f  gdb/copyright.py
-d9f0d08ec721da16fe1bc2a950bf514e  gdb/cp-namespace.c
+2d397874b4a7e4f256ba0500761d0248  gdb/cp-namespace.c
 21b85dc2ed09d1125c8ab4fbdb043c7a  gdb/notify.defs
 82899e567314d0cadf3c96f25d6548eb  gdb/bsd-uthread.h
-1c026d380923030808ed833e621bf000  gdb/inferior.h
+8a87c501fe518b605668725895d49cec  gdb/inferior.h
 123020c82ab80c6c777cbff26d3f4c1b  gdb/csky-tdep.h
 1fd63a67946e65e50c4e9ea89a7714d8  gdb/reggroups.h
 0995979778608fe7203391a85d13e743  gdb/copying.awk
@@ -1042,7 +1044,7 @@ ac2c15a97534e0b9dc8e6b7d39f07ded  gdb/ob
 f3ef592138aec2ab7d9360ad3e63278f  gdb/inf-loop.c
 064e98acfa2c4806ab231a22de4fe4d4  gdb/ia64-tdep.c
 8a94a4a7c6795755d240097e367ee4c5  gdb/bfd-target.c
-33e82c6d08d82d598b494aacc2c59928  gdb/ada-tasks.c
+df2ef91bf52ba6dd65af7e7e1b15eadb  gdb/ada-tasks.c
 a6d3f15103a34003f117ad8cd3d620ac  gdb/mips64-obsd-nat.c
 e7e6eaf8ad874ef36051184e9c509085  gdb/ser-tcp.h
 e75b23e6e87f65fbe648895cb8c46e18  gdb/ui-file.h
@@ -1061,7 +1063,7 @@ ee4a61e6937e01529f64a6d89f2f4613  gdb/fb
 4c7745fc5a005d4a68eea43ea0e51311  gdb/inferior.c
 ea9ce25675b2fb073100ed3416b0ad74  gdb/mips-tdep.c
 85bb40c5d02876059100091fbfff9353  gdb/solib-dsbt.c
-3e265718aa1e9de972b2df1ae2f136a7  gdb/minsyms.c
+bf362429f4cbdddbbfb5b869b9453ea2  gdb/minsyms.c
 b07e7518c328d95f3a34b942636c2c13  gdb/i386-darwin-tdep.c
 eeeb11bd5598871af4fab7bd1438faf1  gdb/m68k-bsd-nat.c
 ac941da2de4682fd470093be06df6fc1  gdb/linux-nat-trad.h
@@ -1069,10 +1071,10 @@ ac941da2de4682fd470093be06df6fc1  gdb/li
 f6783af0d367b77e59f1d7ac33d0593d  gdb/event-top.c
 141fb605ccd4c086d7e66e6086581201  gdb/mem-break.c
 22f0b85440bf90f031e702fdb51a4f3b  gdb/riscv-linux-nat.c
-90414846decf57a411e267db8a73653e  gdb/charset.c
+0ca7ea4d3d7e4f9e78dbda79a22fba8d  gdb/charset.c
 c9d4a29e443989ed5faa234c4218ff6c  gdb/riscv-fbsd-nat.c
 b88a81acbdf98136de907a31c38ffdd7  gdb/sparc-nat.h
-e817de87c6cb78bfe31b909f8df93dd4  gdb/record-btrace.c
+ed89827767ade8b715c230751c2aa60d  gdb/record-btrace.c
 36e82b4c66d54bc463cb0ed09a27826b  gdb/proc-api.c
 b35cf181e5134ab8febfed56f5572ea0  gdb/target-memory.c
 706cad8ab29edf45cc6ce50325f98144  gdb/syscalls/ppc-linux.xml
@@ -1114,7 +1116,7 @@ b7682d3ae7df80ad208a73c734a253a4  gdb/pr
 1ff8f75e9c2fe639c6e1b18d250e874c  gdb/posix-hdep.c
 99bfd70f9c0d6881ee7ee7ff07f7c447  gdb/filename-seen-cache.h
 a409c92040ea28c1ced63c23e366e8bf  gdb/varobj.h
-a215006b811f3f4dde18b9e3c46b33c0  gdb/tracepoint.c
+f4940eecc0661d01e9672db7bf2e3a12  gdb/tracepoint.c
 f922efd2532f212e3e9292fec8257136  gdb/selftest-arch.c
 07ecb567a41c4930d6ad6163a1caa724  gdb/cris-tdep.h
 d6fa06eb365baa1d4afccb8eba2085f4  gdb/target-delegates.c
@@ -1124,7 +1126,7 @@ d6fa06eb365baa1d4afccb8eba2085f4  gdb/ta
 4e0d516374ca9f57767192ca684ed775  gdb/amd64-tdep.c
 55877877b944f97d1a6b5408a25e2eb7  gdb/nbsd-tdep.h
 274531d49f64f6aa88bc4831f38bb40c  gdb/amd64-fbsd-tdep.c
-73491136f834d1950e24c6337b21ab0d  gdb/p-lang.c
+4d5ff4a181299345a09f494ee79c4499  gdb/p-lang.c
 eb99f2f702801759ed86400d4500e9b6  gdb/ser-event.c
 f6de633f57fa3f3b2845fadf671235f0  gdb/aix-thread.c
 382f208e56f5011c23898c3e37e8a537  gdb/arm-fbsd-nat.c
@@ -1140,11 +1142,11 @@ b603230bbc87ecc66b5cb5e11a3ed948  gdb/ta
 4f465abeee57fc8d8c68a1b88917974c  gdb/windows-tdep.c
 14b7b59842ba57eaf6f7e3b4ed70a279  gdb/coff-pe-read.h
 687697892dc2ce95a152d1b139b49693  gdb/go-lang.c
-897314b63c287eed674b1074fc7773a2  gdb/infrun.c
+cc13ca7ba52916bf01028e2d203b1657  gdb/infrun.c
 c450b4fedef864650f5f53610decac0f  gdb/ppc-fbsd-nat.c
 f317cde2d1b97efdeb83c3a4700df844  gdb/jit-reader.in
 acfd797c5a1a04039f4ad0bcc5f46727  gdb/darwin-nat-info.c
-1a7dc4515006ad84eedcf72af8a90c84  gdb/ada-typeprint.c
+ba75b8f564b893dd285793334170bd42  gdb/ada-typeprint.c
 e432650f349837ea0344c360fdbc4092  gdb/sparc64-nbsd-tdep.c
 f971d36e35ec0c3fce64b819d7891f15  gdb/ChangeLog-1993
 f9cc8b094bb2d94a31214e353808d959  gdb/regcache.c
@@ -1158,7 +1160,7 @@ aa2a7f6fd9f90abd11c4788816931fa6  gdb/i3
 3c583e8ad991e67fed9c6ee08c566884  gdb/frame.h
 1f5036f3d9d983ce70dd5b35f5d139d7  gdb/darwin-nat.c
 cd48a447305aa41ba9525cdf1cdbc876  gdb/symfile-debug.c
-96d07406c4266e9691edd287c6a05982  gdb/stack.c
+1ac65c99f0c6221c62b16cbc0a393eba  gdb/stack.c
 f6e679111ecd2784aaf0372aa6319fa5  gdb/ser-tcp.c
 aef891e489ec61945aa539060447dd83  gdb/vax-tdep.h
 923e62f97e0d12603992f06db4646984  gdb/ptrace.m4
@@ -1174,7 +1176,7 @@ dddb3052d3013584839f41f44ea31015  gdb/go
 a12c129c6a322b6da6f3be28d5c64855  gdb/remote-notif.c
 1b9023495f4606b354761e1adc7fbf38  gdb/aarch64-linux-tdep.h
 210f3f42e33de3bab7df4c63a38c8bbb  gdb/aarch64-linux-tdep.c
-64dc7da92b99941d8b1571f6557ea1c1  gdb/f-lang.c
+7c3a66ec281aadf82b457daf5a3953b0  gdb/f-lang.c
 5849b004ac8a54dad31586d8124b58ec  gdb/break-catch-throw.c
 3456e2eb17d78fe98353c160e67c309d  gdb/rs6000-aix-tdep.h
 10ee5f4b49970d9cbe338ab9e0c1baa9  gdb/gnu-v2-abi.c
@@ -1185,7 +1187,7 @@ a12c129c6a322b6da6f3be28d5c64855  gdb/re
 174db9faf7adec8cc6a655d59637b1f5  gdb/aarch64-tdep.c
 87659b373492330002b3aa4944d094b5  gdb/sparc-ravenscar-thread.h
 b57cda336e0adf8ed7402d4504ea1bbf  gdb/m68k-tdep.h
-af75a57e08d729201d3150d90ce786f3  gdb/typeprint.c
+fac26f97e5bc8145ff652f1f48cb3739  gdb/typeprint.c
 10170bcc45e5064e3013691e6857f69c  gdb/solib-aix.c
 3e7ef614cc92115ce3aa3634b318e752  gdb/warning.m4
 edec052cc10283b10d0e0974527ed28b  gdb/ppc-tdep.h
@@ -1194,7 +1196,7 @@ ffb73c16332236ccb8a9eab222ba7030  gdb/aa
 66ba9cc284028eae0e4ec61d0de4007a  gdb/configure.host
 571e330082c5dd4082eda6115b062735  gdb/observable.h
 3170729bee05cd70f51519617c669e40  gdb/x86-nat.h
-fa43ee34141f05bbf584fc88427d8757  gdb/linux-thread-db.c
+3b006476dbe3a65132537ab6469f5893  gdb/linux-thread-db.c
 87f5231a48b4ac6c0e4d03613440cd33  gdb/c-exp.c
 06d80438c468e3b5e61b2dec2ae1d7ef  gdb/alpha-linux-nat.c
 cdaa654bddaff716531556c9f599dfd5  gdb/type-stack.h
@@ -1204,7 +1206,7 @@ cdaa654bddaff716531556c9f599dfd5  gdb/ty
 ad0a28559cae16d5c6917cd8223dec0f  gdb/m32r-linux-nat.c
 963c0b6541094fe70dd3a064c26c13f9  gdb/sparc64-nbsd-nat.c
 c2bc018bbf48b3f8cae91818bb152c34  gdb/gdb_bfd.c
-a24fc5487d368fa703b8b9f0e9deccca  gdb/NEWS
+1f899788c14116ff126604a7c19aad76  gdb/NEWS
 97fdbf06d19ca02ff16730e400dc2cfc  gdb/x86-nat.c
 30ff5e95978bca6e0d6b8a7fa988c4c9  gdb/dcache.c
 c4f2c8bc152abb23fccef51af4ead140  gdb/ada-lex.l
@@ -1214,7 +1216,7 @@ d10c6691c94ca7f97fdcb5797839118b  gdb/yy
 aee24077523f9c92d85a75dbb3d8002d  gdb/gdb_expat.h
 f54370e78b91eeaa046c2a5407f7fc2f  gdb/aarch64-tdep.h
 c8919d5f13e2742a60cc364e77f9aea9  gdb/probe.h
-432b9611d651d1d2acad4eeb70dcab48  gdb/expprint.c
+4d5b691456d931a46aa63d3cf4a2cd07  gdb/expprint.c
 bbbbe150bae3bca0c69f6162956f8aef  gdb/sentinel-frame.h
 a6da781e08a5581cb33079b41b8085ed  gdb/dwarf-index-write.h
 46f62a705fd750eba1f17ee16ed27193  gdb/xtensa-tdep.h
@@ -1243,8 +1245,8 @@ e5d8607c145dbb29d18b1f2ef8ceb08d  gdb/th
 d51f44c8ab876081f50968884126342a  gdb/arm-wince-tdep.c
 9c23f700bf128acd07789bc1782ab4c1  gdb/target-debug.h
 27478eae1fb263995247f2f02d8e3195  gdb/ia64-linux-nat.c
-2ffe7504b4f9f12c584c34af5ca3d1cb  gdb/cli-out.c
-c73cf96b4469ba6995ca80181ba6b0bf  gdb/main.c
+1de7a7437734dc4d54475a91e5adf50d  gdb/cli-out.c
+57f2502a43dab48a6ce190569a1aaaa1  gdb/main.c
 d50de449e9c5cab033b421990b667cb6  gdb/acx_configure_dir.m4
 8f1ce8d07c78de019b75982aab7be105  gdb/proc-service.c
 a5b9e71c4651fdd32c99b54c632efaef  gdb/inflow.h
@@ -1253,7 +1255,7 @@ c3bdb06abe5d95a1c9d0b5de22a4c84c  gdb/gl
 ba791ae012c88482992494d24cfb73bd  gdb/gdbcore.h
 69f0088e8fcd3825505ae41fb0a0aa75  gdb/inf-loop.h
 0df84340e4904a4350440ef9806fef94  gdb/alpha-nbsd-tdep.c
-b8f2648363fc0a590196f4b53ad087c8  gdb/ui-out.h
+75d1d7ba3c95dbbe155dd124f092353a  gdb/ui-out.h
 2e3b312273d12252d74a4d5d50a1487c  gdb/addrmap.c
 45ec9abd1b2d4826e8e0f221a7f1474a  gdb/sentinel-frame.c
 e626c8d9e613c75ce8e3d3a606d2e89c  gdb/score-tdep.h
@@ -1268,7 +1270,7 @@ aa63642dfa0c574e58b2d6cc03564b69  gdb/tu
 b717727d3a07a9556bfce8141e26d612  gdb/tui/tui-command.c
 a12f3617ffba20c72097f7acddc82c68  gdb/tui/tui-hooks.h
 e03ab98feeb13c8d5a6a27626f587b30  gdb/tui/tui-hooks.c
-52e423abd8556c1a57b2c73ccf6a4032  gdb/tui/tui-out.h
+56dd0b48c0031697a3d5efcad2da47c3  gdb/tui/tui-out.h
 0e08f67cba84917708a87ffe750acdd7  gdb/tui/tui.c
 b0decbc342d03960c888522b6dcb5c33  gdb/tui/tui-disasm.c
 1a89bc00e9b0a9a632fbef244118a11c  gdb/tui/tui-io.h
@@ -1289,7 +1291,7 @@ f24255c78455cae3d79938aa022f7af0  gdb/tu
 db9e1004ab1d2295d604d54012a3f355  gdb/tui/tui-file.h
 0415f3bd7a379430b752618c1e8c7cd4  gdb/tui/ChangeLog-1998-2003
 0ded4658b8be91bb9bd7ce4fcae5e9e3  gdb/tui/tui-wingeneral.c
-6161622280e24df5ab2810b3a6a1b79a  gdb/tui/tui-out.c
+db080741beda79d95dd9faea631a6647  gdb/tui/tui-out.c
 24b02e38ab7b3f0efeeff5daf024d379  gdb/tui/tui-win.c
 193a5fc32745c717233fbc771a5fbe48  gdb/tui/tui-data.h
 0ce586573e6740f65110921c31318d98  gdb/tui/tui-win.h
@@ -1315,13 +1317,13 @@ a417813f5a602e95f7f1fde0f0ebb564  gdb/aa
 1caca6427487e2431d8f54e123edc51f  gdb/findvar.c
 d2aac099bb53536bb172dcdffbfe2c6a  gdb/alpha-tdep.h
 e702c76e3ff96a6c491fa0781e028a59  gdb/ser-pipe.c
-c310b9081eb1ebbe81591342494bba85  gdb/p-valprint.c
+287d0f1c7f404f32ba19914986e6733e  gdb/p-valprint.c
 9d8bd968edfea3a04797f421ccaed2a2  gdb/producer.c
-a98b2d29c1bbc5814ca007b2d8b81060  gdb/macrocmd.c
+72aab1b5819a06aa387d860586f4ff19  gdb/macrocmd.c
 f48d4eeceeac9d5a468d149b0e5ed7c4  gdb/arch-utils.c
-b70b40ccb91b179cbd9c2909f1bf6938  gdb/cp-valprint.c
+fa63ed98e7ddf275afd2fc52f763256f  gdb/cp-valprint.c
 df393c602e6b20bc1b0caa1b02df828f  gdb/disable-implicit-rules.mk
-86ba40427b415dcba1d201cb9fa2723b  gdb/dwarf2read.c
+b35155aab168550d5a080bf0869dc124  gdb/dwarf2read.c
 34fe1660581407efc4e2e7e0cfef32ae  gdb/or1k-tdep.c
 653ccb0f91b7f978ac58d80833158b97  gdb/amd64-windows-tdep.c
 e4708e4b23e4e6ddd07c7245736d37b3  gdb/testsuite/config/cygmon.exp
@@ -1777,7 +1779,7 @@ e099907910de1a5fa9cab12394147af5  gdb/te
 7844dbfb63d5ee815db3c14cb769c796  gdb/testsuite/gdb.cp/m-static1.cc
 d35ad7023fbe864b81f9469bbee7c048  gdb/testsuite/gdb.cp/gdb1355.cc
 a9a3a80064c295a64fb9e15b302ce52b  gdb/testsuite/gdb.cp/mb-inline.exp
-ed61cdd7b26ba520f28af8d7d42b1780  gdb/testsuite/gdb.cp/local-static.c
+b386779364e14d1f659352700199f4c9  gdb/testsuite/gdb.cp/local-static.c
 4e402d8c3d4006f294952831e26242fa  gdb/testsuite/gdb.cp/method2.cc
 20b6757e7d8cd276c4fa5d8579688beb  gdb/testsuite/gdb.cp/local-static.exp
 f4bbb155a25136264457ad77942d615f  gdb/testsuite/gdb.cp/static-method.exp
@@ -1953,7 +1955,7 @@ d33da31e9602c754cd11dcc3f1da1896  gdb/te
 e2c6d90e978b46a2b2ca7dd89d177a9e  gdb/testsuite/gdb.python/py-explore.cc
 59b8ca93f65eb367badb5011a79b90b8  gdb/testsuite/gdb.python/py-xmethods.exp
 3d9de1cbd30e45404f29c0720738139a  gdb/testsuite/gdb.python/py-error.py
-8b4850363bcacd0a3d60fe71f264adae  gdb/testsuite/gdb.python/py-format-string.exp
+5ca2630f49cdda0762d3aeef3c0e1c2c  gdb/testsuite/gdb.python/py-format-string.exp
 4b353904ed88629117d84207ffabb92f  gdb/testsuite/gdb.python/py-mi-objfile.exp
 d3f428d892a527ab122b2e4eaf8196b6  gdb/testsuite/gdb.python/py-finish-breakpoint.exp
 74522565a1366191173702aa46049524  gdb/testsuite/gdb.python/py-objfile-script.c
@@ -1972,7 +1974,7 @@ f130ed08426123f7e0e40da5af8dc9ef  gdb/te
 5ff1b7df323c6727f0209a435a2b37db  gdb/testsuite/gdb.python/py-nested-maps.py
 8e49fd414f9163ed3051d3f1cdffb1ac  gdb/testsuite/gdb.python/py-symbol.exp
 0b58a07c10a3d0a509883f172cf01b6a  gdb/testsuite/gdb.python/py-shared.c
-096a9efe9a61a86e3fedfe58f757d0c2  gdb/testsuite/gdb.python/py-parameter.exp
+86c10248490e9776eca7c528dd9418ba  gdb/testsuite/gdb.python/py-parameter.exp
 a3084d8e701f91b416ce5f70b60976e1  gdb/testsuite/gdb.python/py-sync-interp.c
 ebd46964f6e2d2d809a8df0d6f859a95  gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
 404199337567149e65319bf8658f95f9  gdb/testsuite/gdb.python/py-recurse-unwind.c
@@ -1982,7 +1984,7 @@ ebd46964f6e2d2d809a8df0d6f859a95  gdb/te
 502129c4be49eaeb038aad89dbca97ec  gdb/testsuite/gdb.python/py-format-string.py
 2e54e375a13220b9f8671e4edf14734b  gdb/testsuite/gdb.python/py-framefilter.py
 be801d77afa820621cd061f08b980e46  gdb/testsuite/gdb.python/py-value-cc.exp
-26e5e9503df413997b48298e76d34c87  gdb/testsuite/gdb.python/py-format-string.c
+28302b1c5e165e710f2616d5f121eb74  gdb/testsuite/gdb.python/py-format-string.c
 62629ffa360e110f27262ea42c827007  gdb/testsuite/gdb.python/py-section-script.exp
 ab1c820808b9b75398d4352a6bfd87d6  gdb/testsuite/gdb.python/py-pp-maint.c
 ce79788e27657fded1ea84be13365353  gdb/testsuite/gdb.python/py-caller-is.c
@@ -2088,7 +2090,7 @@ aec1d1de7a061dec1f17e87543a73097  gdb/te
 3a9938cc15b201c9dce950f161778f53  gdb/testsuite/gdb.python/py-framefilter.exp
 42fa555133fafc10dd0fe9ab34433ee5  gdb/testsuite/gdb.python/py-inferior.exp
 e88a2a581f8079efbdd0b3313b654a9f  gdb/testsuite/gdb.python/py-strfns.c
-1e0254d45574fbec7208f663cc11d152  gdb/testsuite/gdb.python/py-template.exp
+b8389e877b2bc3812c4b386f99f75f96  gdb/testsuite/gdb.python/py-template.exp
 920a234f88fa148a268cf95f1a9af7a0  gdb/testsuite/gdb.python/py-prettyprint.c
 30f6aa19199a42ab2b6bb0e62ea41c22  gdb/testsuite/gdb.python/py-pp-integral.py
 1746d28974199851e27bdbed76949366  gdb/testsuite/gdb.python/py-completion.py
@@ -2100,7 +2102,7 @@ e2ab888ad6e5c1ea193c69dbbf8b86a9  gdb/te
 4cfc50abb8f78f488af2895b324138a4  gdb/testsuite/gdb.python/py-finish-breakpoint.c
 69fae426f9be708fc908154dd4b487bc  gdb/testsuite/gdb.python/py-infthread.exp
 166ed401dee88f497e1412b4c3184139  gdb/testsuite/gdb.python/py-type.exp
-4facaae593c4e1573366d64122703fa5  gdb/testsuite/gdb.python/py-value.exp
+231d8de94e187da74e4751013aa1cad7  gdb/testsuite/gdb.python/py-value.exp
 5943e8e6cea445c4f1533b63f33963d9  gdb/testsuite/gdb.python/py-prettyprint.py
 54d2515686a81fc09fe3be90dbd11510  gdb/testsuite/gdb.python/py-record-full.exp
 eefdb210c237ad7fc73c4ef7a7ea0a66  gdb/testsuite/gdb.python/py-rbreak.c
@@ -2167,7 +2169,7 @@ b96939c5ebbbfadec3ab7110c06b7adc  gdb/te
 4f45506cf4ffdc8814767e8e3fba1d9b  gdb/testsuite/gdb.base/range-stepping.c
 7c5e9b5b9d740875082db03938fd303a  gdb/testsuite/gdb.base/catch-gdb-caused-signals.c
 c952036c41772053beda76ceb8b3df21  gdb/testsuite/gdb.base/unloadshr2.c
-7d987b0ba9ded4ab6333699590d01bae  gdb/testsuite/gdb.base/default.exp
+b38354c71bf4365970e740f0848e672e  gdb/testsuite/gdb.base/default.exp
 3f0653cbc03388949f69e5d7f0e376da  gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
 5c59f840fd501691072c20cb47bab686  gdb/testsuite/gdb.base/mips_pro.c
 653dc7bbd7dd95741760c20648a07d61  gdb/testsuite/gdb.base/so-disc-shr.c
@@ -2175,7 +2177,7 @@ c952036c41772053beda76ceb8b3df21  gdb/te
 3510a5962c44ec9aeffdf4accdf9a4cb  gdb/testsuite/gdb.base/int-type.c
 9fe3e72d6ec2d3fa65f0d80382588d18  gdb/testsuite/gdb.base/sigchld.exp
 2ee682041b393601ac994353d430fc8c  gdb/testsuite/gdb.base/gdb1555.c
-176e7b312eff67aa7d8bac8a9c247201  gdb/testsuite/gdb.base/call-sc.exp
+0df91c3c6db486f3617f1b6b3b48c472  gdb/testsuite/gdb.base/call-sc.exp
 32dac1e0b07d4cc7a3c1d38584b39231  gdb/testsuite/gdb.base/gnu-ifunc.exp
 fc898e42f84ea0f6846d5102c9db43c9  gdb/testsuite/gdb.base/symlink-sourcefile.exp
 f356ff50643e59000ef3d9f24089698b  gdb/testsuite/gdb.base/psymtab2.c
@@ -2197,6 +2199,7 @@ c87caeb5cd3dd05d72b817b232596211  gdb/te
 afc8b9a7a3d84b03ae4d982e2d63488d  gdb/testsuite/gdb.base/gcore-tls-pie.c
 1a39a4e1178148aa20e67c3ab2f3e536  gdb/testsuite/gdb.base/bfp-test.exp
 44e87b297744268da45d19f1341bd34e  gdb/testsuite/gdb.base/solib-search.c
+65a048bd4652c22444e3fc248eb5a5dd  gdb/testsuite/gdb.base/ctf-cvexpr.exp
 885328dadc7c4372c33f493ce8c9d6f2  gdb/testsuite/gdb.base/label.exp
 dca9328a33f5a0632c4b033106671020  gdb/testsuite/gdb.base/dprintf-detach.c
 573f503c4a7d3a4ad5a67bc086dd2115  gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
@@ -2232,7 +2235,7 @@ df4632813158fcabaab0f2a0004e8ac4  gdb/te
 af6f9e427bb3d09aa6033ec64aec8775  gdb/testsuite/gdb.base/jit-dlmain.c
 02b1f722a91d764182a90faaaf8dd0b3  gdb/testsuite/gdb.base/longest-types.exp
 f0b536e5291239af1281035e74e1be01  gdb/testsuite/gdb.base/infnan.exp
-4d934dba75f212881e2679e39cee4cdd  gdb/testsuite/gdb.base/relational.exp
+7b937cacb4cf1985de24ec3e2dc1b1d2  gdb/testsuite/gdb.base/relational.exp
 297d058ea65fe792443d5a7ae5c46286  gdb/testsuite/gdb.base/random-signal.exp
 91183ba02b8bd9c72e4ac03aba78b728  gdb/testsuite/gdb.base/sepdebug2.c
 b57bc479f54bce3ef473251298c13bc1  gdb/testsuite/gdb.base/finish-pretty.c
@@ -2262,7 +2265,8 @@ ffcd30d813351005787cb21926697520  gdb/te
 854f10afe4bd9f8244ceb4d4d86802fa  gdb/testsuite/gdb.base/sigall.c
 8b7fea883cac1242178c640317535680  gdb/testsuite/gdb.base/condbreak.exp
 a5014e9c7bfe4197bd1f49c4d5ad373d  gdb/testsuite/gdb.base/dso2dso-dso1.h
-faf06eec619b744da15715543d56859c  gdb/testsuite/gdb.base/print-file-var.exp
+bd37cc727c799d61794cfe63a899d378  gdb/testsuite/gdb.base/ctf-ptype.c
+c56c8bf3c09d4938f0551194ce670099  gdb/testsuite/gdb.base/print-file-var.exp
 fa7f1f52aacdec4073ddd0cbe1a1e7f7  gdb/testsuite/gdb.base/testenv.exp
 3be85937491dc962e9c7a95a8ab2f7c9  gdb/testsuite/gdb.base/jit-simple-dl.c
 77dfcf373aac19bcfa794084dd3ecd10  gdb/testsuite/gdb.base/break-probes-solib.c
@@ -2297,7 +2301,7 @@ bd7a5001bfc3f71c487ae1a2cea997b6  gdb/te
 b714e49b9ba8f7daddc5c31ebe0c083c  gdb/testsuite/gdb.base/paginate-inferior-exit.exp
 22afe422bb2c44fc3bb0355342fdb7e2  gdb/testsuite/gdb.base/global-var-nested-by-dso.c
 1326ff7556666a6a22c5d4c66e6de146  gdb/testsuite/gdb.base/catch-load.exp
-b11340dcf4ab3c338f61d51d483f32b1  gdb/testsuite/gdb.base/step-over-syscall.exp
+ddebe9192f25dabecadcfb8891de334a  gdb/testsuite/gdb.base/step-over-syscall.exp
 176484f0f5bb96ebd6bbfec650eaae75  gdb/testsuite/gdb.base/prelink.c
 9a32a5df86c8f045f57ccfe3fb2222df  gdb/testsuite/gdb.base/break-caller-line.c
 3224b3a91caa57117a928cf5f2a7f695  gdb/testsuite/gdb.base/align.exp
@@ -2311,7 +2315,7 @@ ac0b4b74bdc306ec71b88d83a0cd608a  gdb/te
 3b434edf7c8c762961667d4fa0860497  gdb/testsuite/gdb.base/call-sc.c
 4d26948db2fc1ea9db7ccd8063c6f42e  gdb/testsuite/gdb.base/options.c
 a4ee5f8b6f114af4350ab2c4a700ba51  gdb/testsuite/gdb.base/nodebug.c
-7fd98af8b37b821175af034d338114d9  gdb/testsuite/gdb.base/callfuncs.exp
+8b65f7bd0472fe5fbbf545e8866ec8bf  gdb/testsuite/gdb.base/callfuncs.exp
 4a7b46d1111c7938f6cf93efdf669d52  gdb/testsuite/gdb.base/shreloc.exp
 7145b4b7537e9c5f1664d41a788a48d2  gdb/testsuite/gdb.base/shell.exp
 340f5682bce97b37e8a246cca59adb67  gdb/testsuite/gdb.base/fileio.exp
@@ -2385,7 +2389,7 @@ db568b627957cc0d8ecc95308fc9f516  gdb/te
 a3385d93c3285485b610337ef8614dba  gdb/testsuite/gdb.base/pointers.exp
 8bc8209645da71588123cfd4d4092726  gdb/testsuite/gdb.base/solib-overlap-main.c
 6935acb0c5167bd10db1a46bd79398f8  gdb/testsuite/gdb.base/call-strs.c
-01449cf391067dfbcc64358895cd0233  gdb/testsuite/gdb.base/ena-dis-br.exp
+d4fb80f2899412f6dda37f7a5d6e65dc  gdb/testsuite/gdb.base/ena-dis-br.exp
 f4dc85cfffe93b233a3959961f10c806  gdb/testsuite/gdb.base/options.exp
 6f4e7b67bd850a776b60eef031e62f58  gdb/testsuite/gdb.base/many-headers.exp
 867ca411929548dd2a86ccdc8fc6ede2  gdb/testsuite/gdb.base/noreturn-finish.exp
@@ -2406,7 +2410,7 @@ a251554f9f4c79708e2d216d7094527b  gdb/te
 ad5e06f71f535b78e32820e3e96d4add  gdb/testsuite/gdb.base/whatis-ptype-typedefs.c
 7459949c900f09f8b10a23935ef83bda  gdb/testsuite/gdb.base/dfp-test.c
 f430f90b7b337fd941ecc343e18471f6  gdb/testsuite/gdb.base/complex.exp
-e6b7d2ee8664b3a625142752fd8d2a98  gdb/testsuite/gdb.base/pretty-print.exp
+afe6a00714ecd40728f124b7adaab707  gdb/testsuite/gdb.base/pretty-print.exp
 d01bcb5bbca6784e02f8cd01d3bf1881  gdb/testsuite/gdb.base/gdb1056.exp
 f23d72695ef84cd5986d5e7651c5d6cb  gdb/testsuite/gdb.base/info-fun.exp
 e64ede1084f1cc9dd9ba3ee3b6d3d434  gdb/testsuite/gdb.base/index-cache.c
@@ -2417,7 +2421,7 @@ e64ede1084f1cc9dd9ba3ee3b6d3d434  gdb/te
 2918d84bbfa57ab8dc3307734a8e3d8b  gdb/testsuite/gdb.base/branch-to-self.exp
 52591c1123dec14d9425dd031feecd91  gdb/testsuite/gdb.base/watch-bitfields.exp
 ecdda3f5d7ff21ff9bce5dd6277c41da  gdb/testsuite/gdb.base/bigcore.exp
-f6ab674adbbc30f5cae9e9986d782431  gdb/testsuite/gdb.base/dump.exp
+9de8395ad630e9cb5edfc10c0551f5a4  gdb/testsuite/gdb.base/dump.exp
 e132a0bda6a789c75e20e8d4eb4ebc02  gdb/testsuite/gdb.base/consecutive.c
 a3052bdecf7fb3ee6cefa063907f4db1  gdb/testsuite/gdb.base/jit-so.exp
 3347e4877239b7bc9e0f51f3c38de95d  gdb/testsuite/gdb.base/dfp-test.exp
@@ -2447,7 +2451,7 @@ f33d119dc9af931a02c94d829b92dab8  gdb/te
 682d2ab1e125d39cf1f944de129c3ca9  gdb/testsuite/gdb.base/duplicate-bp.c
 349ba1105ff647224dc330fbf9f9b4d9  gdb/testsuite/gdb.base/break-idempotent.exp
 2ecbcc59cc9b119bc859137c0c9bb9b5  gdb/testsuite/gdb.base/return-nodebug.exp
-fa0b2f4394f837310373a9544133138c  gdb/testsuite/gdb.base/list-missing-source.exp
+b69087be81440c3b65b2e519fe0c173c  gdb/testsuite/gdb.base/list-missing-source.exp
 844b8e82fc777c1369da8b32d99c0816  gdb/testsuite/gdb.base/start.exp
 e71a09a5bd4b5457c6f2ea1e4e5fa498  gdb/testsuite/gdb.base/nested-subp3.exp
 ec6a496413bcedc4623a7c643dae3848  gdb/testsuite/gdb.base/share-env-with-gdbserver.c
@@ -2615,7 +2619,7 @@ fc21f76b8fb88814a282109240870459  gdb/te
 b9ace2bad3fcabaae9ad3c687d2d13f2  gdb/testsuite/gdb.base/savedregs.exp
 829f3b30c2383dee5a32c45d64d496f3  gdb/testsuite/gdb.base/enumval.c
 d107f5705153d3695b752ab65edaf4e8  gdb/testsuite/gdb.base/symfile-warn.exp
-1c26f244b4fbb1938f831f148a9aab17  gdb/testsuite/gdb.base/charset.exp
+1f47bb467369ca4f95f786f615da24fd  gdb/testsuite/gdb.base/charset.exp
 ceb8ac439c59f81c6f81f0bb6599cd71  gdb/testsuite/gdb.base/printcmds.exp
 dbfcac0e69a636942e22be1a7504cddc  gdb/testsuite/gdb.base/sizeof.c
 493a25aacccfcbff65458ff401a2d8b9  gdb/testsuite/gdb.base/catch-fork-kill.c
@@ -2754,6 +2758,7 @@ f375c8eb6f6c3beb8307672487b066bb  gdb/te
 983a2f44b90a6949fc5a44174cf58c50  gdb/testsuite/gdb.base/step-over-fork.c
 419ed3ef1cdc35f550df83f7dcc77f2f  gdb/testsuite/gdb.base/anon.c
 f04d6d85e09df4dc67dc870527742765  gdb/testsuite/gdb.base/set-inferior-tty.exp
+7982569afd53a0646bc59bd7530b00fb  gdb/testsuite/gdb.base/ctf-ptype.exp
 a77c5f8652a63f6b66afabd7485f475a  gdb/testsuite/gdb.base/foll-fork.c
 5beebeb3556f3d14fa78ac70105aeb61  gdb/testsuite/gdb.base/argv0-symlink.c
 9d2bdd9cf89fc18188a33122af0e05a2  gdb/testsuite/gdb.base/gcore-relro.exp
@@ -2776,7 +2781,7 @@ d0f4fe7944d646e70ba4a4e3fba57ba5  gdb/te
 de9dde841dd85a02c06c9f1789c45918  gdb/testsuite/gdb.base/pie-execl.exp
 3b8a680d509fb73b5462705670761b8f  gdb/testsuite/gdb.base/opaque.exp
 9cdd410b56bafd4e69fb6909b5584714  gdb/testsuite/gdb.base/dup-sect.S
-debfee7162b63e0a283327cf115f280f  gdb/testsuite/gdb.base/info-types.exp
+04d6e02b90b4581c733dcd0c2e4a1d54  gdb/testsuite/gdb.base/info-types.exp
 a100278a6f498fdfa4a3a350efe61f4c  gdb/testsuite/gdb.base/lineinc.exp
 88c2035ee1097fd0f3b93c4dfddd0902  gdb/testsuite/gdb.base/starti.exp
 9455d79edb0f4b3fb98f844bb2f4fd28  gdb/testsuite/gdb.base/infcall-exec.exp
@@ -2825,7 +2830,7 @@ b16ff0853eb64e4f0b5ba0d90402a15b  gdb/te
 a109c2569f0819eb20315b1ac0731d94  gdb/testsuite/gdb.base/quit-live.exp
 4a7c6725c2e20b1f7dac6a8c5b8b0352  gdb/testsuite/gdb.base/pie-fork.exp
 04b047456aa9acc4d8210d295c44fd3f  gdb/testsuite/gdb.base/bt-selected-frame.exp
-0c9249236b6707e0c49816c53c0fea1a  gdb/testsuite/gdb.base/break-interp.exp
+b8dd02f425e4f8272248e56ee58a0243  gdb/testsuite/gdb.base/break-interp.exp
 aeab8a460a635f4e3fb75ad85d04fcbf  gdb/testsuite/gdb.base/signest.c
 2c1161e8975b70d938630d61a310fea6  gdb/testsuite/gdb.base/empty_exe.exp
 efa493258c420d8af555ab05e4c8006d  gdb/testsuite/gdb.base/catch-load.c
@@ -2872,7 +2877,7 @@ b263e085b920ccae2568157fcc33189f  gdb/te
 648551151ef705a72a1df915328e06b4  gdb/testsuite/gdb.base/coremaker.c
 97b8a665b119988e28490f75b6e5a3c5  gdb/testsuite/gdb.base/fortran-sym-case.exp
 e30b8b877b033de1b408235a8f90411a  gdb/testsuite/gdb.base/all-architectures-5.exp
-b42506bfeebf14a11ebf97a42287ce1e  gdb/testsuite/gdb.base/pretty-print.c
+9286b3f813d2961fe78fc7d78e926a49  gdb/testsuite/gdb.base/pretty-print.c
 4be5692e4db6133ebfa3a2b0d761ada2  gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c
 3211a4c86f829f902176e70701ad1d61  gdb/testsuite/gdb.base/disabled-location.exp
 c6abd452f6c5c4e6d742cb795642cb5f  gdb/testsuite/gdb.base/nested-subp1.c
@@ -2882,6 +2887,7 @@ c6abd452f6c5c4e6d742cb795642cb5f  gdb/te
 d8b1ecf2b1c3bb52fc9c0161e5f33cda  gdb/testsuite/gdb.base/ptype-offsets.cc
 c03cda1f1f22cb7ab4a4340493b6055d  gdb/testsuite/gdb.base/source-error-1.gdb
 4421ccd98f2df911b5d0d7624376ff2d  gdb/testsuite/gdb.base/info_minsym.exp
+5531d45211ac2a4bc4f3a9c750f2a880  gdb/testsuite/gdb.base/ctf-whatis.exp
 086be3ac61762e3ffa725e74f9b4c23f  gdb/testsuite/gdb.base/execl-update-breakpoints.exp
 eab1ee238a400d5cf3ee2d648440a403  gdb/testsuite/gdb.base/auto-load.exp
 94c5529953a1d25b2a284e49feffe522  gdb/testsuite/gdb.base/find.exp
@@ -2930,7 +2936,7 @@ ebac58ed48b72c4d23a3b031fd2e49e0  gdb/te
 0d8b11d37db0a46f0ff3ce99deeb677c  gdb/testsuite/gdb.base/vla-stub-define.c
 e98db68e42ec8a33968c57142f43c67d  gdb/testsuite/gdb.base/hbreak-unmapped.exp
 194ff910e282212e39207911c9ee80e6  gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp
-9215b1090e800613188fbaa8be20eb45  gdb/testsuite/gdb.base/print-file-var-lib1.c
+f8b19a04dcd9e1ca3ef92d16eed59095  gdb/testsuite/gdb.base/print-file-var-lib1.c
 74fea29665439fe5a2b6ebbd0fa14b1c  gdb/testsuite/gdb.base/disabled-location.c
 1010db58ffca38a2a87e943fc4657550  gdb/testsuite/gdb.base/pr10179.exp
 17155b728fada832a9acb3d4d25aceec  gdb/testsuite/gdb.base/exprs.c
@@ -2954,6 +2960,7 @@ c34d30d688266254e2649bd7db1a1ecf  gdb/te
 fbbeec2891ea913e85e52602f661a132  gdb/testsuite/gdb.base/bitfields.c
 80fb742c6028f138e4ad580d729b403a  gdb/testsuite/gdb.base/lineinc3.h
 003c0efdba6f2cb14c85bdcd5bb2c6c3  gdb/testsuite/gdb.base/fullpath-expand.exp
+ca0e66fa296e8c4ab8573046f2ac6d78  gdb/testsuite/gdb.base/print-file-var.h
 2fc9158cad301b9ffc3f0d31ef3c294d  gdb/testsuite/gdb.base/ptype-offsets.exp
 7f21a0a167c0c956ed55c8f075d7ab27  gdb/testsuite/gdb.base/startup-with-shell.c
 df517535d50f297fdc34eb9e569f228a  gdb/testsuite/gdb.base/infcall-input.c
@@ -2972,6 +2979,7 @@ a5794cabe0c40b6a474d82ef578e55b5  gdb/te
 5ba2f3fd778c72a7dbe113e1962b2b6c  gdb/testsuite/gdb.base/langs2.c
 4d5678707208c0f165cff5f07ebf5038  gdb/testsuite/gdb.base/symfile-warn.c
 d585f39cd5a81512bb3259915c438c02  gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c
+3d537fc158320c835a286d5bf84c8800  gdb/testsuite/gdb.base/ctf-whatis.c
 df8ebeccdd059e15f4db439d2d8d7295  gdb/testsuite/gdb.base/included.exp
 b4d1ac7d71bfc47a4dc49bd236eaf569  gdb/testsuite/gdb.base/async-shell.c
 b10ea074be898cbab6b6585a6f76d647  gdb/testsuite/gdb.base/many-headers.c
@@ -2984,7 +2992,7 @@ eb1a1ac847358514aaf9455ffd7a30ea  gdb/te
 3f963bc74888d52af2106449500bdf83  gdb/testsuite/gdb.base/print-symbol-loading-main.c
 6cd4e80ad1be8beab001c6ce3480d26b  gdb/testsuite/gdb.base/disasm-end-cu.exp
 ca47f0871b171002c646b5b70cfd39e0  gdb/testsuite/gdb.base/watchpoint-unaligned.c
-71b47c12b8142559ff45e5fefbf9826b  gdb/testsuite/gdb.base/print-file-var-lib2.c
+d6a6f82c41fbf816fc3757a7122630af  gdb/testsuite/gdb.base/print-file-var-lib2.c
 cb1c5ba36f75c126fd1ca26f94d1a960  gdb/testsuite/gdb.base/catch-signal.c
 95073cee9c8e9c639cf4ccc36556a93f  gdb/testsuite/gdb.base/interrupt-daemon-attach.exp
 cbe7454227d3f976213e7f6859788000  gdb/testsuite/gdb.base/auxv.exp
@@ -2997,7 +3005,7 @@ cbca4021b81834df64f23994321f8658  gdb/te
 aa0440e5086c8d58feedaef0af5fc0d4  gdb/testsuite/gdb.base/dprintf-next.c
 e97692b1e8aa59fb622c3636e877c35e  gdb/testsuite/gdb.base/shr1.c
 7de13b24548f6a29b1e84492b3f44b9f  gdb/testsuite/gdb.base/step-symless.c
-16b912c9bacea4b867bfb59a36293683  gdb/testsuite/gdb.base/print-file-var-main.c
+273598e6549bde1fa7ec81ec6468dd96  gdb/testsuite/gdb.base/print-file-var-main.c
 c3fe5563660be75156daedc124827ef1  gdb/testsuite/gdb.base/warning.exp
 40ea0b637bee041d22c72ad5ce356d17  gdb/testsuite/gdb.base/attach2.c
 63ae8aa4a10eb810864b5481a6f83234  gdb/testsuite/gdb.base/msym-lang.c
@@ -3036,7 +3044,7 @@ e5d8d784ad6704909d567be6f171a9bd  gdb/te
 c1033f51a1149d5e1323af64d54a3681  gdb/testsuite/gdb.base/fixsection.c
 8d48e2a975c8f01111876f61f56d03a3  gdb/testsuite/gdb.base/siginfo-thread.c
 b97a05502be3d818ca6bb1ad21628f3a  gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c
-e7576a5bae42891f0a51dcbcbc1e6733  gdb/testsuite/gdb.base/structs.exp
+8401d4bddcf0c90648943d576960ea87  gdb/testsuite/gdb.base/structs.exp
 e2d1889a1dd2a8a94d9317c1d7a9ecb1  gdb/testsuite/gdb.base/interrupt.c
 96e8f1f8fcf3c12dda0706c9f02f2081  gdb/testsuite/gdb.base/gnu-ifunc-final.c
 a9965d26e2bdf896ed423a830cfd94f2  gdb/testsuite/gdb.base/stack-checking.exp
@@ -3045,7 +3053,7 @@ a9965d26e2bdf896ed423a830cfd94f2  gdb/te
 1ef6f5686e16cef8d366e475066e4ee9  gdb/testsuite/gdb.base/watchpoint-cond-gone.exp
 c5df183db81d06d4cd8b83eca54e12d1  gdb/testsuite/gdb.base/charset-malloc.c
 2f8742fc85f8d24581e6ca4c3db2522e  gdb/testsuite/gdb.base/disasm-optim.exp
-0ffba15106bb019dee36fdbd1149418a  gdb/testsuite/gdb.base/style.exp
+efc4ee0a50cc1924727e8655f0c082b4  gdb/testsuite/gdb.base/style.exp
 004b3e00c675d613aeba24661ebe8848  gdb/testsuite/gdb.base/advance.exp
 761d61430b1bdab09f7a4a328c2d31f3  gdb/testsuite/gdb.base/stap-probe.exp
 f3f04fe4774e23ff88a0133b7eec9c82  gdb/testsuite/gdb.base/valgrind-disp-step.c
@@ -3055,7 +3063,7 @@ afadd781266d4c5a2fb1d8e2186c8b15  gdb/te
 a513d3602fe76f1d7c127c49bc22509b  gdb/testsuite/gdb.base/symbol-without-target_section.exp
 7d0addf22c30fbce0adcfa297e8ad197  gdb/testsuite/gdb.base/finish-pretty.exp
 f10a93755c306475b4fcf76a4b4c76d2  gdb/testsuite/gdb.base/skip.exp
-4f9d8dd14684283f137af369df211d17  gdb/testsuite/gdb.base/annota1.exp
+cb1a8d5c8134dd6d77d06ef60d0f066f  gdb/testsuite/gdb.base/annota1.exp
 7b9b0d53f0ace69ab17bb64371c68012  gdb/testsuite/gdb.base/dcache-line-read-error.c
 c8c1e49248bfcb44830f4d7931db7236  gdb/testsuite/gdb.base/cond-expr.exp
 d227cd5acdb0fca7bc3bc43b226fcf96  gdb/testsuite/gdb.base/pi.txt
@@ -3097,6 +3105,7 @@ b164d51305157d96c9781b04cbd8e1b6  gdb/te
 2895e505e7bdcbc2655aaa2a7c7639c3  gdb/testsuite/gdb.base/dcache-line-read-error.exp
 3c99a191f5b478ae0ef7c45cbdff6137  gdb/testsuite/gdb.base/save-bp.c
 67ceb27bf818d3f6da08eafc5153690d  gdb/testsuite/gdb.base/shr2.c
+2c9dfb2641bcc7d2e99145a6ce953e66  gdb/testsuite/gdb.base/ctf-constvars.exp
 f616b8ab171f56272121a3834dd5b2ad  gdb/testsuite/gdb.base/all-architectures-6.exp
 61f256d22ac52ea17c5b5a1ff99f58b1  gdb/testsuite/gdb.base/sigrepeat.c
 89a5673692fee67d928f1249533b1563  gdb/testsuite/gdb.base/auto-connect-native-target.exp
@@ -3154,6 +3163,7 @@ cc19ee1eb79fe010ad5bab989640c407  gdb/te
 f55b52b0523c4768681e2459c4db5e83  gdb/testsuite/gdb.base/foll-vfork-exit.c
 ef2f4f2614aaba0ffd89471c8736d950  gdb/testsuite/gdb.base/memattr.c
 b628f691880445bae3d464ccfc5d5f91  gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c
+376a2d62c5ce9eab854c867b899a9d7a  gdb/testsuite/gdb.base/ctf-constvars.c
 63f8c4b52aa9552861675aa446f41d59  gdb/testsuite/gdb.base/sepsymtab.c
 439c9c43ed0a17d1908a37e7a1bc1aa0  gdb/testsuite/gdb.base/expand-psymtabs.exp
 02f6dd435dc728409e7977967267dd23  gdb/testsuite/gdb.base/restore.exp
@@ -3242,7 +3252,7 @@ aea4ca1d40c512f549b723fb8ae493fe  gdb/te
 d4a33e91674ee8f6c15a57688ed7fa63  gdb/testsuite/gdb.fortran/block-data.f
 0eb73bd75a8a908765c54df96b105793  gdb/testsuite/gdb.fortran/vla-type.f90
 349c7f9dc0c19d0a2315a2283dde7dbb  gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
-cffbe877c052e60b90dd03b2ca40d7f5  gdb/testsuite/gdb.fortran/nested-funcs.f90
+5be2b4343af7f054fdc09f5a9633f16f  gdb/testsuite/gdb.fortran/nested-funcs.f90
 7fd76fd4c31892532f77a5bcfd507f7f  gdb/testsuite/gdb.fortran/array-bounds.f90
 87efbe3b4938c162e596e59b81e2503e  gdb/testsuite/gdb.fortran/derived-type.f90
 329a8ba845512ec868e9e0c3de3e51d4  gdb/testsuite/gdb.fortran/ptr-indentation.f90
@@ -3266,6 +3276,7 @@ b5c48b320404fe67a6eb43f2b2a55a39  gdb/te
 966dd8d569abfe0e8c1a8a13dc4f8646  gdb/testsuite/gdb.fortran/block-data.exp
 eb1b11af62b865da0e1131c5c418b8e5  gdb/testsuite/gdb.fortran/print-formatted.f90
 8061d9e6f99f63e2360bc8321b37f303  gdb/testsuite/gdb.fortran/library-module.exp
+1dda002ac9e1f2fd5a2c912530bd5ef3  gdb/testsuite/gdb.fortran/nested-funcs-2.exp
 5b4488b46dee8efd670abfdebe93e15d  gdb/testsuite/gdb.fortran/array-element.exp
 fc16b1ac8ba71a42eafdc86f00292cc5  gdb/testsuite/gdb.fortran/module.exp
 f32822ae2e82c1688668c8450fb544d8  gdb/testsuite/gdb.fortran/vla-history.exp
@@ -3287,13 +3298,14 @@ a49e8209cc5e2ee4d9e323004d29531d  gdb/te
 39bb8c8add5476e3ca38f5ee219ddb68  gdb/testsuite/gdb.fortran/common-block.f90
 894cd1c42cc4491dc48b6d6928e8575b  gdb/testsuite/gdb.fortran/exprs.exp
 3e3fb892bb16319e3e80ed39e81a01d2  gdb/testsuite/gdb.fortran/vla-ptype.exp
+8287b34a073eb0050f2da89e82baf1d2  gdb/testsuite/gdb.fortran/nested-funcs-2.f90
 088fc01d2a072fb3d78fcc1e90e52c9f  gdb/testsuite/gdb.fortran/vla-ptr-info.exp
 81112d97fd08cc4836f56e35814a15a9  gdb/testsuite/gdb.fortran/type-kinds.exp
 7bd63ea304ad437c9a8d0a223b91d057  gdb/testsuite/gdb.fortran/multi-dim.exp
 66046bb37d7298553b200ae7577d63b8  gdb/testsuite/gdb.fortran/array-bounds.exp
 9e7e114c093d30d1affc3c20d1d25b7f  gdb/testsuite/gdb.fortran/logical.exp
 8cd7bb4d2ca1586f84d81d5926f7e3f4  gdb/testsuite/gdb.fortran/intrinsics.f90
-6033caaefee9dca5131bb96e0a6d2375  gdb/testsuite/gdb.fortran/nested-funcs.exp
+f4f43b29f917c25a6c9ea5fcc2a376dc  gdb/testsuite/gdb.fortran/nested-funcs.exp
 b8fd51c608bff4b3c1b2180ee1de0ac3  gdb/testsuite/gdb.fortran/intrinsics.exp
 27a94c914021629b022d2f0b280fc369  gdb/testsuite/gdb.fortran/type.f90
 4438989f83a23024994623ff041bdae9  gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
@@ -3674,11 +3686,11 @@ f3d5bbaa803540a2d5c19000407c7e11  gdb/te
 1fe39382eafa6971c8467f3d331fb7b4  gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
 6dcd0cc3c92dc6ab3b20941fb47faa9a  gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c
 2e0f6d9824a511a9d7a49c691feba4fc  gdb/testsuite/gdb.reverse/break-reverse.c
-ff66174c90bf84eb3035e430c0c2224e  gdb/testsuite/gdb.reverse/sigall-precsave.exp
-25cf805300d1b34802e2e1ed6b41ef9d  gdb/testsuite/gdb.reverse/machinestate-precsave.exp
+980f38d9bc8be5e564b98d4f0ca63b9c  gdb/testsuite/gdb.reverse/sigall-precsave.exp
+3c77a248b741e1b0a4d1a9e1e2aa3f23  gdb/testsuite/gdb.reverse/machinestate-precsave.exp
 2befcef667bf8a487bad0bc9168f5e74  gdb/testsuite/gdb.reverse/i387-env-reverse.exp
 440c35b8bfee3d175d706fc67a337e43  gdb/testsuite/gdb.reverse/waitpid-reverse.exp
-a78fcb1d2c613b48feb76be965c2a7f6  gdb/testsuite/gdb.reverse/break-precsave.exp
+742b63240e14e22daa7e4178e62a8e0c  gdb/testsuite/gdb.reverse/break-precsave.exp
 2d90279530af889a559fc159a7e812ee  gdb/testsuite/gdb.reverse/getresuid-reverse.exp
 3629508292ba345c68dcc7d29802cc9a  gdb/testsuite/gdb.reverse/solib-reverse.exp
 66081d5a8ca53ffce2f02f5ba94afc17  gdb/testsuite/gdb.reverse/shr.h
@@ -3688,11 +3700,11 @@ b4d81322a5026f4a974944a279848f84  gdb/te
 5d97e73f5aca4b205bfe90b6a0259359  gdb/testsuite/gdb.reverse/until-reverse.c
 c1e37f820f9c04d4038ca23c6c31b691  gdb/testsuite/gdb.reverse/watch-reverse.c
 8120118298cdf9bc80f07eff8ed5b411  gdb/testsuite/gdb.reverse/time-reverse.exp
-09f085234a2f4ebb1fd0ec2f5b280c75  gdb/testsuite/gdb.reverse/machinestate.exp
+8d8965bfe8d136f774c0e300f1f491aa  gdb/testsuite/gdb.reverse/machinestate.exp
 4b5e24bf452d8c7dee27e3131d4d244e  gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
 0f69f63db5f86daf6c6bf690e5f8f4a9  gdb/testsuite/gdb.reverse/step-reverse.exp
 fda5852b46809d6db2888a609edf8a1e  gdb/testsuite/gdb.reverse/pipe-reverse.exp
-6297cd576dc7fc3ac7860d99beda6a78  gdb/testsuite/gdb.reverse/finish-precsave.exp
+d4644d662f1eecdbd81eb1794b7d9e7a  gdb/testsuite/gdb.reverse/finish-precsave.exp
 d34ebfd4dc2afbc16af474cd877ec078  gdb/testsuite/gdb.reverse/i386-sse-reverse.c
 515f0a43669dda9765482cbba93c62b2  gdb/testsuite/gdb.reverse/i386-reverse.exp
 d5f8a4d67b1e771b51e6729cc0e5a34c  gdb/testsuite/gdb.reverse/finish-reverse.c
@@ -3702,34 +3714,34 @@ fffee51e76123a658dd719ebf222799f  gdb/te
 3324e2bb106a9b9279ac3127170de20b  gdb/testsuite/gdb.reverse/i387-env-reverse.c
 26ec9b152cb8d6309d9898f3a11d74a0  gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c
 6561ef388116f7c3d2626ba2651da89e  gdb/testsuite/gdb.reverse/consecutive-precsave.exp
-1644967c184e876bcf0eb926d14db32a  gdb/testsuite/gdb.reverse/watch-precsave.exp
+da022f00c2b6adedf8162fba23c855b0  gdb/testsuite/gdb.reverse/watch-precsave.exp
 a76cc9872172eac8f6926ad0d78866e0  gdb/testsuite/gdb.reverse/ms1.c
 dd578e3bdd6518ffc67afe4e1ade2d26  gdb/testsuite/gdb.reverse/waitpid-reverse.c
 e9c59f3349caa66575c3ddb2e4f7b6ca  gdb/testsuite/gdb.reverse/i386-reverse.c
 6ad571b84c82d3fa19fdd14fb58131cd  gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S
-bd2a632a80ac39c8a304585f00abdb65  gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp
+4cb1089c325ce3d473e3cb3f20f09300  gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp
 45ee008407bf492057bcef34850adf2e  gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
 c3b00aaa89d04ebd2dc6712c5859d1b7  gdb/testsuite/gdb.reverse/pipe-reverse.c
 5e493ee979b2e6b70dbd67b39b075496  gdb/testsuite/gdb.reverse/step-precsave.exp
-8e4acc79a2b498f59285c3a2e51f8391  gdb/testsuite/gdb.reverse/break-reverse.exp
+e4a6468a9e88e789bb301cc1fc359cbb  gdb/testsuite/gdb.reverse/break-reverse.exp
 2bfece1a68d28b8e2461b5c981cfd162  gdb/testsuite/gdb.reverse/rerun-prec.exp
 c6821d73a4e35015a187bae037e5970e  gdb/testsuite/gdb.reverse/fstatat-reverse.exp
 c4fb5bfb379c44093bf1885ac3c2b5cd  gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
 ffbef4cfeede8b87606dc0c950bdd0d4  gdb/testsuite/gdb.reverse/consecutive-reverse.c
 904e18982a30c658be5fa47725326344  gdb/testsuite/gdb.reverse/i386-precsave.exp
-101e0012b8aa710c7d2d9efcd13fc80e  gdb/testsuite/gdb.reverse/finish-reverse.exp
+87de7a8195747c84354b2c5cc5e80923  gdb/testsuite/gdb.reverse/finish-reverse.exp
 8ecdc6a9e46a9f5fd4d31fb86edd0237  gdb/testsuite/gdb.reverse/insn-reverse.c
 bf4450b957211dcbf2d3588c0b486da1  gdb/testsuite/gdb.reverse/insn-reverse-x86.c
 91f1d48f2d89dc54a532c8b5bd2caf0d  gdb/testsuite/gdb.reverse/shr1.c
 3f3295147c4369bd5452816f24e5090d  gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c
-3ace3206950ce7880683e305e36242c0  gdb/testsuite/gdb.reverse/sigall-reverse.exp
+0e24c389f9de38022821c6e520a73eee  gdb/testsuite/gdb.reverse/sigall-reverse.exp
 371a65183dc662e41f3ace7a03fb269d  gdb/testsuite/gdb.reverse/recvmsg-reverse.c
-72a81b8ce75b089c22f5b9d89c386970  gdb/testsuite/gdb.reverse/watch-reverse.exp
+f2f6c5e9ab14d8a9489d4da6b7325c91  gdb/testsuite/gdb.reverse/watch-reverse.exp
 be304891f79d409b930648db0ac09d58  gdb/testsuite/gdb.reverse/ur1.c
-c57c14d19a67a5d659a4d9b7b4f4cb9e  gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
+95f4d072647335ec5ab3d1eebb7f8974  gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
 9ffb5811f8beb114a2d5afa1a0b9cb7e  gdb/testsuite/gdb.reverse/step-reverse.c
 e041d9075f633058b46e5465a8b8438c  gdb/testsuite/gdb.reverse/shr2.c
-d60013c077117949dcf9b814f72bd1cc  gdb/testsuite/gdb.reverse/readv-reverse.exp
+372b9955d4e8734c8e54b5ae28904cfe  gdb/testsuite/gdb.reverse/readv-reverse.exp
 4b47c3ef736bb23dd2baed0f8a84f340  gdb/testsuite/gdb.reverse/s390-mvcle.c
 eacbef71e850954eee9281e2cd13dcdb  gdb/testsuite/gdb.reverse/solib-precsave.exp
 7287898ff83b2ad3153f6f7dcdea751e  gdb/testsuite/gdb.reverse/i387-stack-reverse.c
@@ -4034,7 +4046,7 @@ a3ead1e63a590fe3f795289fc1af83c0  gdb/te
 74be94340b691efa47d279ec4af58184  gdb/testsuite/lib/gdb-guile.exp
 905d69d4d747d3c6a6b0f5fbf5e309b9  gdb/testsuite/lib/memory.exp
 d90229d80d73612f88adeab7d81e81e9  gdb/testsuite/lib/cache.exp
-699a6b6c998640c913fc0cb920c607c9  gdb/testsuite/lib/gdb-utils.exp
+7d242152b978c1acd11febc047e5a81d  gdb/testsuite/lib/gdb-utils.exp
 dd3a0c6a8b6678c975a5d613f4580475  gdb/testsuite/lib/dtrace.exp
 d581ddf431d451de08f3a2c26384aeb8  gdb/testsuite/lib/data-structures.exp
 40f141a9f69a3c2ae8ffdda09d04fe2d  gdb/testsuite/lib/cp-support.exp
@@ -4062,7 +4074,7 @@ ad7c35ff788ad968c44b9b05d466bdd9  gdb/te
 449fdf67df4f576905fe2d430029f636  gdb/testsuite/lib/prelink-support.exp
 02afb85a1fb26fbc069e4c97b3933a8f  gdb/testsuite/lib/opencl.exp
 0d0ccc80941c04e2e66a189f3faa1fb9  gdb/testsuite/lib/perftest.exp
-ffdfe2ff6905fe2b8053418c00fdfb43  gdb/testsuite/lib/gdb.exp
+ff410e36f815815ecc89cd65a53a0741  gdb/testsuite/lib/gdb.exp
 634c9eb78e3905d8a44450eda92f6543  gdb/testsuite/lib/compiler.cc
 2ce5f63e3001d2cbd1ad5daf077b18a0  gdb/testsuite/lib/opencl_hostapp.c
 4c4f00f092de08a5b41182a813508d9f  gdb/testsuite/lib/valgrind.exp
@@ -4082,11 +4094,11 @@ aa47bdd6faacf6f10a56db6d37cec392  gdb/te
 75565aa716f5d584b5df6cbe8967bb60  gdb/testsuite/gdb.linespec/cpls-abi-tag.exp
 d01fe51f6de7b2c746ce40fb0e447cfd  gdb/testsuite/gdb.linespec/thread.c
 b3223223f49dcbf9060028a2e0d275e9  gdb/testsuite/gdb.linespec/linespec.exp
-bb46a41f223b85850541e441cab395f7  gdb/testsuite/gdb.linespec/ls-errs.exp
+80b36d16798c08d09d5c4d4b411edc37  gdb/testsuite/gdb.linespec/ls-errs.exp
 aa70048ab8248000850dbc08fce6c95d  gdb/testsuite/gdb.linespec/break-asm-file.exp
 90ce2c915fd58b029800d682c7615c15  gdb/testsuite/gdb.linespec/break-asm-file1.s
 b74e5ecda791e030b4b51cd4e6b087a2  gdb/testsuite/gdb.linespec/macro-relative.exp
-bdc56db224d93d902a4f10c1b84633e5  gdb/testsuite/gdb.linespec/explicit.exp
+ac3c142d02b76086aefcfd9a9b45c81d  gdb/testsuite/gdb.linespec/explicit.exp
 ca5527bb52cc86f6ce981d6c6b06db11  gdb/testsuite/gdb.linespec/break-asm-file.c
 ad1ce88914607170cb9fb2f19d6068b8  gdb/testsuite/gdb.linespec/3explicit.c
 6305fa2293a9842e4f9c0a079d074217  gdb/testsuite/gdb.linespec/explicit.c
@@ -4299,6 +4311,7 @@ ec735ba9495e7aba73aac5888b2b12e7  gdb/te
 cd1668ced544861eb99b2e5c44e2e3a0  gdb/testsuite/gdb.threads/thread_events.exp
 8d83f834e57b1fb4a92faac9b65ce196  gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
 8132b6ad229ef7e797e663b75fc5d002  gdb/testsuite/gdb.threads/hand-call-in-threads.c
+ed5edfa8fe2ed576c4a01fe7a85efb3a  gdb/testsuite/gdb.threads/stop-with-handle.exp
 c3c311d2fd6d56897b6ac6f0380a0146  gdb/testsuite/gdb.threads/watchpoint-fork.h
 ef9b7f83413c33594484b03b9a089e71  gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c
 a6e2141a547a89c06e48889f13b4cc45  gdb/testsuite/gdb.threads/thread_check.c
@@ -4354,6 +4367,7 @@ b760b9cb959f2a3805bfd05522bbad50  gdb/te
 2772957d6bf8c35883fd5637e8fe1f42  gdb/testsuite/gdb.threads/print-threads.exp
 761d0e3aeb60961bc5cda51e2402f74a  gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
 f0c7972524767747d4079bc1a2f9d0f1  gdb/testsuite/gdb.threads/multiple-step-overs.c
+0f15bc73943ad0f1b0e1c04af34607e0  gdb/testsuite/gdb.threads/stop-with-handle.c
 708c8b4a71f404245ed70212f3f0114c  gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c
 46f429c76db738fc8a4a9de9534d220e  gdb/testsuite/gdb.threads/signal-command-handle-nopass.c
 3955de857e18263cdaff2fab40e147b4  gdb/testsuite/gdb.threads/next-bp-other-thread.exp
@@ -4417,7 +4431,7 @@ a73456a413ec206c45a1c05bede47b75  gdb/te
 3ae360ac3827f64fb894dcbec57961b3  gdb/testsuite/gdb.go/max-depth.go
 68d17058fa82304a192749f0eadc138d  gdb/testsuite/gdb.go/strings.go
 81b7ed6cb92c627d245bd2efc4b953b9  gdb/testsuite/gdb.go/methods.go
-404badb50a4a0bfcffdff21e019f4b03  gdb/testsuite/ChangeLog
+5f5fb6e9ff3d64534144301f7dc9e74b  gdb/testsuite/ChangeLog
 b3f11b21e5921c419a43f93720dedf85  gdb/testsuite/gdb.asm/empty.inc
 2f2be836393e53a114f382c2872fd5fc  gdb/testsuite/gdb.asm/asm-source.exp
 f1621bbbb2acbec5adef86d7d9549975  gdb/testsuite/gdb.asm/bfin.inc
@@ -4970,7 +4984,7 @@ f019fd93474c505f2007b53582f8ee41  gdb/te
 803e5c9e1775419e56ae8add0339f2a4  gdb/testsuite/gdb.ada/iwide/classes.ads
 4bf4bea52495c2afa6fd3f669a6f4109  gdb/testsuite/gdb.ada/iwide/p.adb
 ed556919dacb52eee593faeee6af8bca  gdb/testsuite/gdb.ada/iwide/classes.adb
-6697d8c2c14c84a87545252751d27eb8  gdb/testsuite/gdb.ada/catch_ex_std.exp
+369f011fa659c4a715aa3eebb84c4cb1  gdb/testsuite/gdb.ada/catch_ex_std.exp
 b3dcfd4603edb9ff5d2828954330d751  gdb/testsuite/gdb.ada/mi_task_arg.exp
 553d453deb668d919400423ef836ef92  gdb/testsuite/gdb.ada/mi_task_info.exp
 96591927f66b3c24d67755ed6c37a2b5  gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb
@@ -5170,13 +5184,13 @@ b35ca50922c855482b273651492e6276  gdb/te
 08b0e399316f8a505836434c823070f2  gdb/testsuite/gdb.rust/traits.rs
 5319296b4062e8bde48149111d6cef7c  gdb/testsuite/gdb.rust/modules.exp
 6c7c5aa2028da0fd056d8e92bef83e73  gdb/testsuite/gdb.rust/unsized.rs
-b948745088478f63e012f30a5a414175  gdb/testsuite/gdb.rust/simple.exp
+ea562be413a22e6af56dce9c94713a58  gdb/testsuite/gdb.rust/simple.exp
 67930d76e02bb91ae4ab876937f04aff  gdb/testsuite/gdb.rust/watch.rs
 a43d3b4db4a44e4d682a9214bd6efbd2  gdb/testsuite/gdb.rust/traits.exp
 9068bbce74a287559cae22f5cfbb123d  gdb/testsuite/gdb.rust/modules.rs
 b2ca5e4d7ac119d2a47dd59ff14f09dc  gdb/testsuite/gdb.rust/unsized.exp
 282c4e9c1773c297d57c2642b70d426f  gdb/testsuite/gdb.rust/generics.rs
-61870e20c97ba1ac2c80bfabe585bebb  gdb/testsuite/gdb.rust/simple.rs
+ba5dd952f91a80635cdbae15d19a3837  gdb/testsuite/gdb.rust/simple.rs
 a36c2e9f8bf7f9d788db20927e18e921  gdb/testsuite/gdb.disasm/t12_bit.s
 70b15852295559a37b00c60d55167563  gdb/testsuite/gdb.disasm/t04_sub.s
 a4d87ffd98518c37f97033028c081a9a  gdb/testsuite/gdb.disasm/t01_mov.exp
@@ -5242,48 +5256,48 @@ fc41122ade5af8a08f4674de7e688c82  gdb/te
 9ac5514a454173af6d2ce46435dde817  gdb/testsuite/gdb.modula2/unbounded1.c
 9bbed41578331d2318d5d7ddb0fe58d6  gdb/testsuite/gdb.modula2/max-depth.c
 29e88756c6c310c96a2006047bfcbe23  gdb/tilegx-tdep.h
-407c0caeefb3e9401e0359099d8f2c80  gdb/symtab.h
-963f19eec56494e075c8ef5b7eba4c2a  gdb/f-valprint.c
+eba97cdaede1d4e4e020cbbf33277553  gdb/symtab.h
+1f67f85f1c1012b8cf9bd3d998933b74  gdb/f-valprint.c
 b4661232e1c651351e7aab789eebdb61  gdb/gdb_curses.h
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-99c3e4cef090f4fea068dab6871a8d81  gdb/doc/gdb.info-3
-82a0df010a9ad61630dff237d63defab  gdb/doc/gdb.info-4
+8e43130d739083faf8f5bbacd3caaeb3  gdb/doc/gdb.info-3
+d5426ae35e4f77f8a748191a640bad29  gdb/doc/gdb.info-4
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 16678295b5adc8b919f4a12d3ed4dbb5  gdb/doc/Makefile.in
-3fa7af55ad25b95437567419a2486e35  gdb/doc/gdb.info-7
-ba81eb51e4403f91eee328d98b34e0db  gdb/doc/gdbserver.1
-409e53fb962f88c74cea98080d0da8a3  gdb/doc/guile.texi
+780724e038d0651bce5139880457d5dd  gdb/doc/gdb.info-7
+7b3ba263e75d743e886f81fabbde2e50  gdb/doc/gdbserver.1
+34e70c52a663f6a691f6ceb17e8b3e48  gdb/doc/guile.texi
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 a07e6b7f88c558d15d03adeeaca94c74  gdb/doc/stabs.info
-a3167cf1dc2300bb11e8bfaf9c2062ed  gdb/doc/gdb.info-5
-ca0848e2eb87935d7caa03787e0bf890  gdb/doc/gdb.info-8
+38a49c861a82f5121dcba69ab6f40452  gdb/doc/gdb.info-5
+746544ed26a1abfa7b1e5d0804bb6e32  gdb/doc/gdb.info-8
 9137c9e47e1692b8efec8e28482aa6fb  gdb/doc/agentexpr.texi
 66674dc351ba95941f422dc18cae24bb  gdb/doc/.gitignore
-d9283538b2e7096209b370adc43b6e78  gdb/doc/gdb.info-1
+c00358c99a232caa2beb376b8a096676  gdb/doc/gdb.info-1
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
-abcd0ed2dc52c01a0d3fe8b55e45863b  gdb/doc/gdb.info-6
-274592e440f5ae286b206931a4d15333  gdb/doc/gdb.texinfo
-18bd59611f9277f6c4172611551bcf4e  gdb/doc/gdb-add-index.1
+7f633a516ddb0f1502615ed0665ecbce  gdb/doc/gdb.info-6
+e8b126634a4d79e8bc97d8245b7e8310  gdb/doc/gdb.texinfo
+ea033b5d55a4f0ffd2efac251be9a93e  gdb/doc/gdb-add-index.1
 553b7fe1bf4b5d8b96fdb8cd83503de1  gdb/doc/stack_frame.svg
 04c82b1da7e894a6555868e4f86225af  gdb/doc/filter-for-doxygen
 5a0374965ab816741c91c7eaea412912  gdb/doc/Doxyfile-gdb-api.in
 e41a962402414f62e2f16a22a2783703  gdb/doc/annotate.info
-cf05db23e78633403ea20934706b14ab  gdb/doc/gdb.info-2
+4b0b990428315550d5339ba393c9f304  gdb/doc/gdb.info-2
 fdd79e6125e56c1eb7e28b2a71d5b48e  gdb/doc/refcard.tex
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-3c4bf9c891306f23a501070869a5b42b  gdb/doc/gdb.info
-f5ef40cd45a167ae864b19c4595c4686  gdb/doc/python.texi
+a4be788ebfd5db9f15f898cbbdf902d4  gdb/doc/gdb.info
+a360ff8460196938e417bb4192e00e67  gdb/doc/python.texi
 3b39212c16d58cf203006a2a3c3edcd4  gdb/doc/stabs.texinfo
-f63741b8a5836a87a88d396cab01c167  gdb/doc/ChangeLog
-577558bbbcd5061e7eae3bbf95135f28  gdb/doc/gdb.1
-e5027170ecc912f379c9c8c99e86b798  gdb/doc/gcore.1
+f5c248160de08c86b1e707542a90c178  gdb/doc/ChangeLog
+dd69114c930cf26159ac653727de994d  gdb/doc/gdb.1
+59d92e50628fa8e70efb122538daeb57  gdb/doc/gcore.1
 d39233c86ed6a6dc9e853ae6a11fe03e  gdb/doc/stack_frame.pdf
 cb7ea97486937341d6ae27968ee40d23  gdb/doc/Doxyfile-base.in
 29393ec87c7921291f54ee7b57ccb1d9  gdb/doc/all-cfg.texi
 bf96494e6e4d346175babd5ef9781882  gdb/doc/gpl.texi
 cd5e3faa9bd1b684a73c7d527cdb4988  gdb/doc/filter-params.pl
 7bfdb0765c5d050d204fbb30aeeba0d8  gdb/doc/stack_frame.eps
-8b412889dcd154c36e06c660cf720024  gdb/doc/gdbinit.5
+3441cac2a1372e00c9c3b492fdedf34a  gdb/doc/gdbinit.5
 24d4f8b6396da16d9a8dd98281ac40ff  gdb/doc/Doxyfile-gdb-xref.in
 6f3b23a5f42aba8cbac1bcf7329942e4  gdb/doc/annotate.texinfo
 0b3e26fe6db92700f1e51071ff475193  gdb/doc/doxy-index.in
@@ -5296,10 +5310,10 @@ d08a9379f46f6cbf7f54188e6f7fc001  gdb/st
 1f68d3272b33b380724fe731f1716f7b  gdb/ChangeLog-3.x
 cd24eae6867ab7cd5b6ced221baf2255  gdb/language.h
 ef0399d01e812cfb16bf6ed1f982c774  gdb/thread-iter.c
-daf56f060d0a473ef9247b479635785c  gdb/tracefile.c
+75625706681c284217e9301d552ae62f  gdb/tracefile.c
 20a2aa41e7bd1c2733b66838fa721158  gdb/arm-bsd-tdep.c
 b794c2f8783586fc62fc2c8cb1612934  gdb/mi/mi-console.c
-2f1cb424a64fdc8678cde2177c847140  gdb/mi/mi-out.c
+ef9b27d0879d28759842ab39f3dd60e0  gdb/mi/mi-out.c
 04e09ada08e018989b1327637faa51af  gdb/mi/mi-interp.h
 f99eed23dd28aaa43e5f0241e2919377  gdb/mi/mi-getopt.c
 7266f143bf7bab2c8dbeee4632e520bc  gdb/mi/mi-cmd-info.c
@@ -5321,13 +5335,12 @@ d1b2be78858f84a199c8da4d88bc00d9  gdb/mi
 90b81f951a2351c88c1b4a1fedbb492f  gdb/mi/ChangeLog-1999-2003
 9fe46998c55457562abe330a2e2662b8  gdb/mi/mi-cmds.c
 7c22c60889b5e3b237f31259b88c55e2  gdb/mi/mi-cmds.h
-d8fb6f2c24eb8864a53e663de4a7a94a  gdb/mi/mi-main.c
+4284b9a40e30cde6542c0be00cc6272c  gdb/mi/mi-main.c
 7330863f8e8705d45e875b1d8061462a  gdb/mi/mi-cmd-break.h
-6e40be07c2928ece4676d9d05456f942  gdb/mi/mi-out.h
+0f159abe054cbd8446b5a99f0754c479  gdb/mi/mi-out.h
 c050b1f758db6f5a20452f60703b608e  gdb/mi/mi-console.h
 6fd8648351d4d29904bb8c893f4a63d8  gdb/mi/mi-cmd-file.c
 0cbbad4919bb89b54f34faff4b90437d  gdb/registry.h
-2c19df9299d1bc883420b4ddd8f8ec0c  gdb/ctf.h
 8f186d7198f2c844b075e049f05e7ef0  gdb/varobj-iter.h
 cb55a4b25e672480dbe61545a40a5285  gdb/mn10300-linux-tdep.c
 2929b4bd4ec663c1ff84b100beaa5434  gdb/gdbarch.sh
@@ -5335,7 +5348,7 @@ cb55a4b25e672480dbe61545a40a5285  gdb/mn
 d87f8f330dda7f736350ea5dcff5b709  gdb/ChangeLog-2006
 68d3a06637a7716de76104baf340cd40  gdb/location.c
 c200bdcee840d298ad6c3e21a8e5d119  gdb/minidebug.c
-936fa184407273a47b8b7790758cfe34  gdb/ada-valprint.c
+bfee514599c6c6fd8b531dbfb20d71af  gdb/ada-valprint.c
 d72c0a28942309f3c94ae825059c1bc3  gdb/ppc-obsd-tdep.h
 2cf27bcfcc332ddedfd8ffe5a916c02d  gdb/dwarf-index-common.c
 d134a8c83098ecec6847dcbb51c76264  gdb/annotate.c
@@ -5354,11 +5367,11 @@ f9a5c82f247a236626bee44af674467f  gdb/rs
 8231b684b7d88405d04d2bef46a24822  gdb/ChangeLog-2004
 0262f02056540c63aa04699bbfe073ac  gdb/record-btrace.h
 306eaf503fc34db3e4391f21842c3576  gdb/machoread.c
-035d8f92c137b929f38855949449c108  gdb/printcmd.c
+7fff4c9f7b47a86f5071cb81856dc637  gdb/printcmd.c
 3a6eb757ea7c63d8924d634edc88da51  gdb/serial.c
 81e6fc400bf5d122718f1170d2dbefb1  gdb/gcore.in
 e4de310e4bbe418a317e96ef3070afa6  gdb/ser-go32.c
-4fa6a4227d30601a9b9a454840a67277  gdb/minsyms.h
+6c002048428769fbbfabb882066fedfc  gdb/minsyms.h
 8e9c3f61323f6a6de970ed0469e63a1c  gdb/source.h
 e84e425e4fb11ea693f19116a25c35da  gdb/microblaze-tdep.c
 00b10af7c67042065da5e2c6ff995c5f  gdb/procfs.h
@@ -5373,10 +5386,10 @@ fa65e5caeea359892241390569065984  gdb/ft
 cc8d949a11ca64c3ccff8b7e92449d12  gdb/tic6x-tdep.c
 652e9b357cacf96ad83c4cd7b134e146  gdb/gregset.h
 ddd9418104ebb329f260f6d8483780f3  gdb/infcall.h
-f95c57c8fc1ebd215ec86c83270c2283  gdb/source.c
+3ec1fe00b2d00f22238dfedde0fda1b8  gdb/source.c
 e80bcdf714445215a7895be33ffe0f26  gdb/sparc64-linux-nat.c
 282b55eac069eb15c13cb719dbab4438  gdb/build-id.h
-e5a15d39ae92e4a0e7d0db3d51dd0e9d  gdb/xcoffread.c
+dcc06ae656b30c21034d928725c58fca  gdb/xcoffread.c
 993644193f0c975a4c69a84b925eb00c  gdb/valops.c
 652eeae5b48e928e984068969b0579d4  gdb/d-namespace.c
 227313391cdf00500b2018c18352e00c  gdb/sparc-nat.c
@@ -5392,7 +5405,7 @@ fdfb2d67eb9914bdf64b90817eab97c0  gdb/fr
 c2e44c70bb6c500907865666c02806d2  gdb/hppa-bsd-tdep.c
 13271d97270bcc25dd88f25432867e6e  gdb/typeprint.h
 0cc2bebe355d24d3412e8d657cf4a580  gdb/osabi.h
-1e984ec2027b41613e675d78332956ea  gdb/symfile.h
+01aec1727ac3d0ae667d7c421ad4f3dd  gdb/symfile.h
 be3ebe24b6c7611f1d04f11bc4730889  gdb/aarch64-ravenscar-thread.h
 a48f2ab60600256ed32aae7e1cdf053c  gdb/fbsd-tdep.c
 301431026f0926203ae5ae1022d2bbe1  gdb/gdb_vfork.h
@@ -5401,12 +5414,12 @@ f058ce54f957301d2273e4cae2ecd6cd  gdb/hp
 5674ff7dd13f37fcf7c6fd01309bce05  gdb/obsd-nat.c
 33ef8f6f9955e8dea851712d2b7dabd0  gdb/gdb_bfd.h
 cd9264f4a0a08c80dca6789693d7f3b3  gdb/v850-tdep.c
-31ad92b6b49509d5ede56d2dfc0dbf83  gdb/cli-out.h
+75ca7fe6f309387052fc7569ce70e8cf  gdb/cli-out.h
 27c4e332088f3d88f93eb0d5623b2b58  gdb/build-id.c
 ac58e6906cf3e28e0cb1d9f7fcb5376f  gdb/ppc64-tdep.h
 427a63a5c6a5c8ecac0d794dfdb092c4  gdb/c-valprint.c
 59b50f3575105c4ffad5887eed3baae9  gdb/alloc.c
-c6117bb7c6ad62d90b3f17b3a0cbecd3  gdb/value.c
+56f7f44e400d353c5aeb1f0d5e7516ae  gdb/value.c
 7490309b45ea36f82ae993c8a1daf916  gdb/dummy-frame.c
 26237c9c840d296d3019ace35f5e6e27  gdb/ser-mingw.c
 b6e4670dafc9bb8323887026274d3edb  gdb/completer.h
@@ -5702,12 +5715,12 @@ dbc4dc4321858d3d314ff9201176f4f5  gdb/fe
 6073001c3661aa6680d35a3b59b2915b  gdb/features/aarch64-pauth.xml
 e11c46ffce0d2817a18d200fe9afbccb  gdb/features/aarch64-fpu.xml
 9d9baf6ee79baadc2a660370cb2c1afc  gdb/gdb_indent.sh
-e850ba31c3169583f95c80fa8f75f35b  gdb/infcmd.c
-0ccee919cf44d7e817befc820282ab19  gdb/valprint.c
+d4b098a613a162613b110152a6a32b4a  gdb/infcmd.c
+2f09290db43375c3888745aab81f7a11  gdb/valprint.c
 44c090c066a4e432d2215ffacb328502  gdb/solib-target.c
 7d40f66ff5bf4c4d11a2623bdc59f0ea  gdb/tilegx-tdep.c
-2e6267d5d216949fcb3d17ac4cce0a65  gdb/c-lang.h
-3d3a2aeeb6782f405f2b444c0b2f3a24  gdb/breakpoint.c
+37fc98e9876223442e12822a3ba0166d  gdb/c-lang.h
+748c1818f05f8001582dcee38a348b2e  gdb/breakpoint.c
 d084976038b3fd35a55721c22a6c90ab  gdb/block.h
 c622629ce98d348a92a1d82095ac28ee  gdb/type-stack.c
 95ed11db0f3cb80ed86362e2b3d8b479  gdb/s390-tdep.h
@@ -5722,7 +5735,7 @@ c086e7b7f948f2285c1cbb4d6656689c  gdb/x8
 ed8be94ad9918f5817e0fd33d0b39b26  gdb/gdbtypes.c
 c5ffbe634b4abf2108700a75ba62aa0f  gdb/ppc-obsd-nat.c
 11e488d83e18c4036892ff4450937c16  gdb/mips-nbsd-nat.c
-500416eb3fd8996044d43f212d2b72f9  gdb/elfread.c
+cd8aa3c7399eb2493e4f88393b3005f5  gdb/elfread.c
 f15d1e283f9e847ae3b36dc2408ea6b7  gdb/thread-iter.h
 dd5e9cd4b794e2d0b2e0ab3cf71ee6a7  gdb/aarch64-linux-nat.c
 b62b5f777230687f3911fc1e1cdf283c  gdb/gdb_obstack.c
@@ -5765,7 +5778,7 @@ c88416a9f0d2988fd610dc1ee314665b  gdb/ia
 ff8a4408bf4c628d400cef5087fa71eb  gdb/c-varobj.c
 043bfb3ebe09fd0397c4bc9290842278  gdb/or1k-tdep.h
 10ceb558191ba9e006ac05a11f389806  gdb/i386-tdep.c
-e1b4589547c39279ba057c9b924a4146  gdb/symtab.c
+ebd283b447a38e260ff59cdf432a7f33  gdb/symtab.c
 108e090a7700b6c24cc0220a75175b3d  gdb/osabi.c
 d3170a8bbbd34d38a15902a5b596654d  gdb/m32r-linux-tdep.c
 840e0e0e830e2fd302199c92f049e9a5  gdb/inf-child.c
@@ -5783,7 +5796,7 @@ e9b917d706479499c8fbecd615ef7ee7  gdb/h8
 3f2b067e9465033157280f313b6b21bd  gdb/extension-priv.h
 6204b5556c2197f43279ccac157be052  gdb/s390-linux-tdep.h
 fd7264992cc379ea32d7310ec9794216  gdb/psymtab.h
-1bcf9a8154d21587adf27b66b2de2d66  gdb/ui-style.h
+adc0b8c9ed245cc83198b0c7eb183127  gdb/ui-style.h
 983d73e5ef60aa9f85239deb3fe05bf3  gdb/varobj.c
 412413deb71791bf338df744b63b8778  gdb/alpha-linux-tdep.c
 2ea7cff28a922f84e6a33e423ffe50c1  gdb/aclocal.m4
@@ -5794,10 +5807,10 @@ fd7264992cc379ea32d7310ec9794216  gdb/ps
 7242736b5bba9098c974d0e015b167a5  gdb/std-regs.c
 90d72be4c884a79ded08fa4fbbcb6b9b  gdb/go-lang.h
 9a1fd6216061720bf8556e23cf224721  gdb/i386-windows-nat.c
-138860b991bfd81fa1aad4c23d6d174b  gdb/po/gdb.pot
+bbca2c21b8ddc9357c259a65076aeabf  gdb/po/gdb.pot
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
-c28f3e359bd8b7031f9f06b0ae250328  gdb/break-catch-syscall.c
-ba4c37925e63da54dc163be709601347  gdb/ada-lang.c
+7da5f0db2eb697d3fb85524954abaef5  gdb/break-catch-syscall.c
+28dc5ce78b0d1cdd1769ac6482e74286  gdb/ada-lang.c
 9ec348d0857f0352bf1397e00da1c706  gdb/dcache.h
 b02475bdd50d3c99a983b9a13686dc1d  gdb/system-gdbinit/elinos.py
 3f5b967cd5953ac63c43eae4dcdd511f  gdb/system-gdbinit/wrs-linux.py
@@ -5807,11 +5820,11 @@ d9f3607bab1323c62234289837760737  gdb/m6
 91b2b08c3416065aac5e2ae74a414365  gdb/annotate.h
 d38535504d883ed3480bb4c0dd414b66  gdb/ppc-fbsd-tdep.h
 b41ef90809fe1f03fa389dd9173b503c  gdb/parser-defs.h
-e6deed32ce356ea42ff419b0f484b720  gdb/disasm.c
+7665bec44a0a7bcadce1595640662b43  gdb/disasm.c
 137fab3675e658b2048896b5a7f5d7a1  gdb/memattr.h
 9a38a0074f73b566a8cac7d2615897c8  gdb/moxie-tdep.h
 7f33f67bc62c18988b19f18c381f1a1c  gdb/tic6x-tdep.h
-764e4000855b8cd47489d1fc36264ec0  gdb/dwarf2read.h
+62271b26d1a7a19682c32d92502f972d  gdb/dwarf2read.h
 2df2e6a577389d2a78ef4d7cbefc21d5  gdb/regcache-dump.c
 a28ef3d93a58aad81a6f04ba9d0ed8f1  gdb/sparc64-fbsd-tdep.c
 5e06d10b1356f1d9d51774a8687bb844  gdb/location.h
@@ -5826,7 +5839,7 @@ e3e2430aebaf80b6aca6759cfa9612d4  gdb/nb
 0d4182edc7beb626c56d423668383a2b  gdb/i386-fbsd-nat.c
 094e893d632874e14e92917b8c57c5fd  gdb/mipsread.c
 d4e47464ef8b510c11c547fb163d603a  gdb/amd64-darwin-tdep.c
-724a60eeb00adfb81cea39dd334a2119  gdb/ChangeLog
+6a55676f6b5813039d7af1a97ef69cb0  gdb/ChangeLog
 2fd8f81fb260df7b31ffaaaa44e1d4b9  gdb/go-typeprint.c
 72844164dd4f7823c2ad86ed48f0b44a  gdb/score-tdep.c
 d53f4e4aa4335ee525083954f4c2293b  gdb/xml-support.h
@@ -5840,7 +5853,6 @@ b882ca969c2b633c8a8513e0da4dcbf6  gdb/i3
 65efda740f65c4f1ed294fc42ab225d0  gdb/cp-support.c
 1de2e2c8bd6fc22a95d8484cbf584e4d  gdb/process_reply.defs
 f62b48ff444e0f85fbbb22c1f2adf0e2  gdb/amd64-windows-nat.c
-6bbfadc90a3683bdfbb0348a041a80da  gdb/ctf.c
 82cea3295eab9ef319c02d8fc535700b  gdb/remote.c
 ec36b21691136ef0467817b5aed78b57  gdb/amd64-obsd-tdep.c
 9db106f64fd1c01393d7c4c61909868a  gdb/inf-child.h
@@ -5852,9 +5864,10 @@ a685f4c46fd956888d41d71abbc9a0cc  gdb/hp
 410f8ea4e580e26c93b006a69dc79435  gdb/proc-service.list
 232d4608389ab06ecb9d8eb50dc130b7  gdb/gdb-stabs.h
 dcc09de945cf86f1c77e306e5bf5c1ea  gdb/p-exp.c
-91b84037c38b69e18f3b1b211bb25482  gdb/btrace.c
+725cfe2b30fadb81b10d9866a0032b6e  gdb/btrace.c
+2c19df9299d1bc883420b4ddd8f8ec0c  gdb/tracectf.h
 0c1bb8b0d2e1453631b78d1d4ba2fa6e  gdb/m68k-tdep.c
-c5b8a08bbdcb7f4a7ed18fbc1baea80f  gdb/coffread.c
+db8c213d18497a0e6a812b0d162b1a8a  gdb/coffread.c
 3629f4a01bae6eb86b9eacda4a317361  gdb/findcmd.c
 cd502899e31326c96cb88a08903831d6  gdb/i386-tdep.h
 0118abe07c4d50638985083868d0db78  gdb/linux-nat-trad.c
@@ -5865,7 +5878,7 @@ e15b66cf521662a3d42008410ed3a2c7  gdb/hp
 715bf52c6b52204b62c04d9d8d1d39d9  gdb/symfile-add-flags.h
 4bdf40b20d58db64ad1472ffdb078b73  gdb/nios2-tdep.c
 71c03f2c9096cbbe8cc106d11dec770c  gdb/inline-frame.c
-f1b6501076d78b5217e2f36caf797044  gdb/p-typeprint.c
+46119e08573468fc798478d4dce76338  gdb/p-typeprint.c
 546d5058fb10744f8ff30c4f5f1dab13  gdb/xml-support.c
 b34bd52f65001ae47a617326da9290a3  gdb/amd64-nbsd-nat.c
 48ba8416a477d2f51e300b6c1ad1dd33  gdb/arch-utils.h
@@ -5948,12 +5961,12 @@ b09b0ee5da44df728eb552f6bf6ed138  gdb/re
 7d521124886bd1a212ec6ac542743020  gdb/regformats/s390x-linux64.dat
 40ba412a0b4d6cebeef61c90e6f6629d  gdb/regformats/s390-linux64.dat
 5b7809bbc018af8b2c2bd6f0c2842351  gdb/arm-obsd-tdep.c
-d8ec491c99caabf56c68836c9b123cb6  gdb/utils.h
+02f41a1112c7b2df20fb7cf013d96eb7  gdb/utils.h
 3c99a3f8471159fdf478429762fd1127  gdb/sparc-sol2-tdep.c
 d97beaede16360a10475271a06a10e9e  gdb/procfs.c
 ea3a0339e53fcacc45f5b891634f3e2d  gdb/solib-svr4.h
 09bea3d9c80ca237fb716cb2fe5ba19b  gdb/psympriv.h
-420730b20c461c6724a8ed92154639ce  gdb/rust-lang.c
+9eb879b7980bd9bb0d526cc28c6a589c  gdb/rust-lang.c
 e3cecacdfe4a5f4957ea7a6a3f1d677c  gdb/m32r-tdep.c
 973af4cc4b094b7f4899f04dbd820f33  gdb/hppa-tdep.c
 dea2b5a6b03948793599866325415211  gdb/exceptions.h
@@ -6000,7 +6013,7 @@ d75e5df7abee3d614831bf2e9e9e48d7  gdb/ob
 b57628c489d12a55931c64a1c75bee2b  gdb/charset.h
 97273dc809ad6327b606ddbb85a547ce  gdb/fortran-operator.def
 ec37492833a420567b71a6afa1840bc7  gdb/memory-map.c
-1dee3bd6ec357794da35892a77900bd1  gdb/mdebugread.c
+1d0096a9e688fea144c6cc926f4ff268  gdb/mdebugread.c
 e627ef90ea5e10cf66b83c23af44839d  gdb/progspace.c
 695314fdd81787b828c240a9c7256046  gdb/ChangeLog-2018
 35ae8edab0076f180bd5dd69040556d5  gdb/sparc64-fbsd-nat.c
@@ -6051,7 +6064,7 @@ d2d46bcec6f5aae8f7e2004cbb0d30a8  gdb/gd
 4bf941431e3862c45a6401018503f692  gdb/gdbserver/inferiors.h
 75711701abaf504c2d810ed7b50d0655  gdb/gdbserver/win32-arm-low.c
 15e4fd9096bd20303baa262b7e24ff00  gdb/gdbserver/linux-bfin-low.c
-a87f7cbcd23b4518bff2a47427b45219  gdb/gdbserver/Makefile.in
+73b6e30889a93d8660567a47944cd3af  gdb/gdbserver/Makefile.in
 35b9e1dfff49293ebc44a4abae76bff5  gdb/gdbserver/x86-low.h
 6a7cf3def14023d9725682de58da3bfa  gdb/gdbserver/hostio-errno.c
 c49759dff0e29276ffbfbdc87aa8f26f  gdb/gdbserver/dll.h
@@ -6090,8 +6103,8 @@ a1832d769b372593b9130df5ce7e48e4  gdb/gd
 9ea14aad863809477c84c0c188cf8066  gdb/gdbserver/lynx-ppc-low.c
 b9055c97bb8cb32a290a83ce54f019e7  gdb/gdbserver/ax.c
 8ed2399860092118e617b92ad34bcdf8  gdb/gdbserver/regcache.c
-b263e3c3d4d5c1dca3f5ed3c77be3798  gdb/gdbserver/target.c
-3fb2da5865de0807ccf34aa4967334ff  gdb/gdbserver/server.h
+228a44acf066adf0268e628ce148792e  gdb/gdbserver/target.c
+fe39815be26934b900d30ca445d3b853  gdb/gdbserver/server.h
 fc25825af970ab717c85c8b3e4d3bf08  gdb/gdbserver/linux-i386-ipa.c
 117ca7c66926a45a859c23ea406f929d  gdb/gdbserver/.gitignore
 8a8792901d00c88a71c202ef053608d4  gdb/gdbserver/lynx-i386-low.c
@@ -6109,7 +6122,7 @@ e16962118ed8e2547b542204dfd336bb  gdb/gd
 08486ffffea6e1e470808efcb8a6c576  gdb/gdbserver/notif.h
 3c0613be065b957f79f0b7f3dac36434  gdb/gdbserver/linux-arm-tdesc.c
 e655892808369d4bf0ee51cd2768f1ff  gdb/gdbserver/linux-x86-low.c
-93e272248288549ac230d0b5abfbf052  gdb/gdbserver/server.c
+11e30e413074ef37560b0c0bd9c4de2d  gdb/gdbserver/server.c
 b9d24de1a2b2b930e6b8f57b7b0d3e01  gdb/gdbserver/dll.c
 54d753cd22397bbe52c7ff1d07b60cbc  gdb/gdbserver/debug.h
 486fb9cb4f577430a4ef14275a74b84f  gdb/gdbserver/nto-low.c
@@ -6124,9 +6137,9 @@ eea815266498b2bf0b6eb3ea7c00f156  gdb/gd
 bf9d83d872573e7591621faa8ff8063d  gdb/gdbserver/thread-db.c
 7967452c1a174dbbaf9addf7039b767d  gdb/gdbserver/linux-s390-ipa.c
 d66371af32c6b6d99d5bad5cc116998f  gdb/gdbserver/linux-tile-low.c
-5c84e721c1f0bb5052852b07769d44ec  gdb/gdbserver/ChangeLog
+cea9b9a2215b10d92b1e5d37929f9bab  gdb/gdbserver/ChangeLog
 d6d57c407b1e1f570138c5b6219bea3a  gdb/gdbserver/linux-ppc-low.c
-0a0f92907f27033d40c0390cf48f80d8  gdb/gdbserver/linux-low.c
+891110f6216a831cdbb686804fbf75ff  gdb/gdbserver/linux-low.c
 3bb976eb624e5c4cebf34f9652d67b50  gdb/gdbserver/proc-service.list
 40a1ece39d85775acb990697a91b498f  gdb/gdbserver/linux-s390-low.c
 487dbdd8c7cb1ac94d7331038a648687  gdb/gdbserver/utils.h
@@ -6165,7 +6178,7 @@ ef7f67e5720cf7b193349f8687243947  gdb/st
 ffc93e69a8813484cec63da022b68375  gdb/stubs/sh-stub.c
 aecbdeb81381984cd344df02cca0948f  gdb/buildsym.c
 a430ed9fcd721ad7ea5593bea0c25415  gdb/breakpoint.h
-108ab91a018a09d8294c94775b12838b  gdb/objfiles.c
+b88f4b51cb4008258a42a809a2031f60  gdb/objfiles.c
 336df5aa02e0c34ca27f7c40a8731e7b  gdb/debug.c
 91a2751fd55fc5eee28d4ff5ed905e4a  gdb/sol2-tdep.h
 6c6b05fa57cf08cea265405cd821daa3  gdb/ppc-linux-tdep.c
@@ -6182,7 +6195,7 @@ d200fe4af2d41a112f3dfbf50e5b2f01  gdb/ma
 dafe29925d5cc67b50a71bb43b16654f  gdb/ChangeLog-2009
 77947b97e3f432726813f12e2c1dfa9f  gdb/sparc-tdep.c
 af05bf69bb4a276b0c99c2e7a6e475a2  gdb/source-cache.h
-8db77e5e3f28cf89fd41833a7f6e8874  gdb/m2-valprint.c
+b5d1021f56e5521c22cd526c1e5528b5  gdb/m2-valprint.c
 5fffd8c47764eda70194c34de6e02f2e  gdb/ChangeLog-2003
 43c226560e47973235fbb028f0cc31f3  gdb/sparc64-nat.c
 da0d8ebe8f72aff2225b8424c8c32989  gdb/nios2-linux-tdep.c
@@ -6194,7 +6207,7 @@ d54dab3401ff05ddaa799b4e58843913  gdb/ma
 2b3c57e308e207c12b1159656d0f7cb4  gdb/m68k-linux-nat.c
 be7b69d04d3312d5b6820502e5e55d7f  gdb/arm-nbsd-tdep.c
 c04d9e5e211d2865a07560d241ba52d2  gdb/rust-exp.y
-aef598e437e02519a3965db861556348  gdb/linux-nat.c
+3412ded3f3153468e0ec7081d0755755  gdb/linux-nat.c
 a589b8fa2d251d722fc439789006dbf3  gdb/producer.h
 473f33ba921545be6c0c70ad25c103f4  gdb/nds32-tdep.h
 f2a08a5058f2f62a08f8e61839b7ac80  gdb/sh-tdep.h
@@ -6209,7 +6222,7 @@ c318ef7599f816722fa0bad86a1f0b34  gdb/am
 94ff244eb64268539cec147a8bf6ba6f  gdb/windows-nat.c
 515ab46bb14f15c859c83a0b9e977146  gdb/target-dcache.c
 56d40eefc754edd90f4c3899c7bda35f  gdb/alpha-mdebug-tdep.c
-719c1d0d3b43e867e71c104dc86d67bd  gdb/symmisc.c
+af77f344ca3fa55020c5f1a2b72942c0  gdb/symmisc.c
 9154d59dde7ab48320c6c8d537707734  gdb/compile/compile-loc2c.c
 7d8316bb21438675ae2cb7f997592d91  gdb/compile/compile-cplus-types.c
 cc1dce68cb114961d021bb9c2566f3bf  gdb/compile/compile.c
@@ -6244,8 +6257,8 @@ b8361790d5bf10aa0a3a48493e9a2571  gdb/hp
 ea3666bda49432777051c610649b5ab8  gdb/xstormy16-tdep.c
 43de4283edd0c940a9e8b13715c553e5  gdb/i386-obsd-tdep.c
 527a92f93c7693f095fbe432ab6ad918  gdb/ppc-nbsd-tdep.c
-14dbc13965d0ce622f91cd5ab1077011  gdb/stabsread.c
-a2fad7c3a343fa966549dec04c4867a0  gdb/MAINTAINERS
+2f79b679265b58635adfdfd402f47dbe  gdb/stabsread.c
+0973be782a7b7405caf415e74fa1e563  gdb/MAINTAINERS
 f47044c0373443bbd1b7db7d37d267a1  gdb/arm-fbsd-tdep.c
 684b3f8393021bcde657ce22c1fe785b  gdb/i386-bsd-nat.c
 56c37046ecd5dcc744a9d91597a77e1a  gdb/terminal.h
@@ -6257,10 +6270,10 @@ f47044c0373443bbd1b7db7d37d267a1  gdb/ar
 87f51a66cf71a1a32d8b51d4555690a9  gdb/amd64-bsd-nat.c
 bb87c608ca2c65e1bd64d1f02f4c11d7  gdb/bfin-tdep.h
 37037bcefcc88b4aa766c6577c2a7bb9  gdb/eval.c
-84d195a807c1db51a9430773d14838c2  gdb/ui-out.c
+9ddbffe4cb702b09667b2f702490055e  gdb/ui-out.c
 c5bb4c01723316a1fffafcc5afaa6d52  gdb/amd64-dicos-tdep.c
 df4034a9a8ac1a6ebb31e15d0dc142d3  gdb/sh-nbsd-tdep.c
-d5a7ad65edefed2e0994ffca3c4e5e47  gdb/break-catch-sig.c
+d1695a4a1a6bff70cd5e0b137a9b69b8  gdb/break-catch-sig.c
 2e41aaee4fd6d474c215a6b212931b65  gdb/std-operator.def
 5cdc566b88bdea7c2b881bc53a98c89d  gdb/alpha-obsd-tdep.c
 444446bb0d06d6768b246c2d68e75ddc  gdb/m32r-tdep.h
@@ -6299,7 +6312,8 @@ ba902fbefd7a3d011967d9ce25118fa8  gdb/sp
 c337cded8cd357d85cb3fc6dcffa25a2  gdb/namespace.h
 cff725733e3973ad9439f0b23c0a24c5  gdb/complaints.h
 7558218831b634834f73ead04cee3b94  gdb/msp430-tdep.c
-7742ecdd35e24a4d79767ec820302686  gdb/m2-typeprint.c
+3ec550b60310261208828e21affe0d39  gdb/ctfread.c
+86327a52181304e810b942b99a7692ef  gdb/m2-typeprint.c
 9ec5eaa81809574b860587bbe81ae0b0  gdb/ax-gdb.h
 1a4c4056b4be0418b7a30e908cdcfb5f  gdb/bsd-kvm.c
 1cb85c021d0fdf0a8c77626cf49763ab  gdb/gdb_regex.c
@@ -6318,7 +6332,7 @@ f8dae424d0493add4a0aea80eef7f1bb  gdb/gd
 c6552e03bdc3ef72ac43e8168617136d  gdb/gdbsupport/version.h
 360510f69fff61631c4c48a3659f6875  gdb/gdbsupport/refcounted-object.h
 96a51cac7bef7bb0e91ba4bd61817321  gdb/gdbsupport/common-exceptions.c
-b6839aed12f0d9cda07f363d30f9fa18  gdb/gdbsupport/btrace-common.c
+f9be875411682aba8ed88f0ca0597bb9  gdb/gdbsupport/btrace-common.c
 79f5e95787248c570a86a7f6a9505847  gdb/gdbsupport/gdb_wait.h
 94780ef1d7d7bceaef3620405a09330a  gdb/gdbsupport/cleanups.c
 8e7b2cdcb73863017317e0aa5bdfaf1a  gdb/gdbsupport/function-view.h
@@ -6335,7 +6349,7 @@ d0d3e0d5e451be382cb48ee7c79c79af  gdb/gd
 77b969b013873e314324d105ac5855dc  gdb/gdbsupport/gdb-dlfcn.h
 f4a8abf1fbb1051cd89d181c8ad65e3d  gdb/gdbsupport/gdb_tilde_expand.h
 c9bd55b91d8daa169e82c6f633744a05  gdb/gdbsupport/gdb_optional.h
-744943299afa005fda265315c2ab9f8c  gdb/gdbsupport/common-inferior.h
+a3290f2ed7365e3748decd526d25263c  gdb/gdbsupport/common-inferior.h
 9f928512b902e02c3de6035321c0fa6e  gdb/gdbsupport/tdesc.c
 df32514a7454ab34784e66cb097751aa  gdb/gdbsupport/underlying.h
 e7a8408bfd74f52a34285ef21cc1edbb  gdb/gdbsupport/common-debug.c
@@ -6356,10 +6370,10 @@ f0c0e7b9d63d7d3c0b391aa2078e79ba  gdb/gd
 f914bf96917665a123fec5bcc254db01  gdb/gdbsupport/job-control.c
 14b480b9a17b3d904adf4ce6e6f7fbca  gdb/gdbsupport/scoped_mmap.h
 c717370aa06a7ecd1b88e2130059bfba  gdb/gdbsupport/scoped_restore.h
-62bfb1bfa55a062fcd227939b127d298  gdb/gdbsupport/gdb_string_view.h
+d2eb5056b67ef31b7cf1eec0eeac60b5  gdb/gdbsupport/gdb_string_view.h
 6be07717af3ac2e580fd350bcd67dc36  gdb/gdbsupport/rsp-low.h
 1051f2450834f86c537ebd14eef93696  gdb/gdbsupport/common-utils.c
-2e74bde17b4e93a2f0a3ba3590fd3ede  gdb/gdbsupport/gdb_assert.h
+d4ce6a61596d8b5dade3f999c8fb046e  gdb/gdbsupport/gdb_assert.h
 2d44d863416676392aac9f6ef4032faa  gdb/gdbsupport/gdb_tilde_expand.c
 179d6009658c1194072ce52d13d18315  gdb/gdbsupport/cleanups.h
 2c7d34b493f4e8fdd6bd0052c28ee229  gdb/gdbsupport/common-regcache.h
@@ -6377,14 +6391,14 @@ ff200282480b9cd49492ff4c2fc91a34  gdb/gd
 26976478015d2fc22ae85a7f93d6aad2  gdb/gdbsupport/pathstuff.h
 3ddf304a7d731b166cde2ebda665473c  gdb/gdbsupport/default-init-alloc.h
 80cf5d2dc3e037ec721a4e2d6901b98d  gdb/gdbsupport/new-op.c
-bf30fb52fdfd4a1cd25313769d1a75f5  gdb/gdbsupport/btrace-common.h
+19c73edc63f84cb4bbbc0c25ed23d27f  gdb/gdbsupport/btrace-common.h
 11892868404e4f5a0a4780e2a3c16e92  gdb/gdbsupport/gdb_signals.h
 6ded252b05d007fc0839e66e26ece33c  gdb/gdbsupport/gdb_ref_ptr.h
 f2358e2c78b01401dcca389db17f2fa2  gdb/gdbsupport/pathstuff.c
 53f0fae67f5b60ac2b30fd79985c59db  gdb/gdbsupport/preprocessor.h
 c6d6c8997c028731df94800942d316f4  gdb/gdbsupport/break-common.h
 2753978fb04615b50efd9a32ca0238fb  gdb/gdbsupport/rsp-low.c
-8ec5c0b7aed56ea66f709419567b5c6b  gdb/gdbsupport/format.h
+0538f458ea4d6877df49d68b7332802c  gdb/gdbsupport/format.h
 d638fa5bd8d3cf8f034f8e76b03b3e5a  gdb/gdbsupport/array-view.h
 62760fb579584a6e1281b55bd80fea47  gdb/gdbsupport/selftest.c
 07eae9e492b323110f8a5a3ed0c2f934  gdb/gdbsupport/xml-utils.h
@@ -6397,6 +6411,7 @@ dbcef0b1b67812f5fc6ef1c7c845df64  gdb/gd
 59c5ec0fc8e4ef0a2b782f0a5534eaf3  gdb/gdbsupport/ptid.h
 dcb65cc8c033e9c91b681adda12b57c3  gdb/gdbsupport/forward-scope-exit.h
 77ae4857a7034af45912de1bc102973b  gdb/gdbsupport/symbol.h
+239d1854ed6dc6fc5ea8c6a28f333344  gdb/gdbsupport/common-inferior.c
 571b4ee0dc5c205a659f70e39680f214  gdb/gdbsupport/print-utils.c
 0d042dcd1f7baefc0607ab9227b590c6  gdb/gdbsupport/tdesc.h
 1e750925d45e01b25e11483ff90ea0f4  gdb/gdbsupport/mingw-strerror.c
@@ -6409,7 +6424,7 @@ be6db798441b819e18e32e2d561cae9e  gdb/gd
 7d8924b65e59489047c9d465adbf096c  gdb/gdbsupport/errors.h
 313a259e33c5757e88a5875eecafa1cc  gdb/gdbsupport/common.host
 dbe963fc0c5568563bfa2609b4d9e505  gdb/gdbsupport/gdb_string_view.tcc
-76a7c6031e489592f6ad1d7443f06747  gdb/gdbsupport/format.c
+532f5da71b79628c4f34e54424bd2647  gdb/gdbsupport/format.c
 5777c910d71968f2118a2ca53edfc7b1  gdb/gdbsupport/run-time-clock.c
 ed8e52e19096f2277bb567896e4b1dc9  gdb/gdbsupport/errors.c
 5a64cd7f276bce87e9d3e8f225adc628  gdb/gdbsupport/gdb_vecs.h
@@ -6520,7 +6535,7 @@ e7c848d16a56780d13637a3ad5131fd7  gdb/un
 a65e9659a77224a12959c68bc108746c  gdb/unittests/basic_string_view/operations/find/wchar_t/2.cc
 d7a1bfb37f3b17037e2b64df79f39170  gdb/unittests/basic_string_view/operations/find/wchar_t/4.cc
 ccbb6d6b061df446fef4367d9bed515a  gdb/unittests/child-path-selftests.c
-245a76045556b2004fd8a034bc091a74  gdb/unittests/format_pieces-selftests.c
+77c3c7539423ad6df89cde836299e1fe  gdb/unittests/format_pieces-selftests.c
 913410960b066d6e25177e38af226c94  gdb/unittests/scoped_fd-selftests.c
 d897b56d4055ab599e34d0d99079b30e  gdb/unittests/memory-map-selftests.c
 a379144db871c32e5bc326a263ab2b71  gdb/unittests/xml-utils-selftests.c
@@ -6916,7 +6931,7 @@ a8cc89ec2010ea9b41758d16b891cb1c  includ
 8617c5fc949175d0aaee0993c55a8de3  include/fopen-bin.h
 d947ad669709a730d3f627ed1932bf51  include/gcc-c-interface.h
 e44328bd57b66d8911813206c5463153  include/leb128.h
-9a28470a7e350c802788e21077f46bc3  include/ctf.h
+7f9fcc517ea3ab1c28623514c37a0279  include/ctf.h
 db564fde8994756b41a82b425e5baba4  include/opcode/hppa.h
 90360e0a6e1eebfb8c71521c2bda3264  include/opcode/mmix.h
 a34ebcadd9ebde14cd94a465c4d69c44  include/opcode/cris.h
@@ -7059,7 +7074,7 @@ ac5c6fe8de400c9792753b5db5b255d5  includ
 ae5154ba0c6bf41452c1e4e3938fde52  include/gdb/callback.h
 d3976907c9252ef4d60b9ac80987eafc  include/hashtab.h
 8673aa12a3493cb537f1220aa799b950  include/gcc-interface.h
-a128f86009d5c9ed1476af87cda6d72c  include/ChangeLog
+c356fcae682d9e86f70e5a6919365f55  include/ChangeLog
 88586319cd45959f54a1776d5d769a05  include/dis-asm.h
 2e19107e7906229570c084b790923d48  include/splay-tree.h
 352ce75976e0a5970298d574ffdf743e  include/filenames.h
@@ -7067,7 +7082,7 @@ a52df8b7759338542cfe73e56e69de97  includ
 59530bdf33659b29e73d4adb9f9f6552  include/COPYING
 26291ebb362b400e2ada6f03d9a7dde1  include/xtensa-isa.h
 73d0924b3262c7d67522ec24dc3f1596  include/ChangeLog-2018
-776512ff90f3e4e59db3230bcfb901bf  include/ctf-api.h
+4594b4ceab79b830168f1594b24fbe34  include/ctf-api.h
 a0a94966639af672525c11c3938fa7d7  include/som/internal.h
 7c5255154d5761541c7bf4f94160ccb3  include/som/reloc.h
 c8de48c3d7a8de69489757d4a947bb9e  include/som/ChangeLog-1015
@@ -7101,7 +7116,7 @@ b9f50395320a32ab8fb34ae667cd9b38  includ
 46afa87651586c2acc99b5fc45a3c1f0  include/elf/csky.h
 3bfff5baa2e12f05c74e4fc99573d5c2  include/elf/i370.h
 747eba1c4121c8e42d08e76a553f7fb5  include/elf/alpha.h
-aebd51d38222f50361a6218fc1031765  include/elf/msp430.h
+93301d8c43c9df817088a28356f4efaa  include/elf/msp430.h
 bcbeecde92bee1740b4be0532624d758  include/elf/ft32.h
 80251284c747e3a323f34bb74514f8c7  include/elf/vax.h
 dd3775c74cd403734138289a203ead6c  include/elf/microblaze.h
@@ -7181,7 +7196,7 @@ b69b57e5b98d9f30a80c6e9739539b30  includ
 75d1ff50f74ca90cf99a952ee5a6cc0d  include/diagnostics.h
 16a43b00f972676ab7aed849e6921845  include/bout.h
 df72d70431e61fbed5436c090ca7d172  include/demangle.h
-a4dcb67adf7dd119b596a2eebac1ffb7  include/bfdlink.h
+d121d98d9dcc3c763a8769db530dd937  include/bfdlink.h
 def665a8553c0865c88d58a554d87473  include/xregex2.h
 361482dd6b5b5eb7090fff3986fba68a  install-sh
 12ff40e8c89d99dc7b704bac9434124a  intl/plural-exp.c
@@ -7465,8 +7480,8 @@ dee72a6a60e99528b0d17bf3ff9a1e15  ltopti
 bc2f6032c98896249eadb56177c7d357  ltsugar.m4
 c30cd33c496505f13d9fbdb6970c7c33  ltversion.m4
 ff222fca62b56d74a5bc12b9c948fea7  MAINTAINERS
-1b0ed4c105504df945792c2dbaa90872  Makefile.def
-4d5cb76aaa2c8b3194ca0fa02a70578e  Makefile.in
+3598aa5fdc1f5504eb2e07fe503577f3  Makefile.def
+cd6f547d922c5c3ff6854a11f53b6d8a  Makefile.in
 300245558cb72436b3dccc48328e3d14  Makefile.tpl
 5f2a276ee7b8decec541391229d03591  missing
 fbe2467afef81c41c166173adeb0ee20  mkdep
@@ -7477,7 +7492,7 @@ f54b9c221462fec13cdc02b98e915a66  opcode
 8e786067e487eb6a028eeaac6c7ba86f  opcodes/i386-opc.c
 22fad5413c93cf5595cda3875e96cca2  opcodes/fr30-desc.h
 2cd4a17f5984229495651cace665fce3  opcodes/lm32-asm.c
-e34b3a00c6d22df7348beec770fa8c57  opcodes/i386-opc.tbl
+b381a712c6c51ec9e2c2d5477432e572  opcodes/i386-opc.tbl
 d53e6a0bad0618b8e0b6dfe07a024146  opcodes/xstormy16-ibld.c
 331e039f15b7c141e1434ed8fef4263e  opcodes/mep-asm.c
 ec3b79e12fafc6731e6da93a3f4f3a83  opcodes/microblaze-dis.h
@@ -7623,7 +7638,7 @@ ba8859bd07937a25f0dc06b68b4033c3  opcode
 44b4c920f22fa36202d20614b90889db  opcodes/aarch64-gen.c
 7a0278302e523c84ba412f8b8000c902  opcodes/arc-fxi.h
 c098c5cde9b3dc17ecf3f4f5626dc002  opcodes/score7-dis.c
-b90f038e7c4cd052d883a8e79f5c7c34  opcodes/i386-tbl.h
+dd01861c770c8de9b2db8064c3e0b174  opcodes/i386-tbl.h
 100e2e595b5cff71e4b7abf50787a9c3  opcodes/arc-dis.c
 435c73db4c63944bdc8fbfeb19338f0a  opcodes/ip2k-asm.c
 5877ba5e080a7c281d631fa730cf3f50  opcodes/spu-opc.c
@@ -7732,7 +7747,7 @@ f54be2e715ceb6cebb98fab5bc37e7db  opcode
 62a30cfb1b506ee2c3916ee13e9eda8a  opcodes/m10300-dis.c
 1b1854422db842d0dfa01c932a5f86ae  opcodes/nds32-opc.h
 713fb26f79662b078390d218dc5d977c  opcodes/aarch64-opc.h
-8aeac322e9fa564a72cabdff5296c7ed  opcodes/ChangeLog
+83b5ed9f67ad0f4d40616aec149d437f  opcodes/ChangeLog
 327cf11f5c08b578f3b0cdb7f3923280  opcodes/ia64-raw.tbl
 bd6d6d07bd75b0bc4ef5b8c67ca29532  opcodes/frv-dis.c
 41d07b69354e5907ff4d81d7efc89b49  opcodes/aarch64-opc.c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/opcodes/ChangeLog ./opcodes/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/opcodes/ChangeLog	2019-10-01 01:49:32.000000000 +0000
+++ ./opcodes/ChangeLog	2019-10-08 01:49:32.000000000 +0000
@@ -1,3 +1,9 @@
+2019-10-07  Jan Beulich  <jbeulich@suse.com>
+
+	* opcodes/i386-opc.tbl (movsd): Add Dword and IgnoreSize.
+	(cmpsd): Likewise. Move EsSeg to other operand.
+	* opcodes/i386-tbl.h: Re-generate.
+
 2019-09-23  Alan Modra  <amodra@gmail.com>
 
 	* m68k-dis.c: Include cpu-m68k.h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/opcodes/i386-opc.tbl ./opcodes/i386-opc.tbl
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/opcodes/i386-opc.tbl	2019-10-01 01:49:32.000000000 +0000
+++ ./opcodes/i386-opc.tbl	2019-10-08 01:49:32.000000000 +0000
@@ -1381,8 +1381,8 @@ cmpunordsd, 2, 0xf20fc2, 0x3, 2, CpuSSE2
 cmppd, 3, 0x66c2, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexVVVV=1|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM }
 cmppd, 3, 0x660fc2, None, 2, CpuSSE2, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, RegXMM|Unspecified|BaseIndex, RegXMM }
 // Intel mode string compare.
-cmpsd, 0, 0xa7, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-cmpsd, 2, 0xa7, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Unspecified|BaseIndex, Unspecified|BaseIndex|EsSeg }
+cmpsd, 0, 0xa7, None, 1, 0, Size32|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
+cmpsd, 2, 0xa7, None, 1, 0, Size32|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Dword|Unspecified|BaseIndex|EsSeg, Dword|Unspecified|BaseIndex }
 cmpsd, 3, 0xf2c2, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
 cmpsd, 3, 0xf20fc2, None, 2, CpuSSE2, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8, Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
 comisd, 2, 0x662f, None, 1, CpuAVX, Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
@@ -1417,8 +1417,8 @@ movmskpd, 2, 0x660f50, None, 2, CpuSSE2,
 movntpd, 2, 0x662b, None, 1, CpuAVX, Modrm|Vex|VexOpcode=0|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, Xmmword|Unspecified|BaseIndex }
 movntpd, 2, 0x660f2b, None, 2, CpuSSE2, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, Xmmword|Unspecified|BaseIndex }
 // Intel mode string move.
-movsd, 0, 0xa5, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
-movsd, 2, 0xa5, None, 1, 0, Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Unspecified|BaseIndex, Unspecified|BaseIndex|EsSeg }
+movsd, 0, 0xa5, None, 1, 0, Size32|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { 0 }
+movsd, 2, 0xa5, None, 1, 0, Size32|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|IsString|RepPrefixOk, { Dword|Unspecified|BaseIndex, Dword|Unspecified|BaseIndex|EsSeg }
 movsd, 2, 0xf210, None, 1, CpuAVX, D|Modrm|Vex=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { Qword|Unspecified|BaseIndex, RegXMM }
 movsd, 2, 0xf210, None, 1, CpuAVX, D|Modrm|Vex=3|VexOpcode=0|VexVVVV=1|VexW=1|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SSE2AVX, { RegXMM, RegXMM }
 movsd, 2, 0xf20f10, None, 2, CpuSSE2, D|Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Qword|Unspecified|BaseIndex|RegXMM, RegXMM }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/opcodes/i386-tbl.h ./opcodes/i386-tbl.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.3.50.20191001/opcodes/i386-tbl.h	2019-10-01 01:49:32.000000000 +0000
+++ ./opcodes/i386-tbl.h	2019-10-08 01:49:33.000000000 +0000
@@ -15594,7 +15594,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1,
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0 },
@@ -15607,14 +15607,14 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1,
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+	  0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
   { "cmpsd", 3, 0xf2c2, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -16121,7 +16121,7 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1,
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0 },
@@ -16134,14 +16134,14 @@ const insn_template i386_optab[] =
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0 } },
-    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1,
+    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 1, 1, 1, 1,
       1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+	  0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
       { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-	  0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
+	  0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } } } },
   { "movsd", 2, 0xf210, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
