[Info-vax] hung program location
Bob Koehler
koehler at eisner.nospam.encompasserve.org
Mon Feb 18 18:32:00 EST 2013
In article <f0482c25-2864-43f1-9590-96dba35d314f at ia3g2000vbb.googlegroups.com>, Tom Adams <w.tom.adams at gmail.com> writes:
> I can see the PC and SP where a program is hung using SHOW PROC/CONT.
>
> How can I relate that to a link map to figure out where the process is
> hung in the program that it is running?
>
> The process is running an installed shared image
>
> This is VMS 7.3-2 on an alpha
>
> Thanks.
If you posted the value, it would already give us a hint at how to
help you.
The link map from building the program will contain something near the
PC if it is part of your code. If the address is in system space, then
the OS link map will contain it, but you probably don't have a copy.
There are other ways to find it.
If the address is in a library, the library boundaries could show
up on the link map. Depends on whether you did a full map, IIRC.
Most likely, the PC is in system space, since system routines actually
implement program waits. System space values would most likely be
between FFFFFFFF80000000 and FFFFFFFFFFFFFFFF, and certainly above
8000000000000000.
If the program state is COM, or is changing, then some of the time
the PC may be pointing to your code. Look for an address below
000000007FFFFFFF.
VMS programs are broken into program sections, and you want to look
for your PC in the code program section. Look for $CODE$ on an Alpha
link map.
Most likely the exact value won't be there. If it's your code, there
will be a slightly smaller value, and the difference is the offset
into the routine that starts at that smaller value.
If you compile with a listing file and include the machine code, you
can find that offset in your code and relate it to a line of code.
If you did not generate compiler listings and full maps when you
built the code, you can generate them now, if you have exactly the
same source, are using the same versions of compilers, and use exactly
the same qualifiers that you did when the program was built, except
adding the listing, machine code, map, and full qualifiers.
More information about the Info-vax
mailing list