![]() |
Software > OpenVMS Systems > Ask the Wizard ![]() HP OpenVMS Systemsask the wizard |
![]() |
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.
|