This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

debug/10561: g77/gdb incorrectly maps variables in fortran common block


>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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]