> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basset.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# threadSnapshot

> Every thread's stack, as addresses the developer's own build can resolve

A low-level stack walk. `threadSnapshot` never runs on its own — it fires
only when a different instrument raises a fault. Today that's
[`concurrency.mainThreadHang`](/instruments/concurrency/main-thread-hang)
(a hang) or [`memory.pressure`](/instruments/memory/pressure) (a critical crossing),
sharing a `faultId` with the reading that triggered it. See
[Instrument metadata](/instruments/metadata) for what fault delivery means.

| | |
| - | - |
| [Delivery](/instruments/metadata) | fault, once |
| Mechanism | machCall |
| [Requires](/instruments/metadata) | iOS 17+, basset 0.1.1+ |

Real output from `basset request get`, captured against a running app —
trimmed here to the main thread plus one other out of eight, triggered by a
`concurrency.mainThreadHang` fault:

```
CAPTURED                  ELAPSED  INSTRUMENT

launch 14880114225249392518
2026-08-23T14:25:07.635Z  +0.0s    runtime.threadSnapshot(thread)
├─ threadIndex   0
├─ threadName    
├─ threadIsMain  true
├─ frameAddress  6865638648
├─ frameAddress  4295914728
├─ frameAddress  4295914632
├─ frameAddress  4295756428
├─ frameAddress  7894915496
└─ faultId       1
2026-08-23T14:25:07.825Z  +0.2s    runtime.threadSnapshot(thread)
├─ threadIndex   4
├─ threadName    com.apple.uikit.eventfetch-thread
├─ threadIsMain  false
├─ frameAddress  9852781100
├─ frameAddress  9852780664
├─ frameAddress  6910460740
└─ faultId       1
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.