Personal tools
You are here: Home / cm / Wiki / 'DDD'
Navigation
Log in


Forgot your password?
 

'DDD'

To start off, DDD is something that we have been using on our linux boxes. I personally didn't really play around with the command line options for DDD, but I am starting to do so now. DDD is just a graphical user interface for a debugger that you choose to use. By default, GDB is used on linux. GDB has bugs that does not allow us to view arrays properly. These bugs are specifically to do with fortran code and GDB.'

So, I have started debugging with ddd --dbx Ok, first problem....why don't I have the 'kill' button active? I would like to kill a program, but I can't do it without just shutting ddd down!

Tried to look up a variable in NONLIN.f - It can't display NOPM correctly. Error message: VSL interpreter failed. rednil.vsl failed: no such file or directory.

DDD has been updated to the latest version on hpc - see Andrew Cantell's comments below.

So, I have used ddd with dbx with the latest version....ddd and dbx have started to communicate. Thanks Andrew. Just tried to debug NONLIN.f and ZERE50.f again. NOPM is being displayed without errors.

dbx and Fortran Dummy Variables

It has been reported that dbx has trouble viewing arrays but it appears that it is actually trouble viewing Fortran dummy variables,

but there is a work-around for this below. Local array variables appear to be fine.

We compile our Fortran code with the -qextname option which adds underscore to the ends of subprogram names. This means that the symbol-names are more unix-like but less aix-like. dbx thinks it can handle this and removes the underscores, but then seems to lose the symbol definitions. Trying to access dummy variables of Fortran subprograms (e.g. NRLIST in NONLIN) gives messages like:

[internal error: nil paramlist for function containing nrlist]

The work-around is to use the -x option on dbx. This prevents dbx from stripping the trailing underscores so you'll have to remember that some symbols have trailing underscores. e.g. to set a break point in the Fortran subroutine NONLIN, use the command:

stop in nonlin_

/hpc/cmiss/bin/rs6000-aix/dbx has been set up to include the -x option automatically, so if you have /hpc/cmiss/bin/rs6000-aix before /usr/bin in you PATH, then you don't need to do anything.

If /usr/bin/dbx is first in your PATH, then to tell ddd to add the -x option, it can be run as:

ddd --dbx --debugger 'dbx -x' <executable-name>