From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7188 invoked by alias); 27 Feb 2006 05:00:00 -0000 Received: (qmail 7178 invoked by uid 22791); 27 Feb 2006 04:59:58 -0000 X-Spam-Check-By: sourceware.org Received: from ausmtp04.au.ibm.com (HELO ausmtp04.au.ibm.com) (202.81.18.152) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 27 Feb 2006 04:59:54 +0000 Received: from sd0208e0.au.ibm.com (d23rh904.au.ibm.com [202.81.18.202]) by ausmtp04.au.ibm.com (8.12.10/8.13.5) with ESMTP id k1R4tPA1179864 for ; Mon, 27 Feb 2006 16:06:45 +1100 Received: from d23av01.au.ibm.com (d23av01.au.ibm.com [9.190.250.242]) by sd0208e0.au.ibm.com (8.12.10/NCO/VER6.8) with ESMTP id k1R4b5UU217176 for ; Mon, 27 Feb 2006 15:37:10 +1100 Received: from d23av01.au.ibm.com (loopback [127.0.0.1]) by d23av01.au.ibm.com (8.12.11/8.13.3) with ESMTP id k1R4XkGD026852 for ; Mon, 27 Feb 2006 15:33:46 +1100 Received: from [9.181.133.236] ([9.181.133.236]) by d23av01.au.ibm.com (8.12.11/8.12.11) with ESMTP id k1R4Xg2B026712; Mon, 27 Feb 2006 15:33:44 +1100 Date: Mon, 27 Feb 2006 05:59:00 -0000 From: Wu Zhou To: Eli Zaretskii cc: gdb-patches@sources.redhat.com Subject: Re: [RFC]: Document patch for F90 derived type support In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2006-02/txt/msg00491.txt.bz2 Eli, Thanks for your quick review! Please see my answers below. On Fri, 24 Feb 2006, Eli Zaretskii wrote: > > Date: Fri, 24 Feb 2006 02:54:16 -0500 (EST) > > From: Wu Zhou > > > > Here is the modified document patch for F90 derived type support. Please > > review and comment. > > Reviewed; comments below. > > > + Fortran 90 and later support derived type (a.k.a structure). For a > ^^^^^ > This should be "a.k.a.@:". You forgot the last period, and @: tells > TeX that this period does not end a sentence, so that TeX typeset it > correctly. Thanks for the correction. Modified. > > + type = Type bar > > + int4 :: c > > + real*4 :: d > > + End Type bar > > Btw, isn't it more consistent to print "integer*4" instead of "int4"? > Either that, or just "integer", I think. Or is "int4" a valid type > name in f90? (The last Fortran I used was f77, so please forgive my > ignorance.) Yes. I also think so. But the name of "int4" is got from the DWARF tag: <1>: Abbrev Number: 4 (DW_TAG_base_type) DW_AT_name : int4 DW_AT_byte_size : 4 DW_AT_encoding : 5 (signed) Maybe we can suggest the compiler to generate integer or integer*4 instead. > > + For example, for variable q of type foo defined above: > > "q" and "foo" should be in @code (they are program symbols). Modified. > > > + Please be noted that in the above example, the result of @code{print q} > ^^^^^^^^^^^^^^^ > "Please note". Thanks. The modified patch is appended below: 2006-02-27 Wu Zhou * gdb.texinfo (Fortran): Document the "%" operator for member access. Document the type-print and value-print operation of Fortran 90 derived types. Index: gdb.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v retrieving revision 1.314 diff -c -p -r1.314 gdb.texinfo *** gdb.texinfo 18 Feb 2006 20:45:01 -0000 1.314 --- gdb.texinfo 27 Feb 2006 02:59:47 -0000 *************** of the second one. *** 9399,9404 **** --- 9399,9408 ---- @item : The range operator. Normally used in the form of array(low:high) to represent a section of array. + + @item % + Fortran 90 and later use this to access the members of derived + type, which is also introduced after the Fortran 90. @end table @node Fortran Defaults *************** This command prints the values contained *** 9427,9432 **** --- 9431,9506 ---- block whose name is @var{common-name}. With no argument, the names of all @code{COMMON} blocks visible at current program location are printed. + + @cindex structure type-print + @item ptype @var{derived-type} + Fortran 90 and later support derived type (a.k.a.@: structure). For a + variable of derived type, the @code{ptype} command will output all its + members, including nested derived type. + + For example, for this derived type declaration: + + @smallexample + type bar + integer :: c + real :: d + end type + + type foo + real :: a + type(bar) :: x + character*7 :: b + end type foo + @end smallexample + + @noindent + the @code{ptype} commands give this output: + + @smallexample + @group + (@value{GDBP}) ptype bar + type = Type bar + int4 :: c + real*4 :: d + End Type bar + (@value{GDBP}) ptype foo + type = Type foo + real*4 :: a + Type bar + int4 :: c + real*4 :: d + End Type bar :: x + character (7) :: b + End Type foo + @end group + @end smallexample + + @cindex structure value-print + @item print @var{derived-type} + For a variable of derived type, the @code{print} command will output the + value of all its members, including its nested derived type . + + For example, for variable @code{q} of type @code{foo} defined above: + + @smallexample + type(foo) :: q + @end smallexample + + @noindent + the @code{print} command will output this: + + @smallexample + @group + (@value{GDBP}) print q + $1 = @{ 3.125, @{ 1, 2.375@}, + (97 'a', 98 'b', 99 'c', 100 'd', 101 'e', 102 'f', 103 'g')@} + @end group + @end smallexample + + Please note that in the above example, the result of @code{print q} is + a single long line, broken only for clarity. + @noindent + @end table @node Pascal Regards - Wu Zhou