[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference clt::cma

Title:DECthreads Conference
Moderator:PTHRED::MARYSTEON
Created:Mon May 14 1990
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:1553
Total number of notes:9541

1499.0. "Name that DECthreads exception" by TUXEDO::ZEE (There you go.) Thu Mar 06 1997 18:19

Customer running Digital UNIX V4.0a and DCE V2.0a.  We have a core file
that was generated by a TRY-CATCH_ALL around a routine that
was receiving an uxexpected exception and leaving a mutex locked.
In the CATCH_ALL, we abort()-ed to generate a core file.  Looking
at the core file in ladebug, we were hoping to determine what
that unexpected exception is.  So, we have two questions:

1. How does one parse the (status exception 0x177db030 [02737330060])
   below?  Hopefully, the abort() doesn't overwrite the unexpected
   exception that we care about.

(ladebug) pthread "t -f 12"
thread 12 (running) "<anonymous>" (0x140118150), created by 1003.4a/D4-exc
  Scheduling: throughput policy at priority 11
  Masked signals: SIGINT, SIGQUIT, SIGALRM, SIGTERM, SIGURG, SIGCHLD, SIGIO,
    SIGXCPU, SIGXFSZ, SIGVTALRM, SIGWINCH, SIGINFO, SIGUSR1, SIGUSR2
  Pending signals: none
  Object flags: none; self flags: no-async-sigs; sched flags: none; mutex
    flags: none; atomic flags: none
  Thread specific data: 0=0x1401185a8
  Stack: 0x140174888; base is 0x140176000, guard area at 0x140161fff
  General cancelability disabled, asynch cancelability disabled
  Current vp is 0, synch port is 0, vp ID is 0
  Join uses mutex 96 and condition variable 127; wait uses mutex 97 and
    condition variable 128
  The thread's start function and argument are 0x3ffbfdcbbf8 (0x140051e00)
  The thread's latest errno is 0, the last DECthreads exception caught was
    "exception formatting NYI" (status exception 0x177db030 [02737330060])
(ladebug)

2. Can one determine the PC at the time the exception occurred?

--Roger
T.RTitleUserPersonal
Name
DateLines
1499.1Elementary, my dear Watson... ;-)WTFN::SCALESDespair is appropriate and inevitable.Thu Mar 06 1997 22:0427
.0> How does one parse the (status exception 0x177db030 [02737330060]) below?  

By reading pthread_exception.h... :-)  

The value 0x177db### indicates that it's a DECthreads exception.   The status
code is 0x030.  So, look in pthread_exception.h for an invocation of the
_PTHREAD_STATUS_() macro with the first argument of 0x030.

Unfortunately, the arguments are in decimal, not hex, but I think this one
matches:

	#define pthread_cancel_s   _PTHREAD_STATUS_(48, 4)

So, it looks like you're the victim of a pthread_cancel()...  ;-)

.0> Hopefully, the abort() doesn't overwrite the unexpected exception that we 
.0> care about.

Nope, as far as I know, abort() doesn't affect this.

.0> Can one determine the PC at the time the exception occurred?

Nope...only the place where it was last re-raised.  (And, I'm not even sure that
you can find that... :-/ )


				Webb
1499.2thanks, WebbTUXEDO::ZEEThere you go.Fri Mar 07 1997 18:044
Gee, what happened to the good old days when you could just search
for the specific value in all headers ?^)

--Roger
1499.3Those days are gone... :-)WTFN::SCALESDespair is appropriate and inevitable.Mon Mar 10 1997 13:1012
.2> Gee, what happened to the good old days when you could just search
.2> for the specific value in all headers ?^)

Those were the days when VMS was the only interesting platform.  Now (by some
definition of that word) we have the Apollo Domain plaftorm and the portable
OSF DCE model in addition to VMS, and, while they all have (elements of) the
system/facility/id/severity encoding model, they each have different
encodings...  So, portable software is better off using macros than putting
specific values in the headers...  :-/


				Webb
1499.4Looks like a thread was cancelledBHAJEE::AIGNERWed Mar 26 1997 10:429
.0

To get the error text to a certain error status raised by some DCE/DECthreads
stuff, try the DCE control program:

dcecp> errtext 0x177db030
Thread has been canceled

Helmut