aboutsummaryrefslogtreecommitdiff
path: root/gdbsupport
diff options
context:
space:
mode:
Diffstat (limited to 'gdbsupport')
-rw-r--r--gdbsupport/.dir-locals.el2
-rw-r--r--gdbsupport/Makefile.am3
-rw-r--r--gdbsupport/Makefile.in16
-rw-r--r--gdbsupport/agent.cc2
-rw-r--r--gdbsupport/agent.h2
-rw-r--r--gdbsupport/alt-stack.h2
-rw-r--r--gdbsupport/array-view.h2
-rw-r--r--gdbsupport/ax.def2
-rw-r--r--gdbsupport/block-signals.h2
-rw-r--r--gdbsupport/break-common.h2
-rw-r--r--gdbsupport/btrace-common.cc2
-rw-r--r--gdbsupport/btrace-common.h2
-rw-r--r--gdbsupport/buildargv.h2
-rw-r--r--gdbsupport/byte-vector.h2
-rw-r--r--gdbsupport/check-defines.el2
-rw-r--r--gdbsupport/cleanups.cc2
-rw-r--r--gdbsupport/cleanups.h2
-rw-r--r--gdbsupport/common-debug.cc2
-rw-r--r--gdbsupport/common-debug.h2
-rw-r--r--gdbsupport/common-defs.h17
-rw-r--r--gdbsupport/common-exceptions.cc2
-rw-r--r--gdbsupport/common-exceptions.h2
-rw-r--r--gdbsupport/common-gdbthread.h2
-rw-r--r--gdbsupport/common-inferior.cc2
-rw-r--r--gdbsupport/common-inferior.h2
-rw-r--r--gdbsupport/common-regcache.cc2
-rw-r--r--gdbsupport/common-regcache.h2
-rw-r--r--gdbsupport/common-types.h2
-rw-r--r--gdbsupport/common-utils.cc23
-rw-r--r--gdbsupport/common-utils.h12
-rw-r--r--gdbsupport/common.m43
-rw-r--r--gdbsupport/compiler-type.m42
-rwxr-xr-xgdbsupport/configure112
-rw-r--r--gdbsupport/configure.ac2
-rwxr-xr-xgdbsupport/create-version.sh2
-rw-r--r--gdbsupport/def-vector.h2
-rw-r--r--gdbsupport/default-init-alloc.h2
-rw-r--r--gdbsupport/eintr.h2
-rw-r--r--gdbsupport/enum-flags.h2
-rw-r--r--gdbsupport/environ.cc2
-rw-r--r--gdbsupport/environ.h2
-rw-r--r--gdbsupport/errors.cc2
-rw-r--r--gdbsupport/errors.h2
-rw-r--r--gdbsupport/event-loop.cc5
-rw-r--r--gdbsupport/event-loop.h2
-rw-r--r--gdbsupport/event-pipe.cc2
-rw-r--r--gdbsupport/event-pipe.h2
-rw-r--r--gdbsupport/fileio.cc2
-rw-r--r--gdbsupport/fileio.h2
-rw-r--r--gdbsupport/filestuff.cc10
-rw-r--r--gdbsupport/filestuff.h2
-rw-r--r--gdbsupport/filtered-iterator.h26
-rw-r--r--gdbsupport/format.cc93
-rw-r--r--gdbsupport/format.h29
-rw-r--r--gdbsupport/forward-scope-exit.h2
-rw-r--r--gdbsupport/function-view.h2
-rw-r--r--gdbsupport/gdb-checked-static-cast.h2
-rw-r--r--gdbsupport/gdb-dlfcn.cc2
-rw-r--r--gdbsupport/gdb-dlfcn.h2
-rw-r--r--gdbsupport/gdb-hashtab.h2
-rw-r--r--gdbsupport/gdb-safe-ctype.h49
-rw-r--r--gdbsupport/gdb-sigmask.h2
-rw-r--r--gdbsupport/gdb-xfree.h2
-rw-r--r--gdbsupport/gdb_argv_vec.h15
-rw-r--r--gdbsupport/gdb_assert.h2
-rw-r--r--gdbsupport/gdb_binary_search.h2
-rw-r--r--gdbsupport/gdb_file.h2
-rw-r--r--gdbsupport/gdb_locale.h2
-rw-r--r--gdbsupport/gdb_obstack.cc2
-rw-r--r--gdbsupport/gdb_obstack.h2
-rw-r--r--gdbsupport/gdb_proc_service.h2
-rw-r--r--gdbsupport/gdb_ref_ptr.h2
-rw-r--r--gdbsupport/gdb_regex.cc2
-rw-r--r--gdbsupport/gdb_regex.h2
-rw-r--r--gdbsupport/gdb_select.h2
-rw-r--r--gdbsupport/gdb_setjmp.h2
-rw-r--r--gdbsupport/gdb_signals.h2
-rw-r--r--gdbsupport/gdb_splay_tree.h2
-rw-r--r--gdbsupport/gdb_sys_time.h2
-rw-r--r--gdbsupport/gdb_tilde_expand.cc2
-rw-r--r--gdbsupport/gdb_tilde_expand.h2
-rw-r--r--gdbsupport/gdb_unique_ptr.h2
-rw-r--r--gdbsupport/gdb_unlinker.h2
-rw-r--r--gdbsupport/gdb_vecs.cc2
-rw-r--r--gdbsupport/gdb_vecs.h2
-rw-r--r--gdbsupport/gdb_wait.cc2
-rw-r--r--gdbsupport/gdb_wait.h2
-rw-r--r--gdbsupport/host-defs.h2
-rw-r--r--gdbsupport/intrusive_list.h2
-rw-r--r--gdbsupport/iterator-range.h3
-rw-r--r--gdbsupport/job-control.cc2
-rw-r--r--gdbsupport/job-control.h2
-rw-r--r--gdbsupport/libiberty.m42
-rw-r--r--gdbsupport/netstuff.cc2
-rw-r--r--gdbsupport/netstuff.h2
-rw-r--r--gdbsupport/new-op.cc2
-rw-r--r--gdbsupport/next-iterator.h2
-rw-r--r--gdbsupport/observable.h2
-rw-r--r--gdbsupport/offset-type.h2
-rw-r--r--gdbsupport/osabi.cc2
-rw-r--r--gdbsupport/osabi.def2
-rw-r--r--gdbsupport/osabi.h2
-rw-r--r--gdbsupport/owning_intrusive_list.h2
-rw-r--r--gdbsupport/packed.h2
-rw-r--r--gdbsupport/parallel-for.h12
-rw-r--r--gdbsupport/pathstuff.cc19
-rw-r--r--gdbsupport/pathstuff.h2
-rw-r--r--gdbsupport/poison.h4
-rw-r--r--gdbsupport/preprocessor.h2
-rw-r--r--gdbsupport/print-utils.cc20
-rw-r--r--gdbsupport/print-utils.h32
-rw-r--r--gdbsupport/ptid.cc2
-rw-r--r--gdbsupport/ptid.h2
-rw-r--r--gdbsupport/ptrace.m42
-rw-r--r--gdbsupport/range-chain.h2
-rw-r--r--gdbsupport/refcounted-object.h2
-rw-r--r--gdbsupport/reference-to-pointer-iterator.h2
-rw-r--r--gdbsupport/remote-args.cc43
-rw-r--r--gdbsupport/remote-args.h60
-rw-r--r--gdbsupport/rsp-low.cc2
-rw-r--r--gdbsupport/rsp-low.h2
-rw-r--r--gdbsupport/run-time-clock.cc45
-rw-r--r--gdbsupport/run-time-clock.h35
-rw-r--r--gdbsupport/safe-iterator.h2
-rw-r--r--gdbsupport/safe-strerror.cc2
-rw-r--r--gdbsupport/scope-exit.h2
-rw-r--r--gdbsupport/scoped_fd.h2
-rw-r--r--gdbsupport/scoped_ignore_signal.h2
-rw-r--r--gdbsupport/scoped_ignore_sigttou.h2
-rw-r--r--gdbsupport/scoped_mmap.cc2
-rw-r--r--gdbsupport/scoped_mmap.h2
-rw-r--r--gdbsupport/scoped_restore.h2
-rw-r--r--gdbsupport/scoped_signal_handler.h2
-rw-r--r--gdbsupport/search.cc2
-rw-r--r--gdbsupport/search.h2
-rw-r--r--gdbsupport/selftest.cc2
-rw-r--r--gdbsupport/selftest.h2
-rw-r--r--gdbsupport/selftest.m42
-rw-r--r--gdbsupport/signals-state-save-restore.cc2
-rw-r--r--gdbsupport/signals-state-save-restore.h2
-rw-r--r--gdbsupport/signals.cc2
-rw-r--r--gdbsupport/symbol.h2
-rw-r--r--gdbsupport/task-group.cc2
-rw-r--r--gdbsupport/task-group.h2
-rw-r--r--gdbsupport/tdesc.cc2
-rw-r--r--gdbsupport/tdesc.h2
-rw-r--r--gdbsupport/thread-pool.cc2
-rw-r--r--gdbsupport/thread-pool.h2
-rw-r--r--gdbsupport/traits.h2
-rw-r--r--gdbsupport/underlying.h2
-rw-r--r--gdbsupport/unordered_map.h2
-rw-r--r--gdbsupport/unordered_set.h2
-rw-r--r--gdbsupport/valid-expr.h2
-rw-r--r--gdbsupport/version.h2
-rw-r--r--gdbsupport/warning.m42
-rw-r--r--gdbsupport/x86-xstate.h9
-rw-r--r--gdbsupport/xml-utils.cc2
-rw-r--r--gdbsupport/xml-utils.h2
158 files changed, 494 insertions, 467 deletions
diff --git a/gdbsupport/.dir-locals.el b/gdbsupport/.dir-locals.el
index eb4edba..8228d2b 100644
--- a/gdbsupport/.dir-locals.el
+++ b/gdbsupport/.dir-locals.el
@@ -1,5 +1,5 @@
;; Emacs settings.
-;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2025 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
diff --git a/gdbsupport/Makefile.am b/gdbsupport/Makefile.am
index e772987..20122e4 100644
--- a/gdbsupport/Makefile.am
+++ b/gdbsupport/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to generate Makefile.in
#
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -80,6 +80,7 @@ libgdbsupport_a_SOURCES = \
pathstuff.cc \
print-utils.cc \
ptid.cc \
+ remote-args.cc \
rsp-low.cc \
run-time-clock.cc \
safe-strerror.cc \
diff --git a/gdbsupport/Makefile.in b/gdbsupport/Makefile.in
index db3d6f6..66b8891 100644
--- a/gdbsupport/Makefile.in
+++ b/gdbsupport/Makefile.in
@@ -15,7 +15,7 @@
@SET_MAKE@
#
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -163,12 +163,12 @@ am_libgdbsupport_a_OBJECTS = agent.$(OBJEXT) btrace-common.$(OBJEXT) \
gdb_tilde_expand.$(OBJEXT) gdb_wait.$(OBJEXT) \
gdb_vecs.$(OBJEXT) job-control.$(OBJEXT) netstuff.$(OBJEXT) \
new-op.$(OBJEXT) osabi.$(OBJEXT) pathstuff.$(OBJEXT) \
- print-utils.$(OBJEXT) ptid.$(OBJEXT) rsp-low.$(OBJEXT) \
- run-time-clock.$(OBJEXT) safe-strerror.$(OBJEXT) \
- scoped_mmap.$(OBJEXT) search.$(OBJEXT) signals.$(OBJEXT) \
- signals-state-save-restore.$(OBJEXT) task-group.$(OBJEXT) \
- tdesc.$(OBJEXT) thread-pool.$(OBJEXT) xml-utils.$(OBJEXT) \
- $(am__objects_1) $(am__objects_2)
+ print-utils.$(OBJEXT) ptid.$(OBJEXT) remote-args.$(OBJEXT) \
+ rsp-low.$(OBJEXT) run-time-clock.$(OBJEXT) \
+ safe-strerror.$(OBJEXT) scoped_mmap.$(OBJEXT) search.$(OBJEXT) \
+ signals.$(OBJEXT) signals-state-save-restore.$(OBJEXT) \
+ task-group.$(OBJEXT) tdesc.$(OBJEXT) thread-pool.$(OBJEXT) \
+ xml-utils.$(OBJEXT) $(am__objects_1) $(am__objects_2)
libgdbsupport_a_OBJECTS = $(am_libgdbsupport_a_OBJECTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -438,6 +438,7 @@ libgdbsupport_a_SOURCES = \
pathstuff.cc \
print-utils.cc \
ptid.cc \
+ remote-args.cc \
rsp-low.cc \
run-time-clock.cc \
safe-strerror.cc \
@@ -548,6 +549,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pathstuff.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print-utils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ptid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote-args.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rsp-low.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run-time-clock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-strerror.Po@am__quote@
diff --git a/gdbsupport/agent.cc b/gdbsupport/agent.cc
index c70b59a..52233f3 100644
--- a/gdbsupport/agent.cc
+++ b/gdbsupport/agent.cc
@@ -1,6 +1,6 @@
/* Shared utility routines for GDB to interact with agent.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/agent.h b/gdbsupport/agent.h
index 305ed70..8827e03 100644
--- a/gdbsupport/agent.h
+++ b/gdbsupport/agent.h
@@ -1,6 +1,6 @@
/* Shared utility routines for GDB to interact with agent.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/alt-stack.h b/gdbsupport/alt-stack.h
index e8ec41c..0517d19 100644
--- a/gdbsupport/alt-stack.h
+++ b/gdbsupport/alt-stack.h
@@ -1,6 +1,6 @@
/* Temporarily install an alternate signal stack
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/array-view.h b/gdbsupport/array-view.h
index 5dcf8d8..38e65d6 100644
--- a/gdbsupport/array-view.h
+++ b/gdbsupport/array-view.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/ax.def b/gdbsupport/ax.def
index 2f0dafb..9dbb4d6 100644
--- a/gdbsupport/ax.def
+++ b/gdbsupport/ax.def
@@ -1,5 +1,5 @@
/* Definition of agent opcode values. -*- c -*-
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/block-signals.h b/gdbsupport/block-signals.h
index e3416f8..f3313f3 100644
--- a/gdbsupport/block-signals.h
+++ b/gdbsupport/block-signals.h
@@ -1,6 +1,6 @@
/* Block signals used by gdb
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/break-common.h b/gdbsupport/break-common.h
index 1202231..b51a1e1 100644
--- a/gdbsupport/break-common.h
+++ b/gdbsupport/break-common.h
@@ -1,6 +1,6 @@
/* Data structures associated with breakpoints shared in both GDB and
GDBserver.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/btrace-common.cc b/gdbsupport/btrace-common.cc
index b7f9493..7c1ef39 100644
--- a/gdbsupport/btrace-common.cc
+++ b/gdbsupport/btrace-common.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdbsupport/btrace-common.h b/gdbsupport/btrace-common.h
index 6278fa3..5f63aa9 100644
--- a/gdbsupport/btrace-common.h
+++ b/gdbsupport/btrace-common.h
@@ -1,6 +1,6 @@
/* Branch trace support for GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>.
diff --git a/gdbsupport/buildargv.h b/gdbsupport/buildargv.h
index 8fdd085..e2cc543 100644
--- a/gdbsupport/buildargv.h
+++ b/gdbsupport/buildargv.h
@@ -1,6 +1,6 @@
/* RAII wrapper for buildargv
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/byte-vector.h b/gdbsupport/byte-vector.h
index 0586d40..dca7dfa 100644
--- a/gdbsupport/byte-vector.h
+++ b/gdbsupport/byte-vector.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/check-defines.el b/gdbsupport/check-defines.el
index b7cf61b..7c5d6cc 100644
--- a/gdbsupport/check-defines.el
+++ b/gdbsupport/check-defines.el
@@ -1,6 +1,6 @@
;; Verify that preprocessor symbols are defined in config.in.
-;; Copyright (C) 2020-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2020-2025 Free Software Foundation, Inc.
;;
;; This file is part of GDB.
;;
diff --git a/gdbsupport/cleanups.cc b/gdbsupport/cleanups.cc
index 6362ea2..b0c4e01 100644
--- a/gdbsupport/cleanups.cc
+++ b/gdbsupport/cleanups.cc
@@ -1,6 +1,6 @@
/* Cleanup routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/cleanups.h b/gdbsupport/cleanups.h
index 12b7774..7d9d1d3 100644
--- a/gdbsupport/cleanups.h
+++ b/gdbsupport/cleanups.h
@@ -1,5 +1,5 @@
/* Cleanups.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-debug.cc b/gdbsupport/common-debug.cc
index c4d9528..a78f268 100644
--- a/gdbsupport/common-debug.cc
+++ b/gdbsupport/common-debug.cc
@@ -1,6 +1,6 @@
/* Debug printing functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-debug.h b/gdbsupport/common-debug.h
index 547ea47..5886e3d 100644
--- a/gdbsupport/common-debug.h
+++ b/gdbsupport/common-debug.h
@@ -1,6 +1,6 @@
/* Declarations for debug printing functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-defs.h b/gdbsupport/common-defs.h
index 7dcaa5b..6f58914 100644
--- a/gdbsupport/common-defs.h
+++ b/gdbsupport/common-defs.h
@@ -1,6 +1,6 @@
/* Common definitions.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -27,6 +27,14 @@
#pragma GCC optimize("-fno-hoist-adjacent-loads")
#endif
+#if defined (__GNUC__) && !defined (__clang__) \
+ && ((__GNUC__ >= 12 && __GNUC__ <= 15) \
+ || (__GNUC__ == 16 && __GNUC_MINOR__ < 1))
+/* Work around PR gcc/120987 starting gcc 12, and assume it will be fixed in
+ the gcc 16.1 release. */
+#pragma GCC optimize("-fno-ipa-modref")
+#endif
+
#include <gdbsupport/config.h>
#undef PACKAGE_NAME
@@ -208,13 +216,18 @@
#include "errors.h"
#include "print-utils.h"
#include "common-debug.h"
-#include "cleanups.h"
#include "common-exceptions.h"
#include "gdbsupport/poison.h"
/* Pull in gdb::unique_xmalloc_ptr. */
#include "gdbsupport/gdb_unique_ptr.h"
+/* Note that there's no simple way to enforce the use of the c-ctype
+ functions. We can't poison the <ctype.h> functions (see
+ safe-ctype.h) because that will provoke errors from libstdc++
+ headers. */
+#include "c-ctype.h"
+
/* sbrk on macOS is not useful for our purposes, since sbrk(0) always
returns the same value. brk/sbrk on macOS is just an emulation
that always returns a pointer to a 4MB section reserved for
diff --git a/gdbsupport/common-exceptions.cc b/gdbsupport/common-exceptions.cc
index 8301fb5..07991fb 100644
--- a/gdbsupport/common-exceptions.cc
+++ b/gdbsupport/common-exceptions.cc
@@ -1,6 +1,6 @@
/* Exception (throw catch) mechanism, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-exceptions.h b/gdbsupport/common-exceptions.h
index ff0059a..ed94f85 100644
--- a/gdbsupport/common-exceptions.h
+++ b/gdbsupport/common-exceptions.h
@@ -1,6 +1,6 @@
/* Exception (throw catch) mechanism, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-gdbthread.h b/gdbsupport/common-gdbthread.h
index 289cc8f..b6edf6f 100644
--- a/gdbsupport/common-gdbthread.h
+++ b/gdbsupport/common-gdbthread.h
@@ -1,5 +1,5 @@
/* Common multi-process/thread control defs for GDB and gdbserver.
- Copyright (C) 1987-2024 Free Software Foundation, Inc.
+ Copyright (C) 1987-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-inferior.cc b/gdbsupport/common-inferior.cc
index d2fd348..a07b556 100644
--- a/gdbsupport/common-inferior.cc
+++ b/gdbsupport/common-inferior.cc
@@ -1,7 +1,7 @@
/* Functions to deal with the inferior being executed on GDB or
GDBserver.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-inferior.h b/gdbsupport/common-inferior.h
index a277e1b..200c629 100644
--- a/gdbsupport/common-inferior.h
+++ b/gdbsupport/common-inferior.h
@@ -1,7 +1,7 @@
/* Functions to deal with the inferior being executed on GDB or
GDBserver.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-regcache.cc b/gdbsupport/common-regcache.cc
index 525bb5c..22c0f32 100644
--- a/gdbsupport/common-regcache.cc
+++ b/gdbsupport/common-regcache.cc
@@ -1,6 +1,6 @@
/* Cache and manage the values of registers for GDB, the GNU debugger.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-regcache.h b/gdbsupport/common-regcache.h
index c637163..2350f4f 100644
--- a/gdbsupport/common-regcache.h
+++ b/gdbsupport/common-regcache.h
@@ -1,6 +1,6 @@
/* Cache and manage the values of registers
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-types.h b/gdbsupport/common-types.h
index 10d5f38..210e09b 100644
--- a/gdbsupport/common-types.h
+++ b/gdbsupport/common-types.h
@@ -1,6 +1,6 @@
/* Declarations for common types.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-utils.cc b/gdbsupport/common-utils.cc
index af25bf0..5c7ba31 100644
--- a/gdbsupport/common-utils.cc
+++ b/gdbsupport/common-utils.cc
@@ -1,6 +1,6 @@
/* Shared general utility routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -19,7 +19,6 @@
#include "common-utils.h"
#include "host-defs.h"
-#include "gdbsupport/gdb-safe-ctype.h"
#include "gdbsupport/gdb-xfree.h"
void *
@@ -180,7 +179,7 @@ extract_string_maybe_quoted (const char **arg)
/* Parse p similarly to gdb_argv buildargv function. */
while (*p != '\0')
{
- if (ISSPACE (*p) && !squote && !dquote && !bsquote)
+ if (c_isspace (*p) && !squote && !dquote && !bsquote)
break;
else
{
@@ -254,21 +253,21 @@ make_quoted_string (const char *str)
static int
is_digit_in_base (unsigned char digit, int base)
{
- if (!ISALNUM (digit))
+ if (!c_isalnum (digit))
return 0;
if (base <= 10)
- return (ISDIGIT (digit) && digit < base + '0');
+ return (c_isdigit (digit) && digit < base + '0');
else
- return (ISDIGIT (digit) || TOLOWER (digit) < base - 10 + 'a');
+ return (c_isdigit (digit) || c_tolower (digit) < base - 10 + 'a');
}
static int
digit_to_int (unsigned char c)
{
- if (ISDIGIT (c))
+ if (c_isdigit (c))
return c - '0';
else
- return TOLOWER (c) - 'a' + 10;
+ return c_tolower (c) - 'a' + 10;
}
/* As for strtoul, but for ULONGEST results. */
@@ -282,7 +281,7 @@ strtoulst (const char *num, const char **trailer, int base)
int i = 0;
/* Skip leading whitespace. */
- while (ISSPACE (num[i]))
+ while (c_isspace (num[i]))
i++;
/* Handle prefixes. */
@@ -349,7 +348,7 @@ skip_spaces (char *chp)
{
if (chp == NULL)
return NULL;
- while (*chp && ISSPACE (*chp))
+ while (*chp && c_isspace (*chp))
chp++;
return chp;
}
@@ -361,7 +360,7 @@ skip_spaces (const char *chp)
{
if (chp == NULL)
return NULL;
- while (*chp && ISSPACE (*chp))
+ while (*chp && c_isspace (*chp))
chp++;
return chp;
}
@@ -373,7 +372,7 @@ skip_to_space (const char *chp)
{
if (chp == NULL)
return NULL;
- while (*chp && !ISSPACE (*chp))
+ while (*chp && !c_isspace (*chp))
chp++;
return chp;
}
diff --git a/gdbsupport/common-utils.h b/gdbsupport/common-utils.h
index 114342d..10bf9f4 100644
--- a/gdbsupport/common-utils.h
+++ b/gdbsupport/common-utils.h
@@ -1,6 +1,6 @@
/* Shared general utility routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -196,6 +196,16 @@ in_inclusive_range (T value, T low, T high)
extern ULONGEST align_up (ULONGEST v, int n);
extern ULONGEST align_down (ULONGEST v, int n);
+/* Sign-extend the value V, using N as the number of valid bits. That
+ is, bit N-1 is the sign bit. The higher-order bits (those outside
+ 0..N-1) must be zero. */
+static inline ULONGEST
+sign_extend (ULONGEST v, int n)
+{
+ ULONGEST mask = (ULONGEST) 1 << (n - 1);
+ return (v ^ mask) - mask;
+}
+
/* Convert hex digit A to a number, or throw an exception. */
extern int fromhex (int a);
diff --git a/gdbsupport/common.m4 b/gdbsupport/common.m4
index 63e5e93..cde8bd6 100644
--- a/gdbsupport/common.m4
+++ b/gdbsupport/common.m4
@@ -1,5 +1,5 @@
dnl Autoconf configure snippets for common.
-dnl Copyright (C) 1995-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
@@ -21,7 +21,6 @@ AC_DEFUN([GDB_AC_COMMON], [
# Set the 'development' global.
. $srcdir/../bfd/development.sh
- AC_HEADER_STDC
AC_FUNC_ALLOCA
WIN32APILIBS=
diff --git a/gdbsupport/compiler-type.m4 b/gdbsupport/compiler-type.m4
index d09e0ee..5de502c 100644
--- a/gdbsupport/compiler-type.m4
+++ b/gdbsupport/compiler-type.m4
@@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright (C) 2022-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2022-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
diff --git a/gdbsupport/configure b/gdbsupport/configure
index bcfae34..133ddfa 100755
--- a/gdbsupport/configure
+++ b/gdbsupport/configure
@@ -10704,118 +10704,6 @@ $as_echo "$ac_cv_path_SED" >&6; }
# Set the 'development' global.
. $srcdir/../bfd/development.sh
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
diff --git a/gdbsupport/configure.ac b/gdbsupport/configure.ac
index 92e2a85..b7ccfab 100644
--- a/gdbsupport/configure.ac
+++ b/gdbsupport/configure.ac
@@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB support library
-dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/gdbsupport/create-version.sh b/gdbsupport/create-version.sh
index 540c3dc..1c0836d 100755
--- a/gdbsupport/create-version.sh
+++ b/gdbsupport/create-version.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 1989-2024 Free Software Foundation, Inc.
+# Copyright (C) 1989-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdbsupport/def-vector.h b/gdbsupport/def-vector.h
index 3db6a2f..2e8e409 100644
--- a/gdbsupport/def-vector.h
+++ b/gdbsupport/def-vector.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/default-init-alloc.h b/gdbsupport/default-init-alloc.h
index 1cb1dcf..0702b77 100644
--- a/gdbsupport/default-init-alloc.h
+++ b/gdbsupport/default-init-alloc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/eintr.h b/gdbsupport/eintr.h
index 4cab8f9..04f86c8 100644
--- a/gdbsupport/eintr.h
+++ b/gdbsupport/eintr.h
@@ -1,6 +1,6 @@
/* Utility for handling interrupted syscalls by signals.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/enum-flags.h b/gdbsupport/enum-flags.h
index 71109bb..3f61610 100644
--- a/gdbsupport/enum-flags.h
+++ b/gdbsupport/enum-flags.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/environ.cc b/gdbsupport/environ.cc
index 1b6ca61..28d0721 100644
--- a/gdbsupport/environ.cc
+++ b/gdbsupport/environ.cc
@@ -1,6 +1,6 @@
/* environ.c -- library for manipulating environments for GNU.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 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
diff --git a/gdbsupport/environ.h b/gdbsupport/environ.h
index 6ac9f75..a33ffce 100644
--- a/gdbsupport/environ.h
+++ b/gdbsupport/environ.h
@@ -1,5 +1,5 @@
/* Header for environment manipulation library.
- Copyright (C) 1989-2024 Free Software Foundation, Inc.
+ Copyright (C) 1989-2025 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
diff --git a/gdbsupport/errors.cc b/gdbsupport/errors.cc
index c11229a..b64c944 100644
--- a/gdbsupport/errors.cc
+++ b/gdbsupport/errors.cc
@@ -1,6 +1,6 @@
/* Error reporting facilities.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/errors.h b/gdbsupport/errors.h
index 6e56e90..a47f588 100644
--- a/gdbsupport/errors.h
+++ b/gdbsupport/errors.h
@@ -1,6 +1,6 @@
/* Declarations for error-reporting facilities.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/event-loop.cc b/gdbsupport/event-loop.cc
index 64cdb1f..e7b21e7 100644
--- a/gdbsupport/event-loop.cc
+++ b/gdbsupport/event-loop.cc
@@ -1,5 +1,5 @@
/* Event loop machinery for GDB, the GNU debugger.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
This file is part of GDB.
@@ -827,7 +827,8 @@ update_wait_timeout (void)
/* Update the timeout for select/ poll. */
#ifdef HAVE_POLL
if (use_poll)
- gdb_notifier.poll_timeout = timeout.tv_sec * 1000;
+ gdb_notifier.poll_timeout = (timeout.tv_sec * 1000 +
+ (timeout.tv_usec + 1000 - 1) / 1000);
else
#endif /* HAVE_POLL */
{
diff --git a/gdbsupport/event-loop.h b/gdbsupport/event-loop.h
index 80f4710..375f85e 100644
--- a/gdbsupport/event-loop.h
+++ b/gdbsupport/event-loop.h
@@ -1,5 +1,5 @@
/* Definitions used by the GDB event loop.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
This file is part of GDB.
diff --git a/gdbsupport/event-pipe.cc b/gdbsupport/event-pipe.cc
index 120edd1..e3f2a30 100644
--- a/gdbsupport/event-pipe.cc
+++ b/gdbsupport/event-pipe.cc
@@ -1,6 +1,6 @@
/* Event pipe for GDB, the GNU debugger.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/event-pipe.h b/gdbsupport/event-pipe.h
index 7262403..f95b828 100644
--- a/gdbsupport/event-pipe.h
+++ b/gdbsupport/event-pipe.h
@@ -1,6 +1,6 @@
/* Event pipe for GDB, the GNU debugger.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/fileio.cc b/gdbsupport/fileio.cc
index b115e33b..6a79aed 100644
--- a/gdbsupport/fileio.cc
+++ b/gdbsupport/fileio.cc
@@ -1,6 +1,6 @@
/* File-I/O functions for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/fileio.h b/gdbsupport/fileio.h
index 7e4c361..48243b8 100644
--- a/gdbsupport/fileio.h
+++ b/gdbsupport/fileio.h
@@ -1,6 +1,6 @@
/* File-I/O functions for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/filestuff.cc b/gdbsupport/filestuff.cc
index eb3b3c0..817663b 100644
--- a/gdbsupport/filestuff.cc
+++ b/gdbsupport/filestuff.cc
@@ -1,5 +1,5 @@
/* Low-level file-handling.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -333,14 +333,10 @@ gdb_fopen_cloexec (const char *filename, const char *opentype)
if (!fopen_e_ever_failed_einval)
{
- char *copy;
-
- copy = (char *) alloca (strlen (opentype) + 2);
- strcpy (copy, opentype);
/* This is a glibc extension but we try it unconditionally on
this path. */
- strcat (copy, "e");
- result = fopen (filename, copy);
+ auto opentype_e = std::string (opentype) + 'e';
+ result = fopen (filename, opentype_e.c_str ());
if (result == NULL && errno == EINVAL)
{
diff --git a/gdbsupport/filestuff.h b/gdbsupport/filestuff.h
index 549987b..89044b1 100644
--- a/gdbsupport/filestuff.h
+++ b/gdbsupport/filestuff.h
@@ -1,5 +1,5 @@
/* Low-level file-handling.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/filtered-iterator.h b/gdbsupport/filtered-iterator.h
index f801f96..4952582 100644
--- a/gdbsupport/filtered-iterator.h
+++ b/gdbsupport/filtered-iterator.h
@@ -1,5 +1,5 @@
/* A forward filtered iterator for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -19,8 +19,6 @@
#ifndef GDBSUPPORT_FILTERED_ITERATOR_H
#define GDBSUPPORT_FILTERED_ITERATOR_H
-#include <type_traits>
-
/* A filtered iterator. This wraps BaseIterator and automatically
skips elements that FilterFunc filters out. Requires that
default-constructing a BaseIterator creates a valid one-past-end
@@ -30,12 +28,14 @@ template<typename BaseIterator, typename FilterFunc>
class filtered_iterator
{
public:
- typedef filtered_iterator self_type;
- typedef typename BaseIterator::value_type value_type;
- typedef typename BaseIterator::reference reference;
- typedef typename BaseIterator::pointer pointer;
- typedef typename BaseIterator::iterator_category iterator_category;
- typedef typename BaseIterator::difference_type difference_type;
+ using self_type = filtered_iterator;
+ using value_type = typename std::iterator_traits<BaseIterator>::value_type;
+ using reference = typename std::iterator_traits<BaseIterator>::reference;
+ using pointer = typename std::iterator_traits<BaseIterator>::pointer;
+ using iterator_category
+ = typename std::iterator_traits<BaseIterator>::iterator_category;
+ using difference_type
+ = typename std::iterator_traits<BaseIterator>::difference_type;
/* Construct by forwarding all arguments to the underlying
iterator. */
@@ -44,6 +44,10 @@ public:
: m_it (std::forward<Args> (args)...)
{ skip_filtered (); }
+ filtered_iterator (BaseIterator begin, BaseIterator end)
+ : m_it (std::move (begin)), m_end (std::move (end))
+ { skip_filtered (); }
+
/* Create a one-past-end iterator. */
filtered_iterator () = default;
@@ -56,9 +60,7 @@ public:
: filtered_iterator (static_cast<const filtered_iterator &> (other))
{}
- typename std::invoke_result<decltype(&BaseIterator::operator*),
- BaseIterator>::type
- operator* () const
+ decltype(auto) operator* () const
{ return *m_it; }
self_type &operator++ ()
diff --git a/gdbsupport/format.cc b/gdbsupport/format.cc
index 12173ee..145c876 100644
--- a/gdbsupport/format.cc
+++ b/gdbsupport/format.cc
@@ -1,6 +1,6 @@
/* Parse a printf-style format string.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -22,14 +22,11 @@
format_pieces::format_pieces (const char **arg, bool gdb_extensions,
bool value_extension)
{
- const char *s;
+ const char *s = *arg;
const char *string;
- const char *prev_start;
- const char *percent_loc;
- char *sub_start, *current_substring;
- enum argclass this_argclass;
- s = *arg;
+ /* Buffer to hold the escaped-processed version of the string. */
+ std::string de_escaped;
if (gdb_extensions)
{
@@ -40,10 +37,6 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
{
/* Parse the format-control string and copy it into the string STRING,
processing some kinds of escape sequence. */
-
- char *f = (char *) alloca (strlen (s) + 1);
- string = f;
-
while (*s != '"' && *s != '\0')
{
int c = *s++;
@@ -56,34 +49,34 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
switch (c = *s++)
{
case '\\':
- *f++ = '\\';
+ de_escaped += '\\';
break;
case 'a':
- *f++ = '\a';
+ de_escaped += '\a';
break;
case 'b':
- *f++ = '\b';
+ de_escaped += '\b';
break;
case 'e':
- *f++ = '\e';
+ de_escaped += '\e';
break;
case 'f':
- *f++ = '\f';
+ de_escaped += '\f';
break;
case 'n':
- *f++ = '\n';
+ de_escaped += '\n';
break;
case 'r':
- *f++ = '\r';
+ de_escaped += '\r';
break;
case 't':
- *f++ = '\t';
+ de_escaped += '\t';
break;
case 'v':
- *f++ = '\v';
+ de_escaped += '\v';
break;
case '"':
- *f++ = '"';
+ de_escaped += '"';
break;
default:
/* ??? TODO: handle other escape sequences. */
@@ -93,29 +86,23 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
break;
default:
- *f++ = c;
+ de_escaped += c;
}
}
- /* Terminate our escape-processed copy. */
- *f++ = '\0';
+ string = de_escaped.c_str ();
/* 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. */
-
- current_substring = (char *) xmalloc (strlen (string) * 2 + 1000);
- m_storage.reset (current_substring);
-
/* Now scan the string for %-specs and see what kinds of args they want.
argclass classifies the %-specs so we can give printf-type functions
something of the right size. */
-
const char *f = string;
- prev_start = string;
+ const char *prev_start = string;
+
while (*f)
if (*f++ == '%')
{
@@ -135,16 +122,15 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
continue;
}
- sub_start = current_substring;
+ std::string::size_type sub_start = m_storage.size ();
- strncpy (current_substring, prev_start, f - 1 - prev_start);
- current_substring += f - 1 - prev_start;
- *current_substring++ = '\0';
+ m_storage.append (prev_start, f - 1 - prev_start);
+ m_storage += '\0';
- if (*sub_start != '\0')
+ if (m_storage[sub_start] != '\0')
m_pieces.emplace_back (sub_start, literal_piece, 0);
- percent_loc = f - 1;
+ const char *percent_loc = f - 1;
/* Check the validity of the format specifier, and work
out what argument it expects. We only accept C89
@@ -251,6 +237,8 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
break;
}
+ argclass this_argclass;
+
switch (*f)
{
case 'u':
@@ -381,7 +369,7 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
f++;
- sub_start = current_substring;
+ sub_start = m_storage.size ();
if (lcount > 1 && !seen_i64 && USE_PRINTF_I64)
{
@@ -389,11 +377,9 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
Convert %lld to %I64d. */
int length_before_ll = f - percent_loc - 1 - lcount;
- strncpy (current_substring, percent_loc, length_before_ll);
- strcpy (current_substring + length_before_ll, "I64");
- current_substring[length_before_ll + 3] =
- percent_loc[length_before_ll + lcount];
- current_substring += length_before_ll + 4;
+ m_storage.append (percent_loc, length_before_ll);
+ m_storage += "I64";
+ m_storage += percent_loc[length_before_ll + lcount];
}
else if (this_argclass == wide_string_arg
|| this_argclass == wide_char_arg)
@@ -401,18 +387,13 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
/* Convert %ls or %lc to %s. */
int length_before_ls = f - percent_loc - 2;
- strncpy (current_substring, percent_loc, length_before_ls);
- strcpy (current_substring + length_before_ls, "s");
- current_substring += length_before_ls + 2;
+ m_storage.append (percent_loc, length_before_ls);
+ m_storage += "s";
}
else
- {
- strncpy (current_substring, percent_loc, f - percent_loc);
- current_substring += f - percent_loc;
- }
-
- *current_substring++ = '\0';
+ m_storage.append (percent_loc, f - percent_loc);
+ m_storage += '\0';
prev_start = f;
m_pieces.emplace_back (sub_start, this_argclass, n_int_args);
@@ -422,11 +403,9 @@ format_pieces::format_pieces (const char **arg, bool gdb_extensions,
if (f > prev_start)
{
- sub_start = current_substring;
-
- strncpy (current_substring, prev_start, f - prev_start);
- current_substring += f - prev_start;
- *current_substring++ = '\0';
+ std::string::size_type sub_start = m_storage.size ();
+ m_storage.append (prev_start, f - prev_start);
+ /* No need for a final '\0', std::string already has one. */
m_pieces.emplace_back (sub_start, literal_piece, 0);
}
diff --git a/gdbsupport/format.h b/gdbsupport/format.h
index b1f0c46..46dae22 100644
--- a/gdbsupport/format.h
+++ b/gdbsupport/format.h
@@ -1,6 +1,6 @@
/* Parse a printf-style format string.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,8 +20,6 @@
#ifndef GDBSUPPORT_FORMAT_H
#define GDBSUPPORT_FORMAT_H
-#include <string_view>
-
#if defined(__MINGW32__) && !defined(PRINTF_HAS_LONG_LONG)
# define USE_PRINTF_I64 1
# define PRINTF_HAS_LONG_LONG
@@ -51,21 +49,15 @@ enum argclass
struct format_piece
{
- format_piece (const char *str, enum argclass argc, int n)
- : string (str),
+ format_piece (std::string::size_type start, enum argclass argc, int n)
+ : start (start),
argclass (argc),
n_int_args (n)
- {
- gdb_assert (str != nullptr);
- }
+ {}
- bool operator== (const format_piece &other) const
- {
- return (this->argclass == other.argclass
- && std::string_view (this->string) == other.string);
- }
+ /* Where this piece starts, within FORMAT_PIECES::M_STORAGE. */
+ std::string::size_type start;
- 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
@@ -95,10 +87,17 @@ public:
return m_pieces.end ();
}
+ /* Return the string associated to PIECE. */
+ const char *piece_str (const format_piece &piece)
+ { return &m_storage[piece.start]; }
+
private:
std::vector<format_piece> m_pieces;
- gdb::unique_xmalloc_ptr<char> m_storage;
+
+ /* This is used as a buffer of concatenated null-terminated strings. The
+ individual strings are referenced by FORMAT_PIECE::START. */
+ std::string m_storage;
};
#endif /* GDBSUPPORT_FORMAT_H */
diff --git a/gdbsupport/forward-scope-exit.h b/gdbsupport/forward-scope-exit.h
index d4a3fc0..040a161 100644
--- a/gdbsupport/forward-scope-exit.h
+++ b/gdbsupport/forward-scope-exit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/function-view.h b/gdbsupport/function-view.h
index f826206..2bd8225 100644
--- a/gdbsupport/function-view.h
+++ b/gdbsupport/function-view.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-checked-static-cast.h b/gdbsupport/gdb-checked-static-cast.h
index e8909b9..66cb4e2 100644
--- a/gdbsupport/gdb-checked-static-cast.h
+++ b/gdbsupport/gdb-checked-static-cast.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-dlfcn.cc b/gdbsupport/gdb-dlfcn.cc
index 1a8289a..609bf71 100644
--- a/gdbsupport/gdb-dlfcn.cc
+++ b/gdbsupport/gdb-dlfcn.cc
@@ -1,6 +1,6 @@
/* Platform independent shared object routines for GDB.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-dlfcn.h b/gdbsupport/gdb-dlfcn.h
index 654db79..c8a1a2c 100644
--- a/gdbsupport/gdb-dlfcn.h
+++ b/gdbsupport/gdb-dlfcn.h
@@ -1,6 +1,6 @@
/* Platform independent shared object routines for GDB.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-hashtab.h b/gdbsupport/gdb-hashtab.h
index 05465f9..dff3217 100644
--- a/gdbsupport/gdb-hashtab.h
+++ b/gdbsupport/gdb-hashtab.h
@@ -1,5 +1,5 @@
/* Hash table wrappers for gdb.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-safe-ctype.h b/gdbsupport/gdb-safe-ctype.h
deleted file mode 100644
index f8968ef..0000000
--- a/gdbsupport/gdb-safe-ctype.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Wrapper around libiberty's safe-ctype.h for GDB, the GNU debugger.
-
- Copyright (C) 2019-2024 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 GDBSUPPORT_GDB_SAFE_CTYPE_H
-#define GDBSUPPORT_GDB_SAFE_CTYPE_H
-
-/* After safe-ctype.h is included, we can no longer use the host's
- ctype routines. Trying to do so results in compile errors. Code
- that uses safe-ctype.h that wants to refer to the locale-dependent
- ctype functions must call these wrapper versions instead.
- When compiling in C++ mode, also include <locale> before "safe-ctype.h"
- which also defines is* functions. */
-
-static inline int
-gdb_isprint (int ch)
-{
- return isprint (ch);
-}
-
-/* readline.h defines these symbols too, but we want libiberty's
- versions. */
-#undef ISALPHA
-#undef ISALNUM
-#undef ISDIGIT
-#undef ISLOWER
-#undef ISPRINT
-#undef ISUPPER
-#undef ISXDIGIT
-
-#include <locale>
-#include "safe-ctype.h"
-
-#endif /* GDBSUPPORT_GDB_SAFE_CTYPE_H */
diff --git a/gdbsupport/gdb-sigmask.h b/gdbsupport/gdb-sigmask.h
index 45a0412..f272b15 100644
--- a/gdbsupport/gdb-sigmask.h
+++ b/gdbsupport/gdb-sigmask.h
@@ -1,6 +1,6 @@
/* sigprocmask wrapper for gdb
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-xfree.h b/gdbsupport/gdb-xfree.h
index 09c7539..14cfae5 100644
--- a/gdbsupport/gdb-xfree.h
+++ b/gdbsupport/gdb-xfree.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1986-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_argv_vec.h b/gdbsupport/gdb_argv_vec.h
index 1f3b6db..43571ae 100644
--- a/gdbsupport/gdb_argv_vec.h
+++ b/gdbsupport/gdb_argv_vec.h
@@ -90,6 +90,15 @@ public:
m_args.push_back (value);
}
+ /* Like calling emplace_back on the underlying vector. This class takes
+ ownership of the value added to the vector, and will release the value
+ by calling xfree() on it when this object is destroyed. */
+ template<typename... Args>
+ reference emplace_back (Args &&...args)
+ {
+ return m_args.emplace_back (std::forward<Args> (args)...);
+ }
+
/* Non constant iterator to start of m_args. */
iterator begin ()
{
@@ -133,6 +142,12 @@ public:
{
return m_args.empty ();
}
+
+ /* Clear the argument vector. */
+ void clear ()
+ {
+ free_vector_argv (m_args);
+ }
};
} /* namespac gdb */
diff --git a/gdbsupport/gdb_assert.h b/gdbsupport/gdb_assert.h
index dd0e1e2..82c4077 100644
--- a/gdbsupport/gdb_assert.h
+++ b/gdbsupport/gdb_assert.h
@@ -1,5 +1,5 @@
/* GDB-friendly replacement for <assert.h>.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_binary_search.h b/gdbsupport/gdb_binary_search.h
index c7b9824..1f48c15 100644
--- a/gdbsupport/gdb_binary_search.h
+++ b/gdbsupport/gdb_binary_search.h
@@ -1,6 +1,6 @@
/* C++ implementation of a binary search.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_file.h b/gdbsupport/gdb_file.h
index 41bbbbc..aee54ab 100644
--- a/gdbsupport/gdb_file.h
+++ b/gdbsupport/gdb_file.h
@@ -1,5 +1,5 @@
/* gdb_file_up, an RAII wrapper around FILE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_locale.h b/gdbsupport/gdb_locale.h
index dcdb064..1cc3af7 100644
--- a/gdbsupport/gdb_locale.h
+++ b/gdbsupport/gdb_locale.h
@@ -1,5 +1,5 @@
/* GDB-friendly replacement for <locale.h>.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_obstack.cc b/gdbsupport/gdb_obstack.cc
index f24b4fc..30d348e 100644
--- a/gdbsupport/gdb_obstack.cc
+++ b/gdbsupport/gdb_obstack.cc
@@ -1,6 +1,6 @@
/* Obstack wrapper for GDB.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_obstack.h b/gdbsupport/gdb_obstack.h
index d401824..755b907 100644
--- a/gdbsupport/gdb_obstack.h
+++ b/gdbsupport/gdb_obstack.h
@@ -1,6 +1,6 @@
/* Obstack wrapper for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_proc_service.h b/gdbsupport/gdb_proc_service.h
index 0009702..19c2533 100644
--- a/gdbsupport/gdb_proc_service.h
+++ b/gdbsupport/gdb_proc_service.h
@@ -1,5 +1,5 @@
/* <proc_service.h> replacement for systems that don't have it.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_ref_ptr.h b/gdbsupport/gdb_ref_ptr.h
index df2b3d8..0c30125 100644
--- a/gdbsupport/gdb_ref_ptr.h
+++ b/gdbsupport/gdb_ref_ptr.h
@@ -1,6 +1,6 @@
/* Reference-counted smart pointer class
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_regex.cc b/gdbsupport/gdb_regex.cc
index 5570a14..4ba7b1c 100644
--- a/gdbsupport/gdb_regex.cc
+++ b/gdbsupport/gdb_regex.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_regex.h b/gdbsupport/gdb_regex.h
index 76264e5..802cf56 100644
--- a/gdbsupport/gdb_regex.h
+++ b/gdbsupport/gdb_regex.h
@@ -1,5 +1,5 @@
/* Portable <regex.h>.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_select.h b/gdbsupport/gdb_select.h
index b229a25..b87b75a 100644
--- a/gdbsupport/gdb_select.h
+++ b/gdbsupport/gdb_select.h
@@ -1,6 +1,6 @@
/* Slightly more portable version of <sys/select.h>.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_setjmp.h b/gdbsupport/gdb_setjmp.h
index 2482990..fbfa8f6 100644
--- a/gdbsupport/gdb_setjmp.h
+++ b/gdbsupport/gdb_setjmp.h
@@ -1,5 +1,5 @@
/* Portability wrappers for setjmp and longjmp.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_signals.h b/gdbsupport/gdb_signals.h
index b2dbcbb..ef11df7 100644
--- a/gdbsupport/gdb_signals.h
+++ b/gdbsupport/gdb_signals.h
@@ -1,5 +1,5 @@
/* Target signal translation functions for GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
diff --git a/gdbsupport/gdb_splay_tree.h b/gdbsupport/gdb_splay_tree.h
index 05be2f1..543d618 100644
--- a/gdbsupport/gdb_splay_tree.h
+++ b/gdbsupport/gdb_splay_tree.h
@@ -1,6 +1,6 @@
/* GDB wrapper for splay trees.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_sys_time.h b/gdbsupport/gdb_sys_time.h
index ca93fc8..b6a35f6 100644
--- a/gdbsupport/gdb_sys_time.h
+++ b/gdbsupport/gdb_sys_time.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_tilde_expand.cc b/gdbsupport/gdb_tilde_expand.cc
index f009979..6ede0c4 100644
--- a/gdbsupport/gdb_tilde_expand.cc
+++ b/gdbsupport/gdb_tilde_expand.cc
@@ -1,6 +1,6 @@
/* Perform tilde expansion on paths for GDB and gdbserver.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_tilde_expand.h b/gdbsupport/gdb_tilde_expand.h
index 9618a0c..6cfc4bb 100644
--- a/gdbsupport/gdb_tilde_expand.h
+++ b/gdbsupport/gdb_tilde_expand.h
@@ -1,6 +1,6 @@
/* Perform tilde expansion on paths for GDB and gdbserver.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_unique_ptr.h b/gdbsupport/gdb_unique_ptr.h
index a40e1b1..6e35e83 100644
--- a/gdbsupport/gdb_unique_ptr.h
+++ b/gdbsupport/gdb_unique_ptr.h
@@ -1,6 +1,6 @@
/* std::unique_ptr specializations for GDB.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_unlinker.h b/gdbsupport/gdb_unlinker.h
index 2b90442..76e5603 100644
--- a/gdbsupport/gdb_unlinker.h
+++ b/gdbsupport/gdb_unlinker.h
@@ -1,6 +1,6 @@
/* Unlinking class
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_vecs.cc b/gdbsupport/gdb_vecs.cc
index 71c7308..f74b1dd 100644
--- a/gdbsupport/gdb_vecs.cc
+++ b/gdbsupport/gdb_vecs.cc
@@ -1,6 +1,6 @@
/* Some commonly-used VEC types.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_vecs.h b/gdbsupport/gdb_vecs.h
index 22c165c..822c80d 100644
--- a/gdbsupport/gdb_vecs.h
+++ b/gdbsupport/gdb_vecs.h
@@ -1,6 +1,6 @@
/* Some commonly-used VEC types.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_wait.cc b/gdbsupport/gdb_wait.cc
index 476861d..61f5a06 100644
--- a/gdbsupport/gdb_wait.cc
+++ b/gdbsupport/gdb_wait.cc
@@ -1,6 +1,6 @@
/* Support code for standard wait macros in gdb_wait.h.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_wait.h b/gdbsupport/gdb_wait.h
index 590dcea..76670d2 100644
--- a/gdbsupport/gdb_wait.h
+++ b/gdbsupport/gdb_wait.h
@@ -1,5 +1,5 @@
/* Standard wait macros.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/host-defs.h b/gdbsupport/host-defs.h
index 5298089..c2a7475 100644
--- a/gdbsupport/host-defs.h
+++ b/gdbsupport/host-defs.h
@@ -1,5 +1,5 @@
/* Basic host-specific definitions for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/intrusive_list.h b/gdbsupport/intrusive_list.h
index 345fd7d..de5802f 100644
--- a/gdbsupport/intrusive_list.h
+++ b/gdbsupport/intrusive_list.h
@@ -1,5 +1,5 @@
/* Intrusive double linked list for GDB, the GNU debugger.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/iterator-range.h b/gdbsupport/iterator-range.h
index 4b4c767..9653d40 100644
--- a/gdbsupport/iterator-range.h
+++ b/gdbsupport/iterator-range.h
@@ -1,5 +1,5 @@
/* A range adapter that wraps begin / end iterators.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -36,7 +36,6 @@ struct iterator_range
{}
/* Create an iterator range using explicit BEGIN and END iterators. */
- template <typename... Args>
iterator_range (IteratorType begin, IteratorType end)
: m_begin (std::move (begin)), m_end (std::move (end))
{}
diff --git a/gdbsupport/job-control.cc b/gdbsupport/job-control.cc
index eff196d..83f284d 100644
--- a/gdbsupport/job-control.cc
+++ b/gdbsupport/job-control.cc
@@ -1,7 +1,7 @@
/* Job control and terminal related functions, for GDB and gdbserver
when running under Unix.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/job-control.h b/gdbsupport/job-control.h
index 2b99d69..fe42194 100644
--- a/gdbsupport/job-control.h
+++ b/gdbsupport/job-control.h
@@ -1,7 +1,7 @@
/* Job control and terminal related functions, for GDB and gdbserver
when running under Unix.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/libiberty.m4 b/gdbsupport/libiberty.m4
index df22538..9f7936d 100644
--- a/gdbsupport/libiberty.m4
+++ b/gdbsupport/libiberty.m4
@@ -1,6 +1,6 @@
dnl Bits libiberty clients must do on their autoconf step.
dnl
-dnl Copyright (C) 2012-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2025 Free Software Foundation, Inc.
dnl
dnl This file is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/gdbsupport/netstuff.cc b/gdbsupport/netstuff.cc
index 73f1d3b..7e25fd2 100644
--- a/gdbsupport/netstuff.cc
+++ b/gdbsupport/netstuff.cc
@@ -1,5 +1,5 @@
/* Operations on network stuff.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/netstuff.h b/gdbsupport/netstuff.h
index ae8f9bb..e6a53c1 100644
--- a/gdbsupport/netstuff.h
+++ b/gdbsupport/netstuff.h
@@ -1,5 +1,5 @@
/* Operations on network stuff.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/new-op.cc b/gdbsupport/new-op.cc
index 23ab0bb..08bb8b4 100644
--- a/gdbsupport/new-op.cc
+++ b/gdbsupport/new-op.cc
@@ -1,6 +1,6 @@
/* Replace operator new/new[], for GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/next-iterator.h b/gdbsupport/next-iterator.h
index 6bacb58..0140833 100644
--- a/gdbsupport/next-iterator.h
+++ b/gdbsupport/next-iterator.h
@@ -1,5 +1,5 @@
/* A "next" iterator for GDB, the GNU debugger.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/observable.h b/gdbsupport/observable.h
index b386bbc..f7b4d06 100644
--- a/gdbsupport/observable.h
+++ b/gdbsupport/observable.h
@@ -1,6 +1,6 @@
/* Observers
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/offset-type.h b/gdbsupport/offset-type.h
index 5e005a5..e42ec11 100644
--- a/gdbsupport/offset-type.h
+++ b/gdbsupport/offset-type.h
@@ -1,6 +1,6 @@
/* Offset types for GDB.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/osabi.cc b/gdbsupport/osabi.cc
index 1e41b5f..ac667b5 100644
--- a/gdbsupport/osabi.cc
+++ b/gdbsupport/osabi.cc
@@ -1,6 +1,6 @@
/* OS ABI variant handling for GDB and gdbserver.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/osabi.def b/gdbsupport/osabi.def
index 637da26..2e98e32 100644
--- a/gdbsupport/osabi.def
+++ b/gdbsupport/osabi.def
@@ -1,6 +1,6 @@
/* OS ABI variant definitions for GDB and gdbserver.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/osabi.h b/gdbsupport/osabi.h
index 5d0fb1c..6e0b739 100644
--- a/gdbsupport/osabi.h
+++ b/gdbsupport/osabi.h
@@ -1,6 +1,6 @@
/* OS ABI variant handling for GDB and gdbserver.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/owning_intrusive_list.h b/gdbsupport/owning_intrusive_list.h
index 4c72d9b..6f449a0 100644
--- a/gdbsupport/owning_intrusive_list.h
+++ b/gdbsupport/owning_intrusive_list.h
@@ -1,5 +1,5 @@
/* Owning version of intrusive_list for GDB, the GNU debugger.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/packed.h b/gdbsupport/packed.h
index 3271adc..200a418 100644
--- a/gdbsupport/packed.h
+++ b/gdbsupport/packed.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/parallel-for.h b/gdbsupport/parallel-for.h
index 406c440..b74c806 100644
--- a/gdbsupport/parallel-for.h
+++ b/gdbsupport/parallel-for.h
@@ -1,6 +1,6 @@
/* Parallel for loops
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -40,10 +40,9 @@ namespace gdb
at least N elements processed per thread. Setting N to 0 is not
allowed. */
-template<class RandomIt, class RangeFunction>
+template<std::size_t n, class RandomIt, class RangeFunction>
void
-parallel_for_each (unsigned n, RandomIt first, RandomIt last,
- RangeFunction callback)
+parallel_for_each (RandomIt first, RandomIt last, RangeFunction callback)
{
/* If enabled, print debug info about how the work is distributed across
the threads. */
@@ -73,7 +72,7 @@ parallel_for_each (unsigned n, RandomIt first, RandomIt last,
if (parallel_for_each_debug)
{
debug_printf (_("Parallel for: n_elements: %zu\n"), n_elements);
- debug_printf (_("Parallel for: minimum elements per thread: %u\n"), n);
+ debug_printf (_("Parallel for: minimum elements per thread: %zu\n"), n);
debug_printf (_("Parallel for: elts_per_thread: %zu\n"), elts_per_thread);
}
@@ -141,8 +140,7 @@ parallel_for_each (unsigned n, RandomIt first, RandomIt last,
template<class RandomIt, class RangeFunction>
void
-sequential_for_each (unsigned n, RandomIt first, RandomIt last,
- RangeFunction callback)
+sequential_for_each (RandomIt first, RandomIt last, RangeFunction callback)
{
callback (first, last);
}
diff --git a/gdbsupport/pathstuff.cc b/gdbsupport/pathstuff.cc
index faed79b..8142bd5 100644
--- a/gdbsupport/pathstuff.cc
+++ b/gdbsupport/pathstuff.cc
@@ -1,6 +1,6 @@
/* Path manipulation routines for GDB and gdbserver.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -89,34 +89,25 @@ std::string
gdb_realpath_keepfile (const char *filename)
{
const char *base_name = lbasename (filename);
- char *dir_name;
/* Extract the basename of filename, and return immediately
a copy of filename if it does not contain any directory prefix. */
if (base_name == filename)
return filename;
- dir_name = (char *) alloca ((size_t) (base_name - filename + 2));
- /* Allocate enough space to store the dir_name + plus one extra
- character sometimes needed under Windows (see below), and
- then the closing \000 character. */
- strncpy (dir_name, filename, base_name - filename);
- dir_name[base_name - filename] = '\000';
+ std::string dir_name (filename, base_name - filename);
#ifdef HAVE_DOS_BASED_FILE_SYSTEM
/* We need to be careful when filename is of the form 'd:foo', which
is equivalent of d:./foo, which is totally different from d:/foo. */
- if (strlen (dir_name) == 2 && isalpha (dir_name[0]) && dir_name[1] == ':')
- {
- dir_name[2] = '.';
- dir_name[3] = '\000';
- }
+ if (dir_name.size () == 2 && c_isalpha (dir_name[0]) && dir_name[1] == ':')
+ dir_name += '.';
#endif
/* Canonicalize the directory prefix, and build the resulting
filename. If the dirname realpath already contains an ending
directory separator, avoid doubling it. */
- gdb::unique_xmalloc_ptr<char> path_storage = gdb_realpath (dir_name);
+ gdb::unique_xmalloc_ptr<char> path_storage = gdb_realpath (dir_name.c_str ());
const char *real_path = path_storage.get ();
return path_join (real_path, base_name);
}
diff --git a/gdbsupport/pathstuff.h b/gdbsupport/pathstuff.h
index 15e407f..2c1367e 100644
--- a/gdbsupport/pathstuff.h
+++ b/gdbsupport/pathstuff.h
@@ -1,6 +1,6 @@
/* Path manipulation routines for GDB and gdbserver.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/poison.h b/gdbsupport/poison.h
index 66f0fcf..a91ee5d 100644
--- a/gdbsupport/poison.h
+++ b/gdbsupport/poison.h
@@ -1,6 +1,6 @@
/* Poison symbols at compile time.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -183,7 +183,7 @@ xnewvar (size_t s)
{
static_assert (IsMallocable<T>::value, "Trying to use XNEWVAR with a \
non-POD data type.");
- return XNEWVAR (T, s);;
+ return XNEWVAR (T, s);
}
#undef XNEWVAR
diff --git a/gdbsupport/preprocessor.h b/gdbsupport/preprocessor.h
index 23177d5..498b348 100644
--- a/gdbsupport/preprocessor.h
+++ b/gdbsupport/preprocessor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/print-utils.cc b/gdbsupport/print-utils.cc
index a2e4357..8514720 100644
--- a/gdbsupport/print-utils.cc
+++ b/gdbsupport/print-utils.cc
@@ -1,6 +1,6 @@
/* Cell-based print utility routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -145,7 +145,7 @@ static int thirty_two = 32;
/* See print-utils.h. */
const char *
-phex (ULONGEST l, int sizeof_l)
+phex_ulongest (ULONGEST l, int sizeof_l)
{
char *str;
@@ -170,7 +170,7 @@ phex (ULONGEST l, int sizeof_l)
xsnprintf (str, PRINT_CELL_SIZE, "%02x", (unsigned short) (l & 0xff));
break;
default:
- return phex (l, sizeof (l));
+ return phex (l);
break;
}
@@ -180,7 +180,7 @@ phex (ULONGEST l, int sizeof_l)
/* See print-utils.h. */
const char *
-phex_nz (ULONGEST l, int sizeof_l)
+phex_nz_ulongest (ULONGEST l, int sizeof_l)
{
char *str;
@@ -212,7 +212,7 @@ phex_nz (ULONGEST l, int sizeof_l)
xsnprintf (str, PRINT_CELL_SIZE, "%x", (unsigned short) (l & 0xff));
break;
default:
- return phex_nz (l, sizeof (l));
+ return phex_nz (l);
break;
}
@@ -226,7 +226,7 @@ hex_string (LONGEST num)
{
char *result = get_print_cell ();
- xsnprintf (result, PRINT_CELL_SIZE, "0x%s", phex_nz (num, sizeof (num)));
+ xsnprintf (result, PRINT_CELL_SIZE, "0x%s", phex_nz (num));
return result;
}
@@ -237,7 +237,7 @@ hex_string_custom (LONGEST num, int width)
{
char *result = get_print_cell ();
char *result_end = result + PRINT_CELL_SIZE - 1;
- const char *hex = phex_nz (num, sizeof (num));
+ const char *hex = phex_nz (num);
int hex_len = strlen (hex);
if (hex_len > width)
@@ -304,8 +304,7 @@ core_addr_to_string (const CORE_ADDR addr)
{
char *str = get_print_cell ();
- strcpy (str, "0x");
- strcat (str, phex (addr, sizeof (addr)));
+ xsnprintf (str, PRINT_CELL_SIZE, "0x%s", phex (addr));
return str;
}
@@ -316,8 +315,7 @@ core_addr_to_string_nz (const CORE_ADDR addr)
{
char *str = get_print_cell ();
- strcpy (str, "0x");
- strcat (str, phex_nz (addr, sizeof (addr)));
+ xsnprintf (str, PRINT_CELL_SIZE, "0x%s", phex_nz (addr));
return str;
}
diff --git a/gdbsupport/print-utils.h b/gdbsupport/print-utils.h
index dcc6804..dc5011c 100644
--- a/gdbsupport/print-utils.h
+++ b/gdbsupport/print-utils.h
@@ -1,6 +1,6 @@
/* Cell-based print utility routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -34,15 +34,35 @@ extern const char *pulongest (ULONGEST u);
extern const char *plongest (LONGEST l);
-/* Convert a ULONGEST into a HEX string, like %lx, with leading zeros.
+/* Convert L (of type ULONGEST) into a hex string, like %lx, with leading
+ zeros. The result is stored in a circular static buffer, NUMCELLS
+ deep. */
+
+extern const char *phex_ulongest (ULONGEST l, int sizeof_l);
+
+/* Convert L into a HEX string, like %lx, with leading zeros.
The result is stored in a circular static buffer, NUMCELLS deep. */
-extern const char *phex (ULONGEST l, int sizeof_l);
+template<typename T>
+const char *phex (T l, int sizeof_l = sizeof (T))
+{
+ return phex_ulongest (l, sizeof_l);
+}
+
+/* Convert L (of type ULONGEST) into a hex string, like %lx, without leading
+ zeros. The result is stored in a circular static buffer, NUMCELLS
+ deep. */
-/* Convert a ULONGEST into a HEX string, like %lx, without leading zeros.
- The result is stored in a circular static buffer, NUMCELLS deep. */
+extern const char *phex_nz_ulongest (ULONGEST l, int sizeof_l);
+
+/* Convert L into a hex string, like %lx, without leading zeros.
+ The result is stored in a circular static buffer, NUMCELLS deep. */
-extern const char *phex_nz (ULONGEST l, int sizeof_l);
+template<typename T>
+const char *phex_nz (T l, int sizeof_l = sizeof (T))
+{
+ return phex_nz_ulongest (l, sizeof_l);
+}
/* Converts a LONGEST to a C-format hexadecimal literal and stores it
in a static string. Returns a pointer to this string. */
diff --git a/gdbsupport/ptid.cc b/gdbsupport/ptid.cc
index 56daf92..62efc3d 100644
--- a/gdbsupport/ptid.cc
+++ b/gdbsupport/ptid.cc
@@ -1,6 +1,6 @@
/* The ptid_t type and common functions operating on it.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/ptid.h b/gdbsupport/ptid.h
index f502efe..db6c9a8 100644
--- a/gdbsupport/ptid.h
+++ b/gdbsupport/ptid.h
@@ -1,6 +1,6 @@
/* The ptid_t type and common functions operating on it.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/ptrace.m4 b/gdbsupport/ptrace.m4
index 4153064..1d2397f 100644
--- a/gdbsupport/ptrace.m4
+++ b/gdbsupport/ptrace.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2012-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
diff --git a/gdbsupport/range-chain.h b/gdbsupport/range-chain.h
index b6b711b..d00490b 100644
--- a/gdbsupport/range-chain.h
+++ b/gdbsupport/range-chain.h
@@ -1,5 +1,5 @@
/* A range adapter that wraps multiple ranges
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/refcounted-object.h b/gdbsupport/refcounted-object.h
index 42bf71a..0a33898 100644
--- a/gdbsupport/refcounted-object.h
+++ b/gdbsupport/refcounted-object.h
@@ -1,5 +1,5 @@
/* Base class of intrusively reference-counted objects.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/reference-to-pointer-iterator.h b/gdbsupport/reference-to-pointer-iterator.h
index 6f21595..af58e38 100644
--- a/gdbsupport/reference-to-pointer-iterator.h
+++ b/gdbsupport/reference-to-pointer-iterator.h
@@ -1,5 +1,5 @@
/* An iterator wrapper that yields pointers instead of references.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/remote-args.cc b/gdbsupport/remote-args.cc
new file mode 100644
index 0000000..2493433
--- /dev/null
+++ b/gdbsupport/remote-args.cc
@@ -0,0 +1,43 @@
+/* Copyright (C) 2023-2025 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/remote-args.h"
+#include "gdbsupport/common-inferior.h"
+#include "gdbsupport/buildargv.h"
+
+/* See remote-args.h. */
+
+std::vector<std::string>
+gdb::remote_args::split (const std::string &args)
+{
+ std::vector<std::string> results;
+
+ gdb_argv argv (args.c_str ());
+ for (int i = 0; argv[i] != nullptr; i++)
+ results.emplace_back (argv[i]);
+
+ return results;
+}
+
+/* See remote-args.h. */
+
+std::string
+gdb::remote_args::join (const std::vector<char *> &args)
+{
+ return construct_inferior_arguments (args, true);
+}
diff --git a/gdbsupport/remote-args.h b/gdbsupport/remote-args.h
new file mode 100644
index 0000000..0533da6
--- /dev/null
+++ b/gdbsupport/remote-args.h
@@ -0,0 +1,60 @@
+/* Functions to help when passing arguments between GDB and gdbserver.
+
+ Copyright (C) 2023-2025 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 GDBSUPPORT_REMOTE_ARGS_H
+#define GDBSUPPORT_REMOTE_ARGS_H
+
+/* The functions declared here are used when passing inferior arguments
+ from GDB to gdbserver.
+
+ The remote protocol requires that arguments are passed as a vector of
+ separate argument while GDB stores the arguments as a single string, and
+ gdbserver also requires the arguments be a single string.
+
+ These functions then provide a mechanism to split up an argument string
+ and recombine it within gdbserver while preserving escaping of special
+ characters within the argument string. */
+
+namespace gdb
+{
+
+namespace remote_args
+{
+
+/* ARGS is an inferior argument string. This function splits ARGS into
+ individual arguments and returns a vector containing each argument. */
+
+extern std::vector<std::string> split (const std::string &args);
+
+/* Join together the separate arguments in ARGS and build a single
+ inferior argument string. The string returned by this function will be
+ equivalent, but not necessarily identical to the string passed to
+ ::split, for example passing the string '"a b"' (without the single
+ quotes, but including the double quotes) to ::split, will return an
+ argument of 'a b' (without the single quotes). When this argument is
+ passed through ::join we will get back the string 'a\ b' (without the
+ single quotes), that is, we choose to escape the white space, rather
+ than wrap the argument in quotes. */
+extern std::string join (const std::vector<char *> &args);
+
+} /* namespace remote_args */
+
+} /* namespace gdb */
+
+#endif /* GDBSUPPORT_REMOTE_ARGS_H */
diff --git a/gdbsupport/rsp-low.cc b/gdbsupport/rsp-low.cc
index 20f249f..4272410 100644
--- a/gdbsupport/rsp-low.cc
+++ b/gdbsupport/rsp-low.cc
@@ -1,6 +1,6 @@
/* Low-level RSP routines for GDB, the GNU debugger.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/rsp-low.h b/gdbsupport/rsp-low.h
index e91c79e..8e8171d 100644
--- a/gdbsupport/rsp-low.h
+++ b/gdbsupport/rsp-low.h
@@ -1,6 +1,6 @@
/* Low-level RSP routines for GDB, the GNU debugger.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/run-time-clock.cc b/gdbsupport/run-time-clock.cc
index f754b03..cda60b0 100644
--- a/gdbsupport/run-time-clock.cc
+++ b/gdbsupport/run-time-clock.cc
@@ -1,5 +1,5 @@
/* User/system CPU time clocks that follow the std::chrono interface.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -37,14 +37,51 @@ timeval_to_microseconds (struct timeval *tv)
}
#endif
+/* See run-time-clock.h. */
+
+bool
+get_run_time_thread_scope_available ()
+{
+#if defined HAVE_GETRUSAGE && defined RUSAGE_THREAD
+ return true;
+#else
+ return false;
+#endif
+}
+
void
-run_time_clock::now (user_cpu_time_clock::time_point &user,
- system_cpu_time_clock::time_point &system) noexcept
+get_run_time (user_cpu_time_clock::time_point &user,
+ system_cpu_time_clock::time_point &system,
+ run_time_scope scope) noexcept
{
#ifdef HAVE_GETRUSAGE
+
+ /* If we can't provide thread scope run time usage, fallback to
+ process scope. This will at least be right if GDB is built
+ without threading support in the first place (or is set to use
+ zero worker threads). */
+# ifndef RUSAGE_THREAD
+# define RUSAGE_THREAD RUSAGE_SELF
+# endif
+
struct rusage rusage;
+ int who;
+
+ switch (scope)
+ {
+ case run_time_scope::thread:
+ who = RUSAGE_THREAD;
+ break;
+
+ case run_time_scope::process:
+ who = RUSAGE_SELF;
+ break;
+
+ default:
+ gdb_assert_not_reached ("invalid run_time_scope value");
+ }
- getrusage (RUSAGE_SELF, &rusage);
+ getrusage (who, &rusage);
microseconds utime = timeval_to_microseconds (&rusage.ru_utime);
microseconds stime = timeval_to_microseconds (&rusage.ru_stime);
diff --git a/gdbsupport/run-time-clock.h b/gdbsupport/run-time-clock.h
index f432854..2743514 100644
--- a/gdbsupport/run-time-clock.h
+++ b/gdbsupport/run-time-clock.h
@@ -1,5 +1,5 @@
/* User/system CPU time clocks that follow the std::chrono interface.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -51,6 +51,33 @@ struct system_cpu_time_clock
static time_point now () noexcept = delete;
};
+/* Whether to measure time run time for the whole process or just one
+ thread. */
+
+enum class run_time_scope
+{
+ process,
+ thread,
+};
+
+/* Return the user/system time as separate time points, if
+ supported. If not supported, then the combined user+kernel time
+ is returned in USER and SYSTEM is set to zero.
+
+ SCOPE indicates whether to return the run time for the whole
+ process or just for the calling thread. If the latter isn't
+ supported, then returns the run time for the whole process even if
+ run_time_scope::thread is requested. */
+
+void get_run_time (user_cpu_time_clock::time_point &user,
+ system_cpu_time_clock::time_point &system,
+ run_time_scope scope) noexcept;
+
+/* Returns true if is it possible for get_run_time above to return the
+ run time for just the calling thread. */
+
+bool get_run_time_thread_scope_available ();
+
/* Count the total amount of time spent executing in userspace+kernel
mode. */
@@ -64,12 +91,6 @@ struct run_time_clock
static constexpr bool is_steady = true;
static time_point now () noexcept;
-
- /* Return the user/system time as separate time points, if
- supported. If not supported, then the combined user+kernel time
- is returned in USER and SYSTEM is set to zero. */
- static void now (user_cpu_time_clock::time_point &user,
- system_cpu_time_clock::time_point &system) noexcept;
};
#endif /* GDBSUPPORT_RUN_TIME_CLOCK_H */
diff --git a/gdbsupport/safe-iterator.h b/gdbsupport/safe-iterator.h
index f31f92f..5388160 100644
--- a/gdbsupport/safe-iterator.h
+++ b/gdbsupport/safe-iterator.h
@@ -1,5 +1,5 @@
/* A safe iterator for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/safe-strerror.cc b/gdbsupport/safe-strerror.cc
index 54b3b85..88795d7 100644
--- a/gdbsupport/safe-strerror.cc
+++ b/gdbsupport/safe-strerror.cc
@@ -1,6 +1,6 @@
/* Safe version of strerror for GDB, the GNU debugger.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scope-exit.h b/gdbsupport/scope-exit.h
index c0aadd9..6a550c5 100644
--- a/gdbsupport/scope-exit.h
+++ b/gdbsupport/scope-exit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_fd.h b/gdbsupport/scoped_fd.h
index 240685a..2831e4f 100644
--- a/gdbsupport/scoped_fd.h
+++ b/gdbsupport/scoped_fd.h
@@ -1,6 +1,6 @@
/* scoped_fd, automatically close a file descriptor
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_ignore_signal.h b/gdbsupport/scoped_ignore_signal.h
index 2fecd58..9894704 100644
--- a/gdbsupport/scoped_ignore_signal.h
+++ b/gdbsupport/scoped_ignore_signal.h
@@ -1,6 +1,6 @@
/* Support for ignoring signals.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_ignore_sigttou.h b/gdbsupport/scoped_ignore_sigttou.h
index bb4e86d..e1c9a72 100644
--- a/gdbsupport/scoped_ignore_sigttou.h
+++ b/gdbsupport/scoped_ignore_sigttou.h
@@ -1,6 +1,6 @@
/* Support for ignoring SIGTTOU.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_mmap.cc b/gdbsupport/scoped_mmap.cc
index c5c527b..8321f36 100644
--- a/gdbsupport/scoped_mmap.cc
+++ b/gdbsupport/scoped_mmap.cc
@@ -1,6 +1,6 @@
/* scoped_mmap, automatically unmap files
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_mmap.h b/gdbsupport/scoped_mmap.h
index ea2f4fd..dbe472a 100644
--- a/gdbsupport/scoped_mmap.h
+++ b/gdbsupport/scoped_mmap.h
@@ -1,6 +1,6 @@
/* scoped_mmap, automatically unmap files
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_restore.h b/gdbsupport/scoped_restore.h
index 5833b92..672e8b1 100644
--- a/gdbsupport/scoped_restore.h
+++ b/gdbsupport/scoped_restore.h
@@ -1,6 +1,6 @@
/* scoped_restore, a simple class for saving and restoring a value
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_signal_handler.h b/gdbsupport/scoped_signal_handler.h
index 5bf713b..e470595 100644
--- a/gdbsupport/scoped_signal_handler.h
+++ b/gdbsupport/scoped_signal_handler.h
@@ -1,6 +1,6 @@
/* RAII class to install a separate handler for a given signal
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/search.cc b/gdbsupport/search.cc
index 6c52643..230d2a8 100644
--- a/gdbsupport/search.cc
+++ b/gdbsupport/search.cc
@@ -1,6 +1,6 @@
/* Target memory searching
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/search.h b/gdbsupport/search.h
index f8c003b..9ee2fb0 100644
--- a/gdbsupport/search.h
+++ b/gdbsupport/search.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/selftest.cc b/gdbsupport/selftest.cc
index 174c45b..0874807 100644
--- a/gdbsupport/selftest.cc
+++ b/gdbsupport/selftest.cc
@@ -1,5 +1,5 @@
/* GDB self-testing.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/selftest.h b/gdbsupport/selftest.h
index cbbdd01..1bc7475 100644
--- a/gdbsupport/selftest.h
+++ b/gdbsupport/selftest.h
@@ -1,5 +1,5 @@
/* GDB self-testing.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/selftest.m4 b/gdbsupport/selftest.m4
index 2e7cae1..df1a759 100644
--- a/gdbsupport/selftest.m4
+++ b/gdbsupport/selftest.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2018-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2018-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
diff --git a/gdbsupport/signals-state-save-restore.cc b/gdbsupport/signals-state-save-restore.cc
index 60724f9..8247434 100644
--- a/gdbsupport/signals-state-save-restore.cc
+++ b/gdbsupport/signals-state-save-restore.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/signals-state-save-restore.h b/gdbsupport/signals-state-save-restore.h
index e01ac36..26e0203 100644
--- a/gdbsupport/signals-state-save-restore.h
+++ b/gdbsupport/signals-state-save-restore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/signals.cc b/gdbsupport/signals.cc
index 2cf641b..f4065cc 100644
--- a/gdbsupport/signals.cc
+++ b/gdbsupport/signals.cc
@@ -1,5 +1,5 @@
/* Target signal translation functions for GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
diff --git a/gdbsupport/symbol.h b/gdbsupport/symbol.h
index de439c0..cbb58e4 100644
--- a/gdbsupport/symbol.h
+++ b/gdbsupport/symbol.h
@@ -1,6 +1,6 @@
/* Declarations of common symbol functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/task-group.cc b/gdbsupport/task-group.cc
index e29ed25..61ccfb0 100644
--- a/gdbsupport/task-group.cc
+++ b/gdbsupport/task-group.cc
@@ -1,6 +1,6 @@
/* Task group
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/task-group.h b/gdbsupport/task-group.h
index b1d287a..4c78297 100644
--- a/gdbsupport/task-group.h
+++ b/gdbsupport/task-group.h
@@ -1,6 +1,6 @@
/* Task group
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/tdesc.cc b/gdbsupport/tdesc.cc
index 080d39c..ed92c86 100644
--- a/gdbsupport/tdesc.cc
+++ b/gdbsupport/tdesc.cc
@@ -1,6 +1,6 @@
/* Target description support for GDB.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/tdesc.h b/gdbsupport/tdesc.h
index eafa95d..6bf66ad 100644
--- a/gdbsupport/tdesc.h
+++ b/gdbsupport/tdesc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/thread-pool.cc b/gdbsupport/thread-pool.cc
index 04a2034..d70df82 100644
--- a/gdbsupport/thread-pool.cc
+++ b/gdbsupport/thread-pool.cc
@@ -1,6 +1,6 @@
/* Thread pool
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/thread-pool.h b/gdbsupport/thread-pool.h
index 85f2348..f3ac94b 100644
--- a/gdbsupport/thread-pool.h
+++ b/gdbsupport/thread-pool.h
@@ -1,6 +1,6 @@
/* Thread pool
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/traits.h b/gdbsupport/traits.h
index 62e6de7..4f8f857 100644
--- a/gdbsupport/traits.h
+++ b/gdbsupport/traits.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/underlying.h b/gdbsupport/underlying.h
index a3e7e3f..8880b16 100644
--- a/gdbsupport/underlying.h
+++ b/gdbsupport/underlying.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/unordered_map.h b/gdbsupport/unordered_map.h
index 96407b5..10c0c51 100644
--- a/gdbsupport/unordered_map.h
+++ b/gdbsupport/unordered_map.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2024 Free Software Foundation, Inc.
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/unordered_set.h b/gdbsupport/unordered_set.h
index 73a4fa4..aaa4579 100644
--- a/gdbsupport/unordered_set.h
+++ b/gdbsupport/unordered_set.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2024 Free Software Foundation, Inc.
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/valid-expr.h b/gdbsupport/valid-expr.h
index ef51958..48dce25 100644
--- a/gdbsupport/valid-expr.h
+++ b/gdbsupport/valid-expr.h
@@ -1,6 +1,6 @@
/* Compile-time valid expression checker for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/version.h b/gdbsupport/version.h
index 052d613..0f4c379 100644
--- a/gdbsupport/version.h
+++ b/gdbsupport/version.h
@@ -1,5 +1,5 @@
/* Version information for GDB.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/warning.m4 b/gdbsupport/warning.m4
index 04b58f1..fe1d279 100644
--- a/gdbsupport/warning.m4
+++ b/gdbsupport/warning.m4
@@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright (C) 1995-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
diff --git a/gdbsupport/x86-xstate.h b/gdbsupport/x86-xstate.h
index 45300b2..6657c45 100644
--- a/gdbsupport/x86-xstate.h
+++ b/gdbsupport/x86-xstate.h
@@ -1,6 +1,6 @@
/* Common code for x86 XSAVE extended state.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -28,6 +28,7 @@
#define X86_XSTATE_ZMM_H_ID 6
#define X86_XSTATE_ZMM_ID 7
#define X86_XSTATE_PKRU_ID 9
+#define X86_XSTATE_CET_U_ID 11
/* The extended state feature bits. */
#define X86_XSTATE_X87 (1ULL << X86_XSTATE_X87_ID)
@@ -42,6 +43,7 @@
| X86_XSTATE_ZMM)
#define X86_XSTATE_PKRU (1ULL << X86_XSTATE_PKRU_ID)
+#define X86_XSTATE_CET_U (1ULL << X86_XSTATE_CET_U_ID)
/* Total size of the XSAVE area extended region and offsets of
register states within the region. Offsets are set to 0 to
@@ -83,8 +85,11 @@ constexpr bool operator!= (const x86_xsave_layout &lhs,
#define X86_XSTATE_AVX_AVX512_PKU_MASK (X86_XSTATE_AVX_MASK\
| X86_XSTATE_AVX512 | X86_XSTATE_PKRU)
-#define X86_XSTATE_ALL_MASK (X86_XSTATE_AVX_AVX512_PKU_MASK)
+/* Supported mask of state-component bitmap xstate_bv. The SDM defines
+ xstate_bv as XCR0 | IA32_XSS. */
+#define X86_XSTATE_ALL_MASK (X86_XSTATE_AVX_AVX512_PKU_MASK\
+ | X86_XSTATE_CET_U)
#define X86_XSTATE_SSE_SIZE 576
#define X86_XSTATE_AVX_SIZE 832
diff --git a/gdbsupport/xml-utils.cc b/gdbsupport/xml-utils.cc
index b89204c..a4cca8b 100644
--- a/gdbsupport/xml-utils.cc
+++ b/gdbsupport/xml-utils.cc
@@ -1,6 +1,6 @@
/* Shared helper routines for manipulating XML.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/xml-utils.h b/gdbsupport/xml-utils.h
index d68f4c9..c6b0e49 100644
--- a/gdbsupport/xml-utils.h
+++ b/gdbsupport/xml-utils.h
@@ -1,6 +1,6 @@
/* Shared helper routines for manipulating XML.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.