HP OpenVMS Systems

ask the wizard
Content starts here

Resolving virtual address to source code?

» close window

The Question is:

 
Hi
 
I've got Fortran Written application he goes crazy ( looping ) at some
 unpredictable moments. It runs in batch. All  can see it his PC ( Program
 counter always jumping to the same adress . How can I translate to Program
 counter to a Source line number. Ob
vious I do have the
Fortan Source. Maybe you can give me a hint
TIA
Luc Meersschaut
MIPS Belgium
 


The Answer is :

Simplest way, assuming the image is linked at least TRACEBACK:
 
$ RUN/DEBUG program
DBG> SET MODULE/ALL
DBG> SET RADIX HEX
DBG> EXAMINE/INSTRUCTION address
 
Note that there is no need to actually run the program, you're just using DEBUG
to symbolise the PC.
 
To go further, you can SET PROCESS/SUSPEND to freeze the process, then use
SDA (privilege required) to see what it's doing.
 
$ ANALYZE/SYSTEM
SDA> SET PROCESS/INDEX=pid
SDA> SHOW CALL		! show call frame of current routine
SDA> SHOW CALL/NEXT	! show call frame of caller
SDA> SHOW CALL/NEXT	! show call frame of caller's caller
     etc...
 
Then, using DEBUG or the linker MAP file, you should be able to reconstruct
the call stack, and maybe even the arguments.
 

answer written or last revised on ( 2-OCT-2000 )

» close window