Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Peter Jay Salzman <p@dirac.org>
To: gdb@sources.redhat.com
Subject: gdb with intel fortran compiler
Date: Wed, 25 Feb 2004 20:12:00 -0000	[thread overview]
Message-ID: <20040225200653.GA13223@pete.localdomain> (raw)

I found some curious behavior when using GDB with executables compiled
with Intel's fortran 90/95 compiler (ifort).  I'm on Debian testing,
kernel 2.4.25, gdb 5.3-debian.

Here's my little "hello world" type program:


   PROGRAM hello_world

      integer, dimension(20) :: array = (/ (0, i=1,20) /)

      do i=1, 20

         if (i == 8) then
            print *, "hello there, element 8!"
         end if

         array(i) = i
         print *, "element ", i, ": ", array(i)
      end do

   END PROGRAM hello_world


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

but I can list the program by name:

   (gdb) list hello_world
   1       PROGRAM hello_world
   2
   3          integer, dimension(20) :: array = (/ (0, i=1,20) /)
   *snip*

What is causing this, and what's start.S?  Is there a way to make this
behavior "nicer"?

The other thing is that the GDB manual says that expressions are
evaluated as they normally are in whatever language you're using.  I
this not to be true.

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.

and it even works:

   (gdb) run
   Starting program: /home/p/a.out 
   [New Thread 16384 (LWP 19674)]
   [Switching to Thread 16384 (LWP 19674)]

   Breakpoint 2, hello_world () at test.f90:11
   11            array(i) = i
   (gdb) print i
   $1 = 12

as promised, we broke at line 11, when i==12.  The conditional operator
I used was "=".  GDB didn't seem to know "==" which is what the Fortran
language uses for testing.  GDB seemed to want the "=", which like in C,
is assignment in F90.

Is this a GDB bug?  Is there a way to make expressions work the way they
should work when debugging a F90 executable?

Thanks,
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


             reply	other threads:[~2004-02-25 20:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-25 20:12 Peter Jay Salzman [this message]
2004-02-25 20:26 ` Daniel Jacobowitz
2004-02-25 20:40   ` Peter Jay Salzman
2004-02-26  3:42     ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040225200653.GA13223@pete.localdomain \
    --to=p@dirac.org \
    --cc=gdb@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox