d72413e64a
So far, trying to evaluate an expression involving a function call for which GDB could find multiple function candidates outputs a menu so that the user can select the one to run. For instance, with the two following functions: type New_Integer is new Integer; function F (I : Integer) return Boolean; function F (I : New_Integer) return Boolean; Then we get the following GDB session: (gdb) print f(1) Multiple matches for f [0] cancel [1] foo.f at foo.adb:23 [2] foo.f at foo.adb.28 > While the source location information is sufficient in order to determine which one to select, one has to look for them in source files, which is not convenient. This commit tunes this menu in order to also include the list of formal and return types (if any) in each entry. The above then becomes: (gdb) print f(1) Multiple matches for f [0] cancel [1] foo.f (integer) return boolean at foo.adb:23 [2] foo.f (foo.new_integer) return boolean at foo.adb.28 > Since this output is more verbose than previously, this change also introduces an option (set/show ada print-signatures) to get the original output. gdb/ChangeLog: * ada-lang.c (print_signatures): New. (ada_print_symbol_signature): New. (user_select_syms): Add signatures to the output of candidate symbols using ada_print_symbol_signature. (_initialize_ada_language): Add a "set/show ada print-signatures" boolean option. gdb/testsuite/ChangeLog: * gdb.ada/fun_overload_menu.exp: New testcase. * gdb.ada/fun_overload_menu/foo.adb: New testcase. Tested on x86_64-linux, no regression. |
||
---|---|---|
.. | ||
foo.adb |