struct ThreadRecord

Defined at line 280 of file ../../src/developer/debug/ipc/records.h

Public Members

ProcessThreadId id
basic_string name
State state
BlockedReason blocked_reason
StackAmount stack_amount
vector frames

Public Methods

const char * StateToString (State )

Defined at line 109 of file ../../src/developer/debug/ipc/records.cc

const char * BlockedReasonToString (BlockedReason )

Defined at line 131 of file ../../src/developer/debug/ipc/records.cc

void Serialize (Serializer & ser, uint32_t ver)

Defined at line 347 of file ../../src/developer/debug/ipc/records.h

Enumerations

enum class State : uint32_t
Name Value Comments
kNew 0

The thread is newly created and running.

kRunning 1 --
kSuspended 2 --
kBlocked 3 --
kDying 4 --
kDead 5 --
kCoreDump 6 --
kLast 7

Not an actual thread state, for range checking.

Defined at line 281 of file ../../src/developer/debug/ipc/records.h

enum class BlockedReason : uint32_t
Name Value Comments
kNotBlocked 0

Used when State isn't kBlocked.

kException 1 --
kSleeping 2 --
kFutex 3 --
kPort 4 --
kChannel 5 --
kWaitOne 6 --
kWaitMany 7 --
kInterrupt 8 --
kPager 9 --
kLast 10

Not an actual blocked reason, for range checking.

Defined at line 294 of file ../../src/developer/debug/ipc/records.h

enum class StackAmount : uint32_t
Name Value Comments
kNone 0

A backtrace was not attempted. This will always be the case if the
thread is neither suspended nor blocked in an exception.

kMinimal 1

The frames vector contains a minimal stack only (if available) which
is defined as the top two frames. This is used when the stack frames
have not been specifically requested since retrieving the full stack
can be slow. The frames can still be less than 2 if there was an error
or if there is only one stack frame.

kFull 2

The frames are the full stack trace (up to some maximum).

kLast 3

Not an actual state, for range checking.

Indicates how much of the stack was attempted to be retrieved in this

call. This doesn't indicate how many stack frames were actually retrieved.

For example, there could be no stack frames because they weren't

requested, or there could be no stack frames due to an error.

Defined at line 315 of file ../../src/developer/debug/ipc/records.h