23 wait frames, 30 objects, nothing unresolved -- the second deref turns every former miss into a resolved object, as predicted. XEvent 20 / XSemaphore 9 / XTimer 1; every WaitMultiple thread waits on a pair, and 78/79/80 and 64/65 are worker groups sharing a handle. %ebp does not survive as the count -- WaitMultiple reuses it at 8fc158 -- so the array is bounded by reading until an entry stops resolving instead. The frozen capture is still not taken: screen_id reads 'flight' at the second capture and out to ~470s, so the mission never black-screened. The diff in the data file is two healthy captures and is recorded as such.
58 lines
2.9 KiB
Plaintext
58 lines
2.9 KiB
Plaintext
=== healthy: 23 wait frames ===
|
|
T106 Wait n=1 xe::kernel::XEvent
|
|
T105 Wait n=1 xe::kernel::XEvent
|
|
T104 Wait n=1 xe::kernel::XEvent
|
|
T97 Wait n=1 xe::kernel::XEvent
|
|
T96 Wait n=1 xe::kernel::XEvent
|
|
T80 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T79 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T78 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T77 Wait n=1 xe::kernel::XEvent
|
|
T76 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XTimer
|
|
T75 Wait n=1 xe::kernel::XSemaphore
|
|
T74 Wait n=1 xe::kernel::XSemaphore
|
|
T71 Wait n=1 xe::kernel::XEvent
|
|
T69 Wait n=1 xe::kernel::XSemaphore
|
|
T68 Wait n=1 xe::kernel::XEvent
|
|
T66 Wait n=1 xe::kernel::XEvent
|
|
T65 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T64 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T63 Wait n=1 xe::kernel::XSemaphore
|
|
T62 Wait n=1 xe::kernel::XEvent
|
|
T61 Wait n=1 xe::kernel::XEvent
|
|
T50 Wait n=1 xe::kernel::XEvent
|
|
T36 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XEvent
|
|
--- objects waited on:
|
|
xe::kernel::XEvent 20
|
|
xe::kernel::XSemaphore 9
|
|
xe::kernel::XTimer 1
|
|
=== frozen: 20 wait frames ===
|
|
T106 Wait n=1 xe::kernel::XEvent
|
|
T104 Wait n=1 xe::kernel::XEvent
|
|
T97 Wait n=1 xe::kernel::XEvent
|
|
T96 Wait n=1 xe::kernel::XEvent
|
|
T80 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T79 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T78 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T77 Wait n=1 xe::kernel::XEvent
|
|
T76 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XTimer
|
|
T75 Wait n=1 xe::kernel::XSemaphore
|
|
T74 Wait n=1 xe::kernel::XSemaphore
|
|
T71 Wait n=1 xe::kernel::XEvent
|
|
T66 Wait n=1 xe::kernel::XEvent
|
|
T65 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T64 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XSemaphore
|
|
T63 Wait n=1 xe::kernel::XSemaphore
|
|
T62 Wait n=1 xe::kernel::XEvent
|
|
T61 Wait n=1 xe::kernel::XEvent
|
|
T50 Wait n=1 xe::kernel::XEvent
|
|
T36 WaitMultiple n=2 xe::kernel::XEvent, xe::kernel::XEvent
|
|
--- objects waited on:
|
|
xe::kernel::XEvent 18
|
|
xe::kernel::XSemaphore 8
|
|
xe::kernel::XTimer 1
|
|
=== healthy -> frozen ===
|
|
xe::kernel::XEvent 20 -> 18 CHANGED
|
|
xe::kernel::XSemaphore 9 -> 8 CHANGED
|
|
xe::kernel::XTimer 1 -> 1
|