From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12793 invoked by alias); 7 Dec 2015 12:36:01 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 12779 invoked by uid 89); 7 Dec 2015 12:36:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.3 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 X-HELO: smtp.eu.adacore.com Received: from mel.act-europe.fr (HELO smtp.eu.adacore.com) (194.98.77.210) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Mon, 07 Dec 2015 12:35:59 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-smtp.eu.adacore.com (Postfix) with ESMTP id BDC333000983; Mon, 7 Dec 2015 13:35:56 +0100 (CET) Received: from smtp.eu.adacore.com ([127.0.0.1]) by localhost (smtp.eu.adacore.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Kvrr57QQ7txh; Mon, 7 Dec 2015 13:35:56 +0100 (CET) Received: from cacatoes.act-europe.fr (cacatoes.act-europe.fr [10.10.1.112]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by smtp.eu.adacore.com (Postfix) with ESMTPSA id AAE873000982; Mon, 7 Dec 2015 13:35:56 +0100 (CET) From: Pierre-Marie de Rodat To: gdb-patches@sourceware.org Cc: Joel Brobecker , Pierre-Marie de Rodat Subject: [PATCH] DOCO: Enhance the menu to select function overloads with signatures Date: Mon, 07 Dec 2015 12:36:00 -0000 Message-Id: <1449491748-2677-1-git-send-email-derodat@adacore.com> X-IsSubscribed: yes X-SW-Source: 2015-12/txt/msg00129.txt.bz2 gdb/ChangeLog: * NEWS: Announce this enhancement and the corresponding new option. gdb/doc/ChangeLog: * gdb.texinfo (Ada Mode Into): Move overloading support description to its own node. (Overloading support for Ada): New node. --- gdb/NEWS | 8 ++++++++ gdb/doc/gdb.texinfo | 57 ++++++++++++++++++++++++++++++++++++++++++++++------- 2 files changed, 58 insertions(+), 7 deletions(-) diff --git a/gdb/NEWS b/gdb/NEWS index a222dfb..060f1e2 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -28,6 +28,9 @@ and "maint info program-spaces" now list the corresponding items in ascending ID order, for consistency with all other "info" commands. +* In Ada, the overloads selection menu has been enhance to display the + parameter types and the return types for the matching overloaded subprograms. + * New commands maint set target-non-stop (on|off|auto) @@ -52,6 +55,11 @@ set remote thread-events show remote thread-events Set/show the use of thread create/exit events. +set ada print-signatures on|off +show ada print-signatures" + Control whether parameter types and return types are displayed in overloads + selection menus. It is activaled (@code{on}) by default. + * The "disassemble" command accepts a new modifier: /s. It prints mixed source+disassembly like /m with two differences: - disassembled instructions are now printed in program order, and diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index b82f3c6..db78ebd0 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -15606,6 +15606,8 @@ to be difficult. in @value{GDBN}. * Omissions from Ada:: Restrictions on the Ada expression syntax. * Additions to Ada:: Extensions of the Ada expression syntax. +* Overloading support for Ada:: Support for expressions involving overloaded + subprograms. * Stopping Before Main Program:: Debugging the program during elaboration. * Ada Exceptions:: Ada Exceptions * Ada Tasks:: Listing and setting breakpoints in tasks. @@ -15653,13 +15655,6 @@ mostly for documenting command files. The standard @value{GDBN} comment (@samp{#}) still works at the beginning of a line in Ada mode, but not in the middle (to allow based literals). -The debugger supports limited overloading. Given a subprogram call in which -the function symbol has multiple definitions, it will use the number of -actual parameters and some information about their types to attempt to narrow -the set of definitions. It also makes very limited use of context, preferring -procedures to functions in the context of the @code{call} command, and -functions to procedures elsewhere. - @node Omissions from Ada @subsubsection Omissions from Ada @cindex Ada, omissions from @@ -15920,6 +15915,54 @@ object. @end itemize +@node Overloading support for Ada +@subsubsection Overloading support for Ada +@cindex Ada, overloading + +The debugger supports limited overloading. Given a subprogram call in which +the function symbol has multiple definitions, it will use the number of +actual parameters and some information about their types to attempt to narrow +the set of definitions. It also makes very limited use of context, preferring +procedures to functions in the context of the @code{call} command, and +functions to procedures elsewhere. + +If, after narrowing, the set of matching definitions still contains more than +one definition, GDB will display a menu to query which one it should use, for +instance: + +@smallexample +(@value{GDBP}) 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 +> +@end smallexample + +In this case, just select one menu entry either to cancel expression evaluation +(type @code{0} and press @code{ENTER}) or to continue evaluation with a +specific overloaded entity (type the corresponding number and press +@code{ENTER}). + +Here are a couple of commands to customize @value{GDBN}'s behavior in this +case: + +@table @code + +@kindex set ada print-signatures +@item set ada print-signatures +Control whether parameter types and return types are displayed in overloads +selection menus. It is activaled (@code{on}) by default. +@pxref{Overloading support for Ada} + +@kindex show ada print-signatures +@item show ada print-signatures +Show the current setting for displaying parameter types and return types in +overloads selection menu. +@pxref{Overloading support for Ada} + +@end table + @node Stopping Before Main Program @subsubsection Stopping at the Very Beginning -- 2.6.2