Add some new commands to hopefully make it easier to diagnose lock-related problems in ddb: - "show threadchain [thread]" will start with the specified thread (or the   current kdb thread by default) and show it's state.  If it is blocked on   a lock, it will find the owner of the lock and show its state, etc. - "show allchains" will find all of the threads that are blocked on a   lock (but do not have any threads blocked on a lock they hold) and show   the resulting thread chain. - "show lockchain <lock>" takes a pointer to a lock_object (such as a   mutex or rwlock).  If there is a turnstile for that lock, then it will   display all the threads blocked on the lock.  In addition, for each   thread blocked on the lock, it will display any contested locks they   hold, and recurse on those locks to show any threads blocked on those   locks, etc.
Add some new commands to hopefully make it easier to diagnose lock-related
problems in ddb:
- "show threadchain [thread]" will start with the specified thread (or the
  current kdb thread by default) and show it's state.  If it is blocked on
  a lock, it will find the owner of the lock and show its state, etc.
- "show allchains" will find all of the threads that are blocked on a
  lock (but do not have any threads blocked on a lock they hold) and show
  the resulting thread chain.
- "show lockchain <lock>" takes a pointer to a lock_object (such as a
  mutex or rwlock).  If there is a turnstile for that lock, then it will
  display all the threads blocked on the lock.  In addition, for each
  thread blocked on the lock, it will display any contested locks they
  hold, and recurse on those locks to show any threads blocked on those
  locks, etc.

jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase,jrobhoward/SCADAbase