Files
swift-mirror/tools/swift-inspect
Cassie Jones f478b79af9 swift-inspect: Explicitly reference String.init(cString:)
This was briefly failing to build because of an ambiguous initializer
while making other changes, it's better to be explicit with method names
anyway.

rdar://127548384
2024-05-07 14:06:36 -07:00
..

swift-inspect

swift-inspect is a debugging tool which allows you to inspect a live Swift process to gain insight into the runtime interactions of the application.

swift-inspect uses the reflection APIs to introspect the live process. It relies on the swift remote mirror library to remotely reconstruct data types.

Building

swift-inspect can be built using swift-package-manager.

Windows

In order to build on Windows, some additional parameters must be passed to the build tool to locate the necessary libraries.

swift build -Xcc -I%SDKROOT%\usr\include\swift\SwiftRemoteMirror -Xlinker %SDKROOT%\usr\lib\swift\windows\x86_64\swiftRemoteMirror.lib

Using

The following inspection operations are available currently.

All Platforms
dump-arrays <name-or-pid>
Print information about array objects in the target
dump-cache-nodes <name-or-pid>
Print the metadata cache nodes.
dump-conformance-cache <name-or-pid>
Print the content of the protocol conformance cache.
dump-generic-metadata <name-or-pid> [--backtrace] [--backtrace-long]
Print generic metadata allocations.
dump-raw-metadata <name-or-pid> [--backtrace] [--backtrace-long]
Print metadata allocations.
Darwin Only
dump-concurrency <name-or-pid>
Print information about tasks, actors, and threads under Concurrency.