This is the mail archive of the gdb@sources.redhat.com 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]

Re: gdb with intel fortran compiler


On Wed 25 Feb 04,  3:26 PM, Daniel Jacobowitz <drow@false.org> said:
> On Wed, Feb 25, 2004 at 12:06:53PM -0800, Peter Jay Salzman wrote:
> > I can't "list out of the box:
> > 
> >    p@satan$ gdb a.out 
> >    (gdb) list
> >    1       ../sysdeps/i386/elf/start.S: No such file or directory.
> >            in ../sysdeps/i386/elf/start.S
 
Hi Dan,

> This is typical.  It happens for a lot of non-Fortran programs also. 
> start.S comes from glibc and is linked into every program.
 
Is there a short explanation of what this is and why it shows up?

It seems to be surpressed when using the idb (Intel's debugger) which,
of course, is less desirable than using my beloved GDB.

Can you point me to a document that talks about what this is?  If not,
no worries.  I just like learning new things.  :)

> > GDB doesn't like this expression in a conditional breakpoint:
> > 
> >    (gdb) break 11 if i == 12
> >    A parse error in expression, near `= 12'.
> > 
> > but it does like this one:
> > 
> >    (gdb) break 11 if i = 12
> >    Breakpoint 2 at 0x8049da9: file test.f90, line 11.
> 
> Are you sure it didn't modify the variable? :)
 
yeah:

   p@satan$ gdb a.out
   (gdb) break hello_world
   Breakpoint 1 at 0x8049d55: file test.f90, line 5.
   (gdb) run
   Starting program: /home/p/a.out 
   [New Thread 16384 (LWP 20012)]
   [Switching to Thread 16384 (LWP 20012)]

   Breakpoint 1, hello_world () at test.f90:5
   5          do i=1, 20
   Current language:  auto; currently fortran

   (gdb) print i
   $1 = 0

   (gdb) break 12 if i = 20
   Breakpoint 2 at 0x8049db6: file test.f90, line 12.

   (gdb) print i
   $2 = 0

   (gdb) cont
   Continuing.

   Breakpoint 2, hello_world () at test.f90:12
   12            print *, "element ", i, ": ", array(i)

   (gdb) print i
   $3 = 20

GDB definitely sees the "=" as being a test, not assignment.

> > Is this a GDB bug?  Is there a way to make expressions work the way they
> > should work when debugging a F90 executable?
> 
> The only thing you're missing is that GDB does not support F90.  No
> one's given serious time to the Fortran support in a few years now,
> either.  So it's assuming that Fortran -> Fortran77, at a guess.

Heh, OK.  That's too bad.  I'm a C programmer, and love C, but I also
have a secret love affair with F90 (which I don't want anybody to know
about).   ;-)

Pete

-- 
Make everything as simple as possible, but no simpler.  -- Albert Einstein
GPG Instructions: http://www.dirac.org/linux/gpg
GPG Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D


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