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  <tankut.baris.aktemur@intel.com>

	* valops.c (find_oload_champ): Improve debug output.

Change-Id: I771017e7afbbaf4809e2238a9b23274f55c61f55
This commit is contained in:
Tankut Baris Aktemur 2019-11-29 12:17:36 +01:00
parent e9194a1a0e
commit a992a3b010
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,7 @@
2019-11-29 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
* valops.c (find_oload_champ): Improve debug output.
2019-11-29 Tankut Baris Aktemur <tankut.baris.aktemur@intel.com>
* valops.c (find_oload_champ): Print part of debug messages

View File

@ -3039,10 +3039,15 @@ find_oload_champ (gdb::array_view<value *> 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 ())