]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Add two new symbol domains
authorTom Tromey <tom@tromey.com>
Thu, 2 Mar 2023 22:07:47 +0000 (15:07 -0700)
committerTom Tromey <tom@tromey.com>
Sun, 28 Jan 2024 17:58:16 +0000 (10:58 -0700)
This adds two new symbol domain constants, TYPE_DOMAIN and
FUNCTION_DOMAIN.

Historically, gdb was a C debugger, and the symbol tables continue to
reflect this.  In particular, symbol domains match the C language,
with VAR_DOMAIN including variables, functions, and types.

However, other languages have other approaches to namespacing.  And,
in any case, it is often useful for other parts of gdb to be able to
distinguish between some domains at lookup time, without resorting to
examining a symbol's location -- in some situations, this sort of
filtering happens too late.

Nothing uses these new domains yet, but the idea behind the patch is
to separate symbols into more domains and then let the
language-specific parts of gdb implement their semantics in terms of
these categories.

gdb/sym-domains.def

index 251c66fa04b37bfeaa921db5e185de5aa1a2a31d..cea25a5f5b3fc42d048a05d021ddda10ac6172e3 100644 (file)
@@ -45,3 +45,12 @@ DOMAIN (LABEL)
 /* Fortran common blocks.  Their naming must be separate from VAR_DOMAIN.
    They also always use LOC_COMMON_BLOCK.  */
 DOMAIN (COMMON_BLOCK)
+
+/* TYPE_DOMAIN is for types and typedefs.  Note that tags are not
+   found here, see STRUCT_DOMAIN above.  */
+
+DOMAIN (TYPE)
+
+/* FUNCTION_DOMAIN is for functions and methods.  */
+
+DOMAIN (FUNCTION)