1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
# 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](https://github.com/swiftlang/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
~~~
#### CMake
In order to build on Windows with CMake, some additional parameters must be passed to the build tool to locate the necessary Swift modules.
~~~
cmake -B out -G Ninja -S . -D ArgumentParser_DIR=... -D CMAKE_Swift_FLAGS="-Xcc -I%SDKROOT%\usr\include\swift\SwiftRemoteMirror"
~~~
### 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.
|