dbx90
This is an example of the use of dbx90 in debugging some Fortran code which
contains both COMMON blocks and modules.
The file to be debugged is called ‘fh4.f90’ and contains:
MODULE fh4
REAL r
END MODULE fh4
PROGRAM fh4_prog
USE fh4
COMMON/fh4com/i
i = 2
CALL sub
PRINT *,i,r
END PROGRAM fh4_prog
SUBROUTINE sub
USE fh4
COMMON/fh4com/i
r = 0.5*i
i = i*3
END SUBROUTINE sub
It is first compiled with the -g90 option and then run under dbx90:
% nagfor -g90 -o fh4 fh4.f90
% dbx90 fh4
NAG dbx90 Version 5.2(22)
Copyright 1995-2008 The Numerical Algorithms Group Ltd., Oxford, U.K.
GNU gdb Red Hat Linux (6.5-15.fc6rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...Using host libthread_db lib
rary "/lib/libthread_db.so.1".
(dbx90)
Setting a breakpoint in routine SUB and running the program.
(dbx90) stop in sub
[1] stop in SUB in file "fh4.f90"
(dbx90) run
stopped in SUB at line 16 in file "fh4.f90"
16 r = 0.5*i
(dbx90)
Printing the value of a variable, which may be local, in a COMMON
block, or in a USEd module.
(dbx90) print i
I = 2
(dbx90) next
17 i = i*3
(dbx90) print r
R = 1
(dbx90) next
18 END SUBROUTINE sub
(dbx90) print i
I = 6
Variables can also be assigned values.
(dbx90) assign i = 7
I = 7
(dbx90) cont
7 1.0000000
Program exited normally.
(dbx90) quit
%