summaryrefslogtreecommitdiffstats
path: root/src/etc/rust-lldb
diff options
context:
space:
mode:
Diffstat (limited to 'src/etc/rust-lldb')
-rwxr-xr-xsrc/etc/rust-lldb37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/etc/rust-lldb b/src/etc/rust-lldb
new file mode 100755
index 000000000..bce72f1ba
--- /dev/null
+++ b/src/etc/rust-lldb
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# Exit if anything fails
+set -e
+
+# Find the host triple so we can find lldb in rustlib.
+host=$(rustc -vV | sed -n -e 's/^host: //p')
+
+# Find out where to look for the pretty printer Python module
+RUSTC_SYSROOT=$(rustc --print sysroot)
+RUST_LLDB="$RUSTC_SYSROOT/lib/rustlib/$host/bin/lldb"
+
+lldb=lldb
+if [ -f "$RUST_LLDB" ]; then
+ lldb="$RUST_LLDB"
+else
+ if ! command -v "$lldb" > /dev/null; then
+ echo "$lldb not found! Please install it." >&2
+ exit 1
+ else
+ LLDB_VERSION=$("$lldb" --version | cut -d ' ' -f3)
+
+ if [ "$LLDB_VERSION" = "3.5.0" ]; then
+ cat << EOF >&2
+***
+WARNING: This version of LLDB has known issues with Rust and cannot display the contents of local variables!
+***
+EOF
+ fi
+ fi
+fi
+
+script_import="command script import \"$RUSTC_SYSROOT/lib/rustlib/etc/lldb_lookup.py\""
+commands_file="$RUSTC_SYSROOT/lib/rustlib/etc/lldb_commands"
+
+# Call LLDB with the commands added to the argument list
+exec "$lldb" --one-line-before-file "$script_import" --source-before-file "$commands_file" "$@"