aboutsummaryrefslogtreecommitdiff
path: root/gdb/NEWS
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2022-02-24 16:42:22 -0800
committerKeith Seitz <keiths@redhat.com>2022-02-24 16:42:22 -0800
commit64a9760601d3d8761fcf0aae121e69ca0cae1a9c (patch)
tree568bdb8fd5255e7824d6912582baf7f7d93e5292 /gdb/NEWS
parentb05752c223b79f3b42fb2a506377fc12adaf8aeb (diff)
downloadgdb-64a9760601d3d8761fcf0aae121e69ca0cae1a9c.zip
gdb-64a9760601d3d8761fcf0aae121e69ca0cae1a9c.tar.gz
gdb-64a9760601d3d8761fcf0aae121e69ca0cae1a9c.tar.bz2
Support template lookups in strncmp_iw_with_mode
This patch adds support for wild template parameter list matches, similar to how ABI tags or function overloads are now handled. With this patch, users will be able to "gloss over" the details of matching template parameter lists. This is accomplished by adding (yet more) logic to strncmp_iw_with_mode to skip parameter lists if none is explicitly given by the user. Here's a simple example using gdb.linespec/cpls-ops.exp: Before ------ (gdb) ptype test_op_call type = struct test_op_call { public: void operator()(void); void operator()(int); void operator()(long); void operator()<int>(int *); } (gdb) b test_op_call::operator() Breakpoint 1 at 0x400583: test_op_call::operator(). (3 locations) (gdb) i b Num Type Disp Enb Address What 1 breakpoint keep y <MULTIPLE> 1.1 y 0x400583 in test_op_call::operator()(int) at cpls-ops.cc:43 1.2 y 0x40058e in test_op_call::operator()() at cpls-ops.cc:47 1.3 y 0x40059e in test_op_call::operator()(long) at cpls-ops.cc:51 The breakpoint at test_op_call::operator()<int> was never set. After ----- (gdb) b test_op_call::operator() Breakpoint 1 at 0x400583: test_op_call::operator(). (4 locations) (gdb) i b Num Type Disp Enb Address What 1 breakpoint keep y <MULTIPLE> 1.1 y 0x400583 in test_op_call::operator()(int) at cpls-ops.cc:43 1.2 y 0x40058e in test_op_call::operator()() at cpls-ops.cc:47 1.3 y 0x40059e in test_op_call::operator()(long) at cpls-ops.cc:51 1.4 y 0x4008d0 in test_op_call::operator()<int>(int*) at cpls-ops.cc:57 Similar to how scope lookups work, passing "-qualified" to the break command will cause a literal lookup of the symbol. In the example immediately above, this will cause GDB to only find the three non-template functions.
Diffstat (limited to 'gdb/NEWS')
-rw-r--r--gdb/NEWS14
1 files changed, 14 insertions, 0 deletions
diff --git a/gdb/NEWS b/gdb/NEWS
index fdd4204..41ea84e 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -3,6 +3,20 @@
*** Changes since GDB 11
+* Improved C++ template support
+
+ GDB now treats functions/types involving C++ templates like it does function
+ overloads. Users may omit parameter lists to set breakpoints on families of
+ template functions, including types/functions composed of multiple template types:
+
+ (gdb) break template_func(template_1, int)
+
+ The above will set breakpoints at every function `template_func' where
+ the first function parameter is any template type named `template_1' and
+ the second function parameter is `int'.
+
+ TAB completion also gains similar improvements.
+
* The FreeBSD native target now supports async mode.
* Configure changes