mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
If we encounter bad data in the target, we could end up trying to print an infinite list of jobs. Clamp it to 1,000 so we fail more gracefully. rdar://113417637
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.