[Info-vax] hung program location
Tom Adams
w.tom.adams at gmail.com
Tue Feb 19 08:26:44 EST 2013
On Feb 18, 6:32 pm, koeh... at eisner.nospam.encompasserve.org (Bob
Koehler) wrote:
> In article <f0482c25-2864-43f1-9590-96dba35d3... at ia3g2000vbb.googlegroups.com>, Tom Adams <w.tom.ad... 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.
The PC is 80141918 (as shown on show proc/cont) The process
is in HIB when it's at that address.
The code is well controlled in CMS so it's easy produce link maps.
I restarted the hung processes. This hanging is a rare event that I
don't know how to reproduce. But the process does pause at that PC
in HIB during a normal operation mode.
More information about the Info-vax
mailing list