diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index 6c1b0ebeb8..b051563937 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -1932,7 +1932,7 @@ aarch64_extract_return_value (struct type *type, struct regcache *regs,
 	   || TYPE_IS_REFERENCE (type)
 	   || TYPE_CODE (type) == TYPE_CODE_ENUM)
     {
-      /* If the the type is a plain integer, then the access is
+      /* If the type is a plain integer, then the access is
 	 straight-forward.  Otherwise we have to play around a bit
 	 more.  */
       int len = TYPE_LENGTH (type);
diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c
index a28b15f3a5..47feab98b0 100644
--- a/gdb/amd64-windows-tdep.c
+++ b/gdb/amd64-windows-tdep.c
@@ -419,7 +419,7 @@ static const enum amd64_regnum amd64_windows_w2gdb_regnum[] =
   AMD64_R15_REGNUM
 };
 
-/* Return TRUE iff PC is the the range of the function corresponding to
+/* Return TRUE iff PC is the range of the function corresponding to
    CACHE.  */
 
 static int
diff --git a/gdb/dwarf2loc.h b/gdb/dwarf2loc.h
index 17c3bb424f..955e6f1b48 100644
--- a/gdb/dwarf2loc.h
+++ b/gdb/dwarf2loc.h
@@ -222,7 +222,7 @@ struct dwarf2_offset_baton
   LONGEST offset;
 
   /* The type of the object whose property is dynamic.  In the example
-     provided above, this would the the array's index type.  */
+     provided above, this would the array's index type.  */
   struct type *type;
 };
 
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 964697b7bc..71346078d7 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -1445,7 +1445,7 @@ convert_results_to_lsals (struct linespec_state *self,
 
 /* A structure that contains two string representations of a struct
    linespec_canonical_name:
-     - one where the the symtab's fullname is used;
+     - one where the symtab's fullname is used;
      - one where the filename followed the "set filename-display"
        setting.  */
 
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c
index d4baa48521..e45ddfe31a 100644
--- a/gdb/mi/mi-interp.c
+++ b/gdb/mi/mi-interp.c
@@ -526,7 +526,7 @@ find_mi_interp (void)
 }
 
 /* Observers for several run control events that print why the
-   inferior has stopped to both the the MI event channel and to the MI
+   inferior has stopped to both the MI event channel and to the MI
    console.  If the MI interpreter is not active, print nothing.  */
 
 /* Observer for the signal_received notification.  */
diff --git a/gdb/nat/aarch64-sve-linux-sigcontext.h b/gdb/nat/aarch64-sve-linux-sigcontext.h
index ef7379d95a..b2aa23298d 100644
--- a/gdb/nat/aarch64-sve-linux-sigcontext.h
+++ b/gdb/nat/aarch64-sve-linux-sigcontext.h
@@ -64,7 +64,7 @@ struct sve_context {
  * The same convention applies when returning from a signal: a caller
  * will need to remove or resize the sve_context block if it wants to
  * make the SVE registers live when they were previously non-live or
- * vice-versa.  This may require the the caller to allocate fresh
+ * vice-versa.  This may require the caller to allocate fresh
  * memory and/or move other context blocks in the signal frame.
  *
  * Changing the vector length during signal return is not permitted:
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 5a16183501..20310144f3 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -650,7 +650,7 @@ dsbt_current_sos (void)
   /* Locate the address of the first link map struct.  */
   lm_addr = lm_base ();
 
-  /* We have at least one link map entry.  Fetch the the lot of them,
+  /* We have at least one link map entry.  Fetch the lot of them,
      building the solist chain.  */
   while (lm_addr)
     {
diff --git a/gdb/solib.c b/gdb/solib.c
index 24f40d1124..30eac1d3f5 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -233,7 +233,7 @@ solib_find_1 (const char *in_pathname, int *fd, int is_solib)
         | target:some/dir |           | /foo/bar.dll   |
 
 	IOW, we don't need to add a separator if IN_PATHNAME already
-	has one, or when the the sysroot is exactly "target:".
+	has one, or when the sysroot is exactly "target:".
 	There's no need to check for drive spec explicitly, as we only
 	get here if IN_PATHNAME is considered an absolute path.  */
       need_dir_separator = !(IS_DIR_SEPARATOR (in_pathname[0])
diff --git a/gdb/symtab.c b/gdb/symtab.c
index 29b24328fb..b6751bec6b 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -2301,7 +2301,7 @@ lookup_symbol_in_objfile_symtabs (struct objfile *objfile, int block_index,
    Normally we only look in OBJFILE, and not any separate debug objfiles
    because the outer loop will cause them to be searched too.  This case is
    different.  Here we're called from search_symbols where it will only
-   call us for the the objfile that contains a matching minsym.  */
+   call us for the objfile that contains a matching minsym.  */
 
 static struct block_symbol
 lookup_symbol_in_objfile_from_linkage_name (struct objfile *objfile,
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 72a40dcc32..a079c0025a 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -2513,7 +2513,7 @@ count_next_character (wchar_iterator *iter,
 
 /* Print the characters in CHARS to the OBSTACK.  QUOTE_CHAR is the quote
    character to use with string output.  WIDTH is the size of the output
-   character type.  BYTE_ORDER is the the target byte order.  OPTIONS
+   character type.  BYTE_ORDER is the target byte order.  OPTIONS
    is the user's print options.  */
 
 static void
