From a992a3b010983dc370c462dc467893724afbbde9 Mon Sep 17 00:00:00 2001 From: Tankut Baris Aktemur Date: Fri, 29 Nov 2019 12:17:36 +0100 Subject: [PATCH] gdb: improve debug output of function overload resolution Function overload resolution prints debug output if turned on via the 'set debug overload' command. The output includes the badness vector (BV). For each function, this vector contains a badness value of the length of parameters as its first element. So, BV[0] does not correspond to a parameter. The badness values of parameters start with BV[1]. A badness value is a pair; it contains a rank and a subrank. Printing both fields provides useful information. Improve printing the badness vector along these lines. gdb/ChangeLog: 2019-11-29 Tankut Baris Aktemur * valops.c (find_oload_champ): Improve debug output. Change-Id: I771017e7afbbaf4809e2238a9b23274f55c61f55 --- gdb/ChangeLog | 4 ++++ gdb/valops.c | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a3c06705d97..4b7e5066970 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2019-11-29 Tankut Baris Aktemur + + * valops.c (find_oload_champ): Improve debug output. + 2019-11-29 Tankut Baris Aktemur * valops.c (find_oload_champ): Print part of debug messages diff --git a/gdb/valops.c b/gdb/valops.c index 8af53deaa6f..e3fc2dc42e1 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -3039,10 +3039,15 @@ find_oload_champ (gdb::array_view args, "%s # of parms %d\n", functions[ix]->demangled_name (), (int) parm_types.size ()); - for (jj = 0; jj < args.size () - static_offset; jj++) + + fprintf_filtered (gdb_stderr, + "...Badness of length : {%d, %d}\n", + bv[0].rank, bv[0].subrank); + + for (jj = 1; jj < bv.size (); jj++) fprintf_filtered (gdb_stderr, - "...Badness @ %d : %d\n", - jj, bv[jj].rank); + "...Badness of arg %d : {%d, %d}\n", + jj, bv[jj].rank, bv[jj].subrank); } if (oload_champ_bv->empty ()) -- 2.30.2