This is the mail archive of the gdb@sourceware.org mailing list for the GDB 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]

fortran arrays in gdb


Hello,

  I am trying to call fortran subroutines from C and then step
through the fortran code with gdb. Unfortunately, gdb (version 6.5)
cannot properly display the contents of 2D arrays passed to the fortran
routine. I have created 2 simple files:

mat.c - a C program which calls the fortran routine with a 4x4 matrix
testmat.f - a fortran77 subroutine which prints out the matrix

These were compiled with:

g77 -g -Wall -c testmat.f
gcc -g -Wall -o mat mat.c testmat.o -lg2c

Here is the output of the program (which is correct):

> ./mat
 a( 1, 1) =  1.
 a( 1, 2) =  5.
 a( 1, 3) =  9.
 a( 1, 4) =  13.
 a( 2, 1) =  2.
 a( 2, 2) =  6.
 a( 2, 3) =  10.
 a( 2, 4) =  14.
 a( 3, 1) =  3.
 a( 3, 2) =  7.
 a( 3, 3) =  11.
 a( 3, 4) =  15.
 a( 4, 1) =  4.
 a( 4, 2) =  8.
 a( 4, 3) =  12.
 a( 4, 4) =  16.

Now here is the problem: when I step through the fortran subroutine
with gdb and try to print out individual array values, it gives
incorrect results:

> gdb mat
...
(gdb) break testmat_
Breakpoint 1 at 0x8048592: file testmat.f, line 1.
(gdb) r
Starting program: /home/cosine/C/mat 

Breakpoint 1, testmat_ (n=0xbfa83ecc, a=0xbfa83ed0) at testmat.f:1
1             subroutine testmat(n,a)
Current language:  auto; currently fortran
(gdb) n
6             do 10 i = 1, n
(gdb) p a(2,2)
$1 = 3
(gdb) p a(4,3)
$2 = 6
(gdb) p a(3,4)
$3 = 6
(gdb) 

By comparing this with the correct output from calling the program,
we know that a(2,2) should in fact be 6, not 3. a(4,3) should be 12,
not 6, and a(3,4) should be 15, not 6.

Can someone please tell me if there is a way to correct this problem.
I really need to be able to step through fortran code and be able
to rely on the gdb output. Please help!

Patrick Alken

Attachment: mat.c
Description: Text document

Attachment: testmat.f
Description: Text document


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