diff options
Diffstat (limited to 'gdbsupport')
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. |