This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
debug/10561: g77/gdb incorrectly maps variables in fortran common block
- From: potterveld at anl dot gov
- To: gcc-gnats at gcc dot gnu dot org
- Date: 30 Apr 2003 05:14:24 -0000
- Subject: debug/10561: g77/gdb incorrectly maps variables in fortran common block
- Reply-to: potterveld at anl dot gov
>Number: 10561
>Category: debug
>Synopsis: g77/gdb incorrectly maps variables in fortran common block
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Apr 30 05:16:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: David Potterveld
>Release: gcc: 3.2,3, gdb: 5.3
>Organization:
>Environment:
HP/Compaq/Dec Alpha, Tru64 unix 4.0f (aka OSF/1)
>Description:
gdb can't print variables in common. It appears to try reading a low memory address related to the variable offset in the common, ie, the offset to the start of the common is neglected.
Sample program:
program xxx
common /x/ a,b
a = 47
b = 2
end
compile with "g77 -g -O0 -o xxx xxx.f"
debug with: "gdb xxx"
gdb commands: [ Output:]
------------------------------------------------------
break MAIN__
run
step
step
print a [Error accessing memory address 0x8: Invalid argument.]
print &a [$1 = (PTR TO -> ( real*4 )) 0x8]
print &x_ [$2 = (PTR TO -> ( char (0:7))) 0x1400001d0]
print (real) x_ [$3 = 47]
Clearly, gdb is aware of variable "a", but has the wrong address for it.
>How-To-Repeat:
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: