Skip to content

Commit

Permalink
Add helper script for diagnosing any future leak issues
Browse files Browse the repository at this point in the history
  • Loading branch information
complexspaces committed Jul 26, 2023
1 parent 1e9c093 commit f409d08
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
7 changes: 7 additions & 0 deletions tools/debugger.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"\>
<plist version="1.0">
<dict>
<key>com.apple.security.get-task-allow</key>
<true/>
</dict>
</plist>
20 changes: 20 additions & 0 deletions tools/run_with_leaks.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash
set -euo pipefail

# This script is a utility on Apple platforms to run one
# of arboard's example binaries under the `leaks` CLI tool,
# which can help to diagnose memory leakage in any kind of
# native or runtime-managed code.

example_name="$@"

script_dir=$(dirname $BASH_SOURCE[0])

# Build the example
cargo build --example "$example_name"

# Sign it with the required entitlements for process debugging.
codesign -s - -v -f --entitlements "$script_dir/debugger.entitlements" "./target/debug/examples/$example_name"

# Run the example binary under `leaks` to look for any leaked objects.
leaks --atExit -- "./target/debug/examples/$example_name"

0 comments on commit f409d08

Please sign in to comment.