public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug exp/30817] New: [gdb/exp] Different interpretation of print options between C and Fortran
@ 2023-09-01 11:22 vries at gcc dot gnu.org
  2023-09-14 18:34 ` [Bug exp/30817] " cvs-commit at gcc dot gnu.org
  0 siblings, 1 reply; 2+ messages in thread
From: vries at gcc dot gnu.org @ 2023-09-01 11:22 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=30817

            Bug ID: 30817
           Summary: [gdb/exp] Different interpretation of print options
                    between C and Fortran
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: exp
          Assignee: unassigned at sourceware dot org
          Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

I wrote a fortran variant of gdb.base/huge.c:
...
$ cat test.f90
program arrays
  implicit none

  integer, dimension(2 * 1024 * 1024) :: array1
  print *, 'Hello, World!', array1(1)
end program arrays
$ gfortran test.f90 -g
...

For the gdb.base/huge.exp executable I used this:
...
$ gdb -q -batch outputs/gdb.base/huge/huge -ex start -ex "set max-value-size
unlimited" -ex "print a"
Temporary breakpoint 1 at 0x40053b: file
/data/vries/gdb/src/gdb/testsuite/gdb.base/huge.c, line 18.

Temporary breakpoint 1, main () at
/data/vries/gdb/src/gdb/testsuite/gdb.base/huge.c:18
18        memcpy (a, b, sizeof (a));
$1 = {0 <repeats 2097152 times>}
...
so I tried the same but got a different output:
...
$ gdb -q a.out -ex start -ex "set max-value-size unlimited" -ex "print array1"
Reading symbols from a.out...
Temporary breakpoint 1 at 0x400772: file test.f90, line 5.
Starting program: /data/vries/gdb/a.out 

Temporary breakpoint 1, arrays () at test.f90:5
5         print *, 'Hello, World!', array1(1)
$1 = (0, <repeats 200 times>, ...)
...

Apparently there is a different interpretation of print settings.

After adding "print elements unlimited", I get the same:
...
$ gdb -q -batch a.out -ex start -ex "set max-value-size unlimited" -ex "set
print elements unlimited" -ex "print array1"
Temporary breakpoint 1 at 0x400772: file test.f90, line 5.

Temporary breakpoint 1, arrays () at test.f90:5
5         print *, 'Hello, World!', array1(1)
$1 = (0, <repeats 2097152 times>)
...

The documentation says (
https://sourceware.org/gdb/onlinedocs/gdb/Print-Settings.html ):
...
set print elements number-of-elements
set print elements unlimited

    Set a limit on how many elements of an array GDB will print. If GDB is
printing a large array, it stops printing after it has printed the number of
elements set by the set print elements command. This limit also applies to the
display of strings. When GDB starts, this limit is set to 200. Setting
number-of-elements to unlimited or zero means that the number of elements to
print is unlimited.
...
so I guess this is indeed multi-interpretable.

My understanding of this is that this print setting tries to prevent printing a
lot, so I think the C behaviour makes more sense.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-09-14 18:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-01 11:22 [Bug exp/30817] New: [gdb/exp] Different interpretation of print options between C and Fortran vries at gcc dot gnu.org
2023-09-14 18:34 ` [Bug exp/30817] " cvs-commit at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).