about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@posteo>2014-04-24 11:35:48 +0200
committerMichael Woerister <michaelwoerister@posteo>2014-05-07 19:58:07 +0200
commit55a8bd56e5a89f98aa9d4ed998cb8c686d447805 (patch)
treee49ddf2a659d8129ad336baff052daa881f6f505
parent445988b47811679144d0fa9b3a2ccf2348752850 (diff)
downloadrust-55a8bd56e5a89f98aa9d4ed998cb8c686d447805.tar.gz
rust-55a8bd56e5a89f98aa9d4ed998cb8c686d447805.zip
debuginfo: Split debuginfo autotests into debuginfo-gdb and debuginfo-lldb
-rwxr-xr-xconfigure23
-rw-r--r--mk/tests.mk42
-rw-r--r--src/compiletest/common.rs6
-rw-r--r--src/compiletest/compiletest.rs32
-rw-r--r--src/compiletest/header.rs15
-rw-r--r--src/compiletest/runtest.rs236
-rw-r--r--src/etc/lldb_batchmode.py184
-rw-r--r--src/test/debug-info/basic-types-globals-metadata.rs73
-rw-r--r--src/test/debug-info/basic-types-mut-globals.rs129
-rw-r--r--src/test/debug-info/lexical-scope-in-unconditional-loop.rs127
-rw-r--r--src/test/debug-info/lexical-scope-in-while.rs123
-rw-r--r--src/test/debug-info/lexical-scopes-in-block-expression.rs377
-rw-r--r--src/test/debug-info/simple-tuple.rs113
-rw-r--r--src/test/debug-info/vec-slices.rs87
-rw-r--r--src/test/debuginfo/basic-types-globals-metadata.rs73
-rw-r--r--src/test/debuginfo/basic-types-globals.rs (renamed from src/test/debug-info/basic-types-globals.rs)64
-rw-r--r--src/test/debuginfo/basic-types-metadata.rs (renamed from src/test/debug-info/basic-types-metadata.rs)72
-rw-r--r--src/test/debuginfo/basic-types-mut-globals.rs129
-rw-r--r--src/test/debuginfo/basic-types.rs (renamed from src/test/debug-info/basic-types.rs)62
-rw-r--r--src/test/debuginfo/borrowed-basic.rs (renamed from src/test/debug-info/borrowed-basic.rs)62
-rw-r--r--src/test/debuginfo/borrowed-c-style-enum.rs (renamed from src/test/debug-info/borrowed-c-style-enum.rs)18
-rw-r--r--src/test/debuginfo/borrowed-enum.rs (renamed from src/test/debug-info/borrowed-enum.rs)18
-rw-r--r--src/test/debuginfo/borrowed-managed-basic.rs (renamed from src/test/debug-info/borrowed-managed-basic.rs)62
-rw-r--r--src/test/debuginfo/borrowed-struct.rs (renamed from src/test/debug-info/borrowed-struct.rs)46
-rw-r--r--src/test/debuginfo/borrowed-tuple.rs (renamed from src/test/debug-info/borrowed-tuple.rs)22
-rw-r--r--src/test/debuginfo/borrowed-unique-basic.rs (renamed from src/test/debug-info/borrowed-unique-basic.rs)62
-rw-r--r--src/test/debuginfo/box.rs (renamed from src/test/debug-info/box.rs)24
-rw-r--r--src/test/debuginfo/boxed-struct.rs (renamed from src/test/debug-info/boxed-struct.rs)22
-rw-r--r--src/test/debuginfo/by-value-non-immediate-argument.rs (renamed from src/test/debug-info/by-value-non-immediate-argument.rs)62
-rw-r--r--src/test/debuginfo/by-value-self-argument-in-trait-impl.rs (renamed from src/test/debug-info/by-value-self-argument-in-trait-impl.rs)36
-rw-r--r--src/test/debuginfo/c-style-enum-in-composite.rs (renamed from src/test/debug-info/c-style-enum-in-composite.rs)34
-rw-r--r--src/test/debuginfo/c-style-enum.rs (renamed from src/test/debug-info/c-style-enum.rs)78
-rw-r--r--src/test/debuginfo/closure-in-generic-function.rs (renamed from src/test/debug-info/closure-in-generic-function.rs)32
-rw-r--r--src/test/debuginfo/destructured-fn-argument.rs (renamed from src/test/debug-info/destructured-fn-argument.rs)338
-rw-r--r--src/test/debuginfo/destructured-local.rs (renamed from src/test/debug-info/destructured-local.rs)226
-rw-r--r--src/test/debuginfo/evec-in-struct.rs (renamed from src/test/debug-info/evec-in-struct.rs)28
-rw-r--r--src/test/debuginfo/function-arg-initialization.rs (renamed from src/test/debug-info/function-arg-initialization.rs)180
-rw-r--r--src/test/debuginfo/function-arguments.rs (renamed from src/test/debug-info/function-arguments.rs)32
-rw-r--r--src/test/debuginfo/function-prologue-stepping-no-split-stack.rs (renamed from src/test/debug-info/function-prologue-stepping-no-split-stack.rs)174
-rw-r--r--src/test/debuginfo/generic-function.rs (renamed from src/test/debug-info/generic-function.rs)58
-rw-r--r--src/test/debuginfo/generic-functions-nested.rs (renamed from src/test/debug-info/generic-functions-nested.rs)60
-rw-r--r--src/test/debuginfo/generic-method-on-generic-struct.rs (renamed from src/test/debug-info/generic-method-on-generic-struct.rs)84
-rw-r--r--src/test/debuginfo/generic-static-method-on-struct-and-enum.rs (renamed from src/test/debug-info/generic-static-method-on-struct-and-enum.rs)32
-rw-r--r--src/test/debuginfo/generic-struct-style-enum.rs (renamed from src/test/debug-info/generic-struct-style-enum.rs)24
-rw-r--r--src/test/debuginfo/generic-struct.rs (renamed from src/test/debug-info/generic-struct.rs)24
-rw-r--r--src/test/debuginfo/generic-trait-generic-static-default-method.rs (renamed from src/test/debug-info/generic-trait-generic-static-default-method.rs)32
-rw-r--r--src/test/debuginfo/generic-tuple-style-enum.rs (renamed from src/test/debug-info/generic-tuple-style-enum.rs)24
-rw-r--r--src/test/debuginfo/include_string.rs (renamed from src/test/debug-info/include_string.rs)20
-rw-r--r--src/test/debuginfo/issue11600.rs (renamed from src/test/debug-info/issue11600.rs)25
-rw-r--r--src/test/debuginfo/issue12886.rs (renamed from src/test/debug-info/issue12886.rs)10
-rw-r--r--src/test/debuginfo/issue13213.rs (renamed from src/test/debug-info/issue13213.rs)0
-rw-r--r--src/test/debuginfo/issue7712.rs (renamed from src/test/debug-info/issue7712.rs)0
-rw-r--r--src/test/debuginfo/lexical-scope-in-for-loop.rs (renamed from src/test/debug-info/lexical-scope-in-for-loop.rs)60
-rw-r--r--src/test/debuginfo/lexical-scope-in-if.rs (renamed from src/test/debug-info/lexical-scope-in-if.rs)100
-rw-r--r--src/test/debuginfo/lexical-scope-in-match.rs (renamed from src/test/debug-info/lexical-scope-in-match.rs)124
-rw-r--r--src/test/debuginfo/lexical-scope-in-parameterless-closure.rs (renamed from src/test/debug-info/lexical-scope-in-parameterless-closure.rs)2
-rw-r--r--src/test/debuginfo/lexical-scope-in-stack-closure.rs (renamed from src/test/debug-info/lexical-scope-in-stack-closure.rs)64
-rw-r--r--src/test/debuginfo/lexical-scope-in-unconditional-loop.rs127
-rw-r--r--src/test/debuginfo/lexical-scope-in-unique-closure.rs (renamed from src/test/debug-info/lexical-scope-in-unique-closure.rs)64
-rw-r--r--src/test/debuginfo/lexical-scope-in-while.rs123
-rw-r--r--src/test/debuginfo/lexical-scope-with-macro.rs (renamed from src/test/debug-info/lexical-scope-with-macro.rs)106
-rw-r--r--src/test/debuginfo/lexical-scopes-in-block-expression.rs377
-rw-r--r--src/test/debuginfo/limited-debuginfo.rs (renamed from src/test/debug-info/limited-debuginfo.rs)22
-rw-r--r--src/test/debuginfo/managed-enum.rs (renamed from src/test/debug-info/managed-enum.rs)18
-rw-r--r--src/test/debuginfo/managed-pointer-within-unique-vec.rs (renamed from src/test/debug-info/managed-pointer-within-unique-vec.rs)22
-rw-r--r--src/test/debuginfo/managed-pointer-within-unique.rs (renamed from src/test/debug-info/managed-pointer-within-unique.rs)20
-rw-r--r--src/test/debuginfo/method-on-enum.rs (renamed from src/test/debug-info/method-on-enum.rs)84
-rw-r--r--src/test/debuginfo/method-on-generic-struct.rs (renamed from src/test/debug-info/method-on-generic-struct.rs)84
-rw-r--r--src/test/debuginfo/method-on-struct.rs (renamed from src/test/debug-info/method-on-struct.rs)84
-rw-r--r--src/test/debuginfo/method-on-trait.rs (renamed from src/test/debug-info/method-on-trait.rs)84
-rw-r--r--src/test/debuginfo/method-on-tuple-struct.rs (renamed from src/test/debug-info/method-on-tuple-struct.rs)84
-rw-r--r--src/test/debuginfo/multiple-functions-equal-var-names.rs (renamed from src/test/debug-info/multiple-functions-equal-var-names.rs)32
-rw-r--r--src/test/debuginfo/multiple-functions.rs (renamed from src/test/debug-info/multiple-functions.rs)32
-rw-r--r--src/test/debuginfo/name-shadowing-and-scope-nesting.rs (renamed from src/test/debug-info/name-shadowing-and-scope-nesting.rs)88
-rw-r--r--src/test/debuginfo/nil-enum.rs (renamed from src/test/debug-info/nil-enum.rs)14
-rw-r--r--src/test/debuginfo/option-like-enum.rs (renamed from src/test/debug-info/option-like-enum.rs)32
-rw-r--r--src/test/debuginfo/packed-struct-with-destructor.rs (renamed from src/test/debug-info/packed-struct-with-destructor.rs)40
-rw-r--r--src/test/debuginfo/packed-struct.rs (renamed from src/test/debug-info/packed-struct.rs)32
-rw-r--r--src/test/debuginfo/recursive-enum.rs (renamed from src/test/debug-info/recursive-enum.rs)2
-rw-r--r--src/test/debuginfo/recursive-struct.rs (renamed from src/test/debug-info/recursive-struct.rs)168
-rw-r--r--src/test/debuginfo/self-in-default-method.rs (renamed from src/test/debug-info/self-in-default-method.rs)84
-rw-r--r--src/test/debuginfo/self-in-generic-default-method.rs (renamed from src/test/debug-info/self-in-generic-default-method.rs)84
-rw-r--r--src/test/debuginfo/shadowed-argument.rs (renamed from src/test/debug-info/shadowed-argument.rs)46
-rw-r--r--src/test/debuginfo/shadowed-variable.rs (renamed from src/test/debug-info/shadowed-variable.rs)46
-rw-r--r--src/test/debuginfo/simd.rs (renamed from src/test/debug-info/simd.rs)48
-rw-r--r--src/test/debuginfo/simple-lexical-scope.rs (renamed from src/test/debug-info/simple-lexical-scope.rs)74
-rw-r--r--src/test/debuginfo/simple-struct.rs (renamed from src/test/debug-info/simple-struct.rs)84
-rw-r--r--src/test/debuginfo/simple-tuple.rs113
-rw-r--r--src/test/debuginfo/static-method-on-struct-and-enum.rs (renamed from src/test/debug-info/static-method-on-struct-and-enum.rs)32
-rw-r--r--src/test/debuginfo/struct-in-enum.rs (renamed from src/test/debug-info/struct-in-enum.rs)20
-rw-r--r--src/test/debuginfo/struct-in-struct.rs (renamed from src/test/debug-info/struct-in-struct.rs)20
-rw-r--r--src/test/debuginfo/struct-style-enum.rs (renamed from src/test/debug-info/struct-style-enum.rs)24
-rw-r--r--src/test/debuginfo/struct-with-destructor.rs (renamed from src/test/debug-info/struct-with-destructor.rs)22
-rw-r--r--src/test/debuginfo/text-to-include-1.txt (renamed from src/test/debug-info/text-to-include-1.txt)0
-rw-r--r--src/test/debuginfo/text-to-include-2.txt (renamed from src/test/debug-info/text-to-include-2.txt)0
-rw-r--r--src/test/debuginfo/text-to-include-3.txt (renamed from src/test/debug-info/text-to-include-3.txt)0
-rw-r--r--src/test/debuginfo/trait-generic-static-default-method.rs (renamed from src/test/debug-info/trait-generic-static-default-method.rs)32
-rw-r--r--src/test/debuginfo/trait-pointers.rs (renamed from src/test/debug-info/trait-pointers.rs)2
-rw-r--r--src/test/debuginfo/tuple-in-struct.rs (renamed from src/test/debug-info/tuple-in-struct.rs)58
-rw-r--r--src/test/debuginfo/tuple-in-tuple.rs (renamed from src/test/debug-info/tuple-in-tuple.rs)42
-rw-r--r--src/test/debuginfo/tuple-struct.rs (renamed from src/test/debug-info/tuple-struct.rs)32
-rw-r--r--src/test/debuginfo/tuple-style-enum.rs (renamed from src/test/debug-info/tuple-style-enum.rs)24
-rw-r--r--src/test/debuginfo/unique-enum.rs (renamed from src/test/debug-info/unique-enum.rs)18
-rw-r--r--src/test/debuginfo/var-captured-in-nested-closure.rs (renamed from src/test/debug-info/var-captured-in-nested-closure.rs)68
-rw-r--r--src/test/debuginfo/var-captured-in-sendable-closure.rs (renamed from src/test/debug-info/var-captured-in-sendable-closure.rs)20
-rw-r--r--src/test/debuginfo/var-captured-in-stack-closure.rs (renamed from src/test/debug-info/var-captured-in-stack-closure.rs)32
-rw-r--r--src/test/debuginfo/vec-slices.rs87
-rw-r--r--src/test/debuginfo/vec.rs (renamed from src/test/debug-info/vec.rs)16
108 files changed, 3749 insertions, 3384 deletions
diff --git a/configure b/configure
index 0f3561dd7b5..d189c8cb6cd 100755
--- a/configure
+++ b/configure
@@ -466,6 +466,26 @@ probe CFG_PDFLATEX         pdflatex
 probe CFG_XELATEX          xelatex
 probe CFG_LUALATEX         lualatex
 probe CFG_GDB              gdb
+probe CFG_LLDB             lldb
+
+if [ ! -z "$CFG_LLDB" ]
+then
+    # If CFG_LLDB_PYTHON_DIR is not already set from the outside and valid, try to read it from
+    # LLDB via the -P commandline options.
+    if [ -z "$CFG_LLDB_PYTHON_DIR" ] || [ ! -d "$CFG_LLDB_PYTHON_DIR" ]
+    then
+        CFG_LLDB_PYTHON_DIR=$($CFG_LLDB -P)
+
+        # If CFG_LLDB_PYTHON_DIR is not a valid directory, set it to something more readable
+        if [ ! -d "$CFG_LLDB_PYTHON_DIR" ]
+        then
+            CFG_LLDB_PYTHON_DIR="LLDB_PYTHON_DIRECTORY_NOT_FOUND"
+        fi
+
+        putvar CFG_LLDB_PYTHON_DIR
+    fi
+fi
+
 if [ "$CFG_OSTYPE" = "unknown-linux-gnu" ]
 then
     probe CFG_PAXCTL           paxctl /sbin/paxctl
@@ -807,7 +827,8 @@ do
     make_dir $h/test/bench
     make_dir $h/test/perf
     make_dir $h/test/pretty
-    make_dir $h/test/debug-info
+    make_dir $h/test/debuginfo-gdb
+    make_dir $h/test/debuginfo-lldb
     make_dir $h/test/codegen
     make_dir $h/test/doc-tutorial
     make_dir $h/test/doc-guide-ffi
diff --git a/mk/tests.mk b/mk/tests.mk
index cb1bea39cee..012ec0e862d 100644
--- a/mk/tests.mk
+++ b/mk/tests.mk
@@ -293,7 +293,8 @@ check-stage$(1)-T-$(2)-H-$(3)-exec:     				\
         check-stage$(1)-T-$(2)-H-$(3)-crates-exec                       \
         check-stage$(1)-T-$(2)-H-$(3)-doc-crates-exec                   \
 	check-stage$(1)-T-$(2)-H-$(3)-bench-exec			\
-	check-stage$(1)-T-$(2)-H-$(3)-debuginfo-exec \
+	check-stage$(1)-T-$(2)-H-$(3)-debuginfo-gdb-exec \
+	check-stage$(1)-T-$(2)-H-$(3)-debuginfo-lldb-exec \
 	check-stage$(1)-T-$(2)-H-$(3)-codegen-exec \
 	check-stage$(1)-T-$(2)-H-$(3)-doc-exec \
 	check-stage$(1)-T-$(2)-H-$(3)-pretty-exec
@@ -460,7 +461,8 @@ CFAIL_RC := $(wildcard $(S)src/test/compile-fail/*.rc)
 CFAIL_RS := $(wildcard $(S)src/test/compile-fail/*.rs)
 BENCH_RS := $(wildcard $(S)src/test/bench/*.rs)
 PRETTY_RS := $(wildcard $(S)src/test/pretty/*.rs)
-DEBUGINFO_RS := $(wildcard $(S)src/test/debug-info/*.rs)
+DEBUGINFO_GDB_RS := $(wildcard $(S)src/test/debuginfo/*.rs)
+DEBUGINFO_LLDB_RS := $(wildcard $(S)src/test/debuginfo/*.rs)
 CODEGEN_RS := $(wildcard $(S)src/test/codegen/*.rs)
 CODEGEN_CC := $(wildcard $(S)src/test/codegen/*.cc)
 
@@ -476,7 +478,8 @@ CFAIL_TESTS := $(CFAIL_RC) $(CFAIL_RS)
 BENCH_TESTS := $(BENCH_RS)
 PERF_TESTS := $(PERF_RS)
 PRETTY_TESTS := $(PRETTY_RS)
-DEBUGINFO_TESTS := $(DEBUGINFO_RS)
+DEBUGINFO_GDB_TESTS := $(DEBUGINFO_GDB_RS)
+DEBUGINFO_LLDB_TESTS := $(DEBUGINFO_LLDB_RS)
 CODEGEN_TESTS := $(CODEGEN_RS) $(CODEGEN_CC)
 
 CTEST_SRC_BASE_rpass = run-pass
@@ -514,10 +517,15 @@ CTEST_BUILD_BASE_perf = perf
 CTEST_MODE_perf = run-pass
 CTEST_RUNTOOL_perf = $(CTEST_PERF_RUNTOOL)
 
-CTEST_SRC_BASE_debuginfo = debug-info
-CTEST_BUILD_BASE_debuginfo = debug-info
-CTEST_MODE_debuginfo = debug-info
-CTEST_RUNTOOL_debuginfo = $(CTEST_RUNTOOL)
+CTEST_SRC_BASE_debuginfo-gdb = debuginfo
+CTEST_BUILD_BASE_debuginfo-gdb = debuginfo-gdb
+CTEST_MODE_debuginfo-gdb = debuginfo-gdb
+CTEST_RUNTOOL_debuginfo-gdb = $(CTEST_RUNTOOL)
+
+CTEST_SRC_BASE_debuginfo-lldb = debuginfo
+CTEST_BUILD_BASE_debuginfo-lldb = debuginfo-lldb
+CTEST_MODE_debuginfo-lldb = debuginfo-lldb
+CTEST_RUNTOOL_debuginfo-lldb = $(CTEST_RUNTOOL)
 
 CTEST_SRC_BASE_codegen = codegen
 CTEST_BUILD_BASE_codegen = codegen
@@ -529,15 +537,22 @@ CTEST_RUNTOOL_codegen = $(CTEST_RUNTOOL)
 # during attempts to run those tests.
 
 ifeq ($(CFG_GDB),)
-CTEST_DISABLE_debuginfo = "no gdb found"
+CTEST_DISABLE_debuginfo-gdb = "no gdb found"
+endif
+
+ifeq ($(CFG_LLDB),)
+CTEST_DISABLE_debuginfo-lldb = "no lldb found"
 endif
 
+# Completely disable LLDB tests for now
+CTEST_DISABLE_debuginfo-lldb = "LLDB tests are not enabled yet"
+
 ifeq ($(CFG_CLANG),)
 CTEST_DISABLE_codegen = "no clang found"
 endif
 
 ifeq ($(CFG_OSTYPE),apple-darwin)
-CTEST_DISABLE_debuginfo = "gdb on darwing needs root"
+CTEST_DISABLE_debuginfo-gdb = "gdb on darwing needs root"
 endif
 
 # CTEST_DISABLE_NONSELFHOST_$(TEST_GROUP), if set, will cause that
@@ -587,6 +602,7 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) :=						\
         --adb-path=$(CFG_ADB)                          \
         --adb-test-dir=$(CFG_ADB_TEST_DIR)                  \
         --host-rustcflags "$(RUSTC_FLAGS_$(3)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(3))" \
+        --lldb-python-dir=$(CFG_LLDB_PYTHON_DIR) \
         --target-rustcflags "$(RUSTC_FLAGS_$(2)) $$(CTEST_RUSTC_FLAGS) -L $$(RT_OUTPUT_DIR_$(2))" \
         $$(CTEST_TESTARGS)
 
@@ -597,7 +613,8 @@ CTEST_DEPS_rfail_$(1)-T-$(2)-H-$(3) = $$(RFAIL_TESTS)
 CTEST_DEPS_cfail_$(1)-T-$(2)-H-$(3) = $$(CFAIL_TESTS)
 CTEST_DEPS_bench_$(1)-T-$(2)-H-$(3) = $$(BENCH_TESTS)
 CTEST_DEPS_perf_$(1)-T-$(2)-H-$(3) = $$(PERF_TESTS)
-CTEST_DEPS_debuginfo_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_TESTS)
+CTEST_DEPS_debuginfo-gdb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_GDB_TESTS)
+CTEST_DEPS_debuginfo-lldb_$(1)-T-$(2)-H-$(3) = $$(DEBUGINFO_LLDB_TESTS)
 CTEST_DEPS_codegen_$(1)-T-$(2)-H-$(3) = $$(CODEGEN_TESTS)
 
 endef
@@ -661,7 +678,7 @@ endif
 
 endef
 
-CTEST_NAMES = rpass rpass-full cfail-full rfail cfail bench perf debuginfo codegen
+CTEST_NAMES = rpass rpass-full cfail-full rfail cfail bench perf debuginfo-gdb debuginfo-lldb codegen
 
 $(foreach host,$(CFG_HOST), \
  $(eval $(foreach target,$(CFG_TARGET), \
@@ -810,7 +827,8 @@ TEST_GROUPS = \
 	bench \
 	perf \
 	rmake \
-	debuginfo \
+	debuginfo-gdb \
+	debuginfo-lldb \
 	codegen \
 	doc \
 	$(foreach docname,$(DOCS),doc-$(docname)) \
diff --git a/src/compiletest/common.rs b/src/compiletest/common.rs
index ea6e98fafa7..ef8b48a0535 100644
--- a/src/compiletest/common.rs
+++ b/src/compiletest/common.rs
@@ -14,7 +14,8 @@ pub enum mode {
     mode_run_fail,
     mode_run_pass,
     mode_pretty,
-    mode_debug_info,
+    mode_debug_info_gdb,
+    mode_debug_info_lldb,
     mode_codegen
 }
 
@@ -101,6 +102,9 @@ pub struct config {
     // status whether android device available or not
     pub adb_device_status: bool,
 
+    // the path containing LLDB's Python module
+    pub lldb_python_dir: Option<~str>,
+
     // Explain what's going on
     pub verbose: bool
 
diff --git a/src/compiletest/compiletest.rs b/src/compiletest/compiletest.rs
index 2e287135dc2..f484ea5a8f1 100644
--- a/src/compiletest/compiletest.rs
+++ b/src/compiletest/compiletest.rs
@@ -28,14 +28,8 @@ use std::os;
 use std::io;
 use std::io::fs;
 use getopts::{optopt, optflag, reqopt};
-use common::config;
-use common::mode_run_pass;
-use common::mode_run_fail;
-use common::mode_compile_fail;
-use common::mode_pretty;
-use common::mode_debug_info;
-use common::mode_codegen;
-use common::mode;
+use common::{config, mode_run_pass, mode_run_fail, mode_compile_fail, mode_pretty,
+             mode_debug_info_gdb, mode_debug_info_lldb, mode_codegen, mode};
 use util::logv;
 
 pub mod procsrv;
@@ -87,6 +81,7 @@ pub fn parse_config(args: Vec<~str> ) -> config {
           optopt("", "host", "the host to build for", "HOST"),
           optopt("", "adb-path", "path to the android debugger", "PATH"),
           optopt("", "adb-test-dir", "path to tests for the android debugger", "PATH"),
+          optopt("", "lldb-python-dir", "directory containing LLDB's python module", "PATH"),
           optopt("", "test-shard", "run shard A, of B shards, worth of the testsuite", "A.B"),
           optflag("h", "help", "show this message"));
 
@@ -154,6 +149,7 @@ pub fn parse_config(args: Vec<~str> ) -> config {
             "arm-linux-androideabi" == opt_str2(matches.opt_str("target")) &&
             "(none)" != opt_str2(matches.opt_str("adb-test-dir")) &&
             !opt_str2(matches.opt_str("adb-test-dir")).is_empty(),
+        lldb_python_dir: matches.opt_str("lldb-python-dir"),
         test_shard: test::opt_shard(matches.opt_str("test-shard")),
         verbose: matches.opt_present("verbose")
     }
@@ -204,13 +200,14 @@ pub fn opt_str2(maybestr: Option<~str>) -> ~str {
 
 pub fn str_mode(s: ~str) -> mode {
     match s.as_slice() {
-      "compile-fail" => mode_compile_fail,
-      "run-fail" => mode_run_fail,
-      "run-pass" => mode_run_pass,
-      "pretty" => mode_pretty,
-      "debug-info" => mode_debug_info,
-      "codegen" => mode_codegen,
-      _ => fail!("invalid mode")
+        "compile-fail" => mode_compile_fail,
+        "run-fail" => mode_run_fail,
+        "run-pass" => mode_run_pass,
+        "pretty" => mode_pretty,
+        "debuginfo-gdb" => mode_debug_info_gdb,
+        "debuginfo-lldb" => mode_debug_info_lldb,
+        "codegen" => mode_codegen,
+        s => fail!("invalid mode: " + s)
     }
 }
 
@@ -220,7 +217,8 @@ pub fn mode_str(mode: mode) -> ~str {
       mode_run_fail => "run-fail".to_owned(),
       mode_run_pass => "run-pass".to_owned(),
       mode_pretty => "pretty".to_owned(),
-      mode_debug_info => "debug-info".to_owned(),
+      mode_debug_info_gdb => "debuginfo-gdb".to_owned(),
+      mode_debug_info_lldb => "debuginfo-lldb".to_owned(),
       mode_codegen => "codegen".to_owned(),
     }
 }
@@ -228,7 +226,7 @@ pub fn mode_str(mode: mode) -> ~str {
 pub fn run_tests(config: &config) {
     if config.target == "arm-linux-androideabi".to_owned() {
         match config.mode{
-            mode_debug_info => {
+            mode_debug_info_gdb => {
                 println!("arm-linux-androideabi debug-info \
                          test uses tcp 5039 port. please reserve it");
             }
diff --git a/src/compiletest/header.rs b/src/compiletest/header.rs
index 28c7cfb88c9..3d954a33a00 100644
--- a/src/compiletest/header.rs
+++ b/src/compiletest/header.rs
@@ -26,8 +26,6 @@ pub struct TestProps {
     pub aux_builds: Vec<~str> ,
     // Environment settings to use during execution
     pub exec_env: Vec<(~str,~str)> ,
-    // Commands to be given to the debugger, when testing debug info
-    pub debugger_cmds: Vec<~str> ,
     // Lines to check if they appear in the expected debugger output
     pub check_lines: Vec<~str> ,
     // Flag to force a crate to be built with the host architecture
@@ -46,7 +44,6 @@ pub fn load_props(testfile: &Path) -> TestProps {
     let mut compile_flags = None;
     let mut run_flags = None;
     let mut pp_exact = None;
-    let mut debugger_cmds = Vec::new();
     let mut check_lines = Vec::new();
     let mut force_host = false;
     let mut check_stdout = false;
@@ -91,11 +88,6 @@ pub fn load_props(testfile: &Path) -> TestProps {
             None => {}
         }
 
-        match parse_debugger_cmd(ln) {
-            Some(dc) => debugger_cmds.push(dc),
-            None => ()
-        };
-
         match parse_check_line(ln) {
             Some(cl) => check_lines.push(cl),
             None => ()
@@ -111,7 +103,6 @@ pub fn load_props(testfile: &Path) -> TestProps {
         pp_exact: pp_exact,
         aux_builds: aux_builds,
         exec_env: exec_env,
-        debugger_cmds: debugger_cmds,
         check_lines: check_lines,
         force_host: force_host,
         check_stdout: check_stdout,
@@ -173,10 +164,6 @@ fn parse_run_flags(line: &str) -> Option<~str> {
     parse_name_value_directive(line, "run-flags".to_owned())
 }
 
-fn parse_debugger_cmd(line: &str) -> Option<~str> {
-    parse_name_value_directive(line, "debugger".to_owned())
-}
-
 fn parse_check_line(line: &str) -> Option<~str> {
     parse_name_value_directive(line, "check".to_owned())
 }
@@ -226,7 +213,7 @@ fn parse_name_directive(line: &str, directive: &str) -> bool {
     line.contains(directive)
 }
 
-fn parse_name_value_directive(line: &str,
+pub fn parse_name_value_directive(line: &str,
                               directive: ~str) -> Option<~str> {
     let keycolon = directive + ":";
     match line.find_str(keycolon) {
diff --git a/src/compiletest/runtest.rs b/src/compiletest/runtest.rs
index c1ca27c805c..858e7334cff 100644
--- a/src/compiletest/runtest.rs
+++ b/src/compiletest/runtest.rs
@@ -8,14 +8,10 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
-use common::config;
-use common::mode_compile_fail;
-use common::mode_pretty;
-use common::mode_run_fail;
-use common::mode_run_pass;
+use common::{config, mode_compile_fail, mode_pretty, mode_run_fail, mode_run_pass};
 use errors;
 use header::TestProps;
-use header::load_props;
+use header;
 use procsrv;
 use util::logv;
 #[cfg(target_os = "win32")]
@@ -59,14 +55,15 @@ pub fn run_metrics(config: config, testfile: ~str, mm: &mut MetricMap) {
     }
     let testfile = Path::new(testfile);
     debug!("running {}", testfile.display());
-    let props = load_props(&testfile);
+    let props = header::load_props(&testfile);
     debug!("loaded props");
     match config.mode {
       mode_compile_fail => run_cfail_test(&config, &props, &testfile),
       mode_run_fail => run_rfail_test(&config, &props, &testfile),
       mode_run_pass => run_rpass_test(&config, &props, &testfile),
       mode_pretty => run_pretty_test(&config, &props, &testfile),
-      mode_debug_info => run_debuginfo_test(&config, &props, &testfile),
+      mode_debug_info_gdb => run_debuginfo_gdb_test(&config, &props, &testfile),
+      mode_debug_info_lldb => run_debuginfo_lldb_test(&config, &props, &testfile),
       mode_codegen => run_codegen_test(&config, &props, &testfile, mm)
     }
 }
@@ -259,7 +256,7 @@ actual:\n\
     }
 }
 
-fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
+fn run_debuginfo_gdb_test(config: &config, props: &TestProps, testfile: &Path) {
     let mut config = config {
         target_rustcflags: cleanup_debug_info_options(&config.target_rustcflags),
         host_rustcflags: cleanup_debug_info_options(&config.host_rustcflags),
@@ -267,18 +264,19 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
     };
 
     let config = &mut config;
-    let check_lines = &props.check_lines;
-    let mut cmds = props.debugger_cmds.connect("\n");
+    let DebuggerCommands { commands, check_lines, .. } = parse_debugger_commands(testfile, "gdb");
+    let mut cmds = commands.connect("\n");
 
     // compile test file (it shoud have 'compile-flags:-g' in the header)
-    let mut proc_res = compile_test(config, props, testfile);
-    if !proc_res.status.success() {
-        fatal_ProcRes("compilation failed!".to_owned(), &proc_res);
+    let compiler_run_result = compile_test(config, props, testfile);
+    if !compiler_run_result.status.success() {
+        fatal_ProcRes("compilation failed!".to_owned(), &compiler_run_result);
     }
 
     let exe_file = make_exe_name(config, testfile);
 
     let mut proc_args;
+    let debugger_run_result;
     match config.target.as_slice() {
         "arm-linux-androideabi" => {
 
@@ -363,10 +361,12 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
                 cmdline
             };
 
-            proc_res = ProcRes {status: status,
-                               stdout: out,
-                               stderr: err,
-                               cmdline: cmdline};
+            debugger_run_result = ProcRes {
+                status: status,
+                stdout: out,
+                stderr: err,
+                cmdline: cmdline
+            };
             process.signal_kill().unwrap();
         }
 
@@ -391,25 +391,199 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
                 "-command=" + debugger_script.as_str().unwrap().to_owned(),
                 exe_file.as_str().unwrap().to_owned());
             proc_args = ProcArgs {prog: debugger(), args: debugger_opts};
-            proc_res = compose_and_run(config, testfile, proc_args, Vec::new(), "", None);
+            debugger_run_result = compose_and_run(config,
+                                                  testfile,
+                                                  proc_args,
+                                                  Vec::new(),
+                                                  "",
+                                                  None);
         }
     }
 
-    if !proc_res.status.success() {
+    if !debugger_run_result.status.success() {
         fatal("gdb failed to execute".to_owned());
     }
+
+    check_debugger_output(&debugger_run_result, check_lines.as_slice());
+}
+
+fn run_debuginfo_lldb_test(config: &config, props: &TestProps, testfile: &Path) {
+    use std::io::process::{Process, ProcessConfig, ProcessOutput};
+
+    if config.lldb_python_dir.is_none() {
+        fatal("Can't run LLDB test because LLDB's python path is not set.".to_owned());
+    }
+
+    let mut config = config {
+        target_rustcflags: cleanup_debug_info_options(&config.target_rustcflags),
+        host_rustcflags: cleanup_debug_info_options(&config.host_rustcflags),
+        .. config.clone()
+    };
+
+    let config = &mut config;
+
+    // compile test file (it shoud have 'compile-flags:-g' in the header)
+    let compile_result = compile_test(config, props, testfile);
+    if !compile_result.status.success() {
+        fatal_ProcRes("compilation failed!".to_owned(), &compile_result);
+    }
+
+    let exe_file = make_exe_name(config, testfile);
+
+    // Parse debugger commands etc from test files
+    let DebuggerCommands {
+        commands,
+        check_lines,
+        breakpoint_lines
+    } = parse_debugger_commands(testfile, "lldb");
+
+    // Write debugger script:
+    // We don't want to hang when calling `quit` while the process is still running
+    let mut script_str = StrBuf::from_str("settings set auto-confirm true\n");
+
+    // Set breakpoints on every line that contains the string "#break"
+    for line in breakpoint_lines.iter() {
+        script_str.push_str(format!("breakpoint set --line {}\n", line));
+    }
+
+    // Append the other commands
+    for line in commands.iter() {
+        script_str.push_str(line.as_slice());
+        script_str.push_str("\n");
+    }
+
+    // Finally, quit the debugger
+    script_str.push_str("quit\n");
+
+    // Write the script into a file
+    debug!("script_str = {}", script_str);
+    dump_output_file(config, testfile, script_str.into_owned(), "debugger.script");
+    let debugger_script = make_out_name(config, testfile, "debugger.script");
+
+    // Let LLDB execute the script via lldb_batchmode.py
+    let debugger_run_result = run_lldb(config, &exe_file, &debugger_script);
+
+    if !debugger_run_result.status.success() {
+        fatal_ProcRes("Error while running LLDB".to_owned(), &debugger_run_result);
+    }
+
+    check_debugger_output(&debugger_run_result, check_lines.as_slice());
+
+    fn run_lldb(config: &config, test_executable: &Path, debugger_script: &Path) -> ProcRes {
+        // Prepare the lldb_batchmode which executes the debugger script
+        let lldb_batchmode_script = "./src/etc/lldb_batchmode.py".to_owned();
+        let test_executable_str = test_executable.as_str().unwrap().to_owned();
+        let debugger_script_str = debugger_script.as_str().unwrap().to_owned();
+        let commandline = format!("python {} {} {}",
+                                  lldb_batchmode_script.as_slice(),
+                                  test_executable_str.as_slice(),
+                                  debugger_script_str.as_slice());
+
+        let args = &[lldb_batchmode_script, test_executable_str, debugger_script_str];
+        let env = &[("PYTHONPATH".to_owned(), config.lldb_python_dir.clone().unwrap())];
+
+        let mut opt_process = Process::configure(ProcessConfig {
+            program: "python",
+            args: args,
+            env: Some(env),
+            .. ProcessConfig::new()
+        });
+
+        let (status, out, err) = match opt_process {
+            Ok(ref mut process) => {
+                let ProcessOutput { status, output, error } = process.wait_with_output();
+
+                (status,
+                 str::from_utf8(output.as_slice()).unwrap().to_owned(),
+                 str::from_utf8(error.as_slice()).unwrap().to_owned())
+            },
+            Err(e) => {
+                fatal(format!("Failed to setup Python process for LLDB script: {}", e))
+            }
+        };
+
+        dump_output(config, test_executable, out, err);
+        return ProcRes {
+            status: status,
+            stdout: out,
+            stderr: err,
+            cmdline: commandline
+        };
+    }
+}
+
+struct DebuggerCommands
+{
+    commands: Vec<~str>,
+    check_lines: Vec<~str>,
+    breakpoint_lines: Vec<uint>
+}
+
+fn parse_debugger_commands(file_path: &Path, debugger_prefix: &str) -> DebuggerCommands {
+    use std::io::{BufferedReader, File};
+
+    let command_directive = debugger_prefix + "-command";
+    let check_directive = debugger_prefix + "-check";
+
+    let mut breakpoint_lines = vec!();
+    let mut commands = vec!();
+    let mut check_lines = vec!();
+    let mut counter = 1;
+    let mut reader = BufferedReader::new(File::open(file_path).unwrap());
+    for line in reader.lines() {
+        match line {
+            Ok(line) => {
+                if line.contains("#break") {
+                    breakpoint_lines.push(counter);
+                }
+
+                header::parse_name_value_directive(line, command_directive.clone())
+                    .map(|cmd| commands.push(cmd));
+
+                header::parse_name_value_directive(line, check_directive.clone())
+                    .map(|cmd| check_lines.push(cmd));
+            }
+            Err(e) => {
+                fatal(format!("Error while parsing debugger commands: {}", e))
+            }
+        }
+        counter += 1;
+    }
+
+    DebuggerCommands {
+        commands: commands,
+        check_lines: check_lines,
+        breakpoint_lines: breakpoint_lines
+    }
+}
+
+fn cleanup_debug_info_options(options: &Option<~str>) -> Option<~str> {
+    if options.is_none() {
+        return None;
+    }
+
+    // Remove options that are either unwanted (-O) or may lead to duplicates due to RUSTFLAGS.
+    let options_to_remove = ["-O".to_owned(), "-g".to_owned(), "--debuginfo".to_owned()];
+    let new_options = split_maybe_args(options).move_iter()
+                                               .filter(|x| !options_to_remove.contains(x))
+                                               .collect::<Vec<~str>>()
+                                               .connect(" ");
+    Some(new_options)
+}
+
+fn check_debugger_output(debugger_run_result: &ProcRes, check_lines: &[~str]) {
     let num_check_lines = check_lines.len();
     if num_check_lines > 0 {
         // Allow check lines to leave parts unspecified (e.g., uninitialized
         // bits in the wrong case of an enum) with the notation "[...]".
         let check_fragments: Vec<Vec<~str>> =
             check_lines.iter().map(|s| {
-                s.split_str("[...]").map(|x| x.to_str()).collect()
+                s.trim().split_str("[...]").map(|x| x.to_str()).collect()
             }).collect();
         // check if each line in props.check_lines appears in the
         // output (in order)
         let mut i = 0u;
-        for line in proc_res.stdout.lines() {
+        for line in debugger_run_result.stdout.lines() {
             let mut rest = line.trim();
             let mut first = true;
             let mut failed = false;
@@ -440,23 +614,9 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
         }
         if i != num_check_lines {
             fatal_ProcRes(format!("line not found in debugger output: {}",
-                                  *check_lines.get(i)), &proc_res);
+                                  check_lines.get(i).unwrap()), debugger_run_result);
         }
     }
-
-    fn cleanup_debug_info_options(options: &Option<~str>) -> Option<~str> {
-        if options.is_none() {
-            return None;
-        }
-
-        // Remove options that are either unwanted (-O) or may lead to duplicates due to RUSTFLAGS.
-        let options_to_remove = ["-O".to_owned(), "-g".to_owned(), "--debuginfo".to_owned()];
-        let new_options = split_maybe_args(options).move_iter()
-                                                   .filter(|x| !options_to_remove.contains(x))
-                                                   .collect::<Vec<~str>>()
-                                                   .connect(" ");
-        Some(new_options)
-    }
 }
 
 fn check_error_patterns(props: &TestProps,
@@ -736,7 +896,7 @@ fn compose_and_run_compiler(
 
     for rel_ab in props.aux_builds.iter() {
         let abs_ab = config.aux_base.join(rel_ab.as_slice());
-        let aux_props = load_props(&abs_ab);
+        let aux_props = header::load_props(&abs_ab);
         let crate_type = if aux_props.no_prefer_dynamic {
             Vec::new()
         } else {
diff --git a/src/etc/lldb_batchmode.py b/src/etc/lldb_batchmode.py
new file mode 100644
index 00000000000..85bfc425b58
--- /dev/null
+++ b/src/etc/lldb_batchmode.py
@@ -0,0 +1,184 @@
+# Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+# file at the top-level directory of this distribution and at
+# http://rust-lang.org/COPYRIGHT.
+#
+# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+# option. This file may not be copied, modified, or distributed
+# except according to those terms.
+
+# This script allows to use LLDB in a way similar to GDB's batch mode. That is, given a text file
+# containing LLDB commands (one command per line), this script will execute the commands one after
+# the other.
+# LLDB also has the -s and -S commandline options which also execute a list of commands from a text
+# file. However, this command are execute `immediately`: a the command of a `run` or `continue`
+# command will be executed immediately after the `run` or `continue`, without waiting for the next
+# breakpoint to be hit. This a command sequence like the following will not yield reliable results:
+#
+#   break 11
+#   run
+#   print x
+#
+# Most of the time the `print` command will be executed while the program is still running will thus
+# fail. Using this Python script, the above will work as expected.
+
+from __future__ import print_function
+import lldb
+import os
+import sys
+import threading
+import re
+import atexit
+
+# Terminate the debugger
+atexit.register(lambda: lldb.SBDebugger.Terminate())
+
+# Set this to True for additional output
+DEBUG_OUTPUT = False
+
+def print_debug(s):
+  "Print something if DEBUG_OUTPUT is True"
+  global DEBUG_OUTPUT
+  if DEBUG_OUTPUT:
+    print("DEBUG: " + str(s))
+
+
+def normalize_whitespace(s):
+  "Replace newlines, tabs, multiple spaces, etc with exactly one space"
+  return re.sub("\s+", " ", s)
+
+
+# This callback is registered with every breakpoint and makes sure that the frame containing the
+# breakpoint location is selected
+def breakpoint_callback(frame, bp_loc, dict):
+  "Called whenever a breakpoint is hit"
+  print("Hit breakpoint " + str(bp_loc))
+
+  # Select the frame and the thread containing it
+  frame.thread.process.SetSelectedThread(frame.thread)
+  frame.thread.SetSelectedFrame(frame.idx)
+
+  # Returning True means that we actually want to stop at this breakpoint
+  return True
+
+
+# This is a list of breakpoints that are not registered with the breakpoint callback. The list is
+# populated by the breakpoint listener and checked/emptied whenever a command has been executed
+new_breakpoints = []
+
+# This set contains all breakpoint ids that have already been registered with a callback, and is
+# used to avoid hooking callbacks into breakpoints more than once
+registered_breakpoints = set()
+
+def execute_command(command_interpreter, command):
+  "Executes a single CLI command"
+  global new_breakpoints
+  global registered_breakpoints
+
+  res = lldb.SBCommandReturnObject()
+  print(command)
+  command_interpreter.HandleCommand(command, res)
+
+  if res.Succeeded():
+      if res.HasResult():
+          print(normalize_whitespace(res.GetOutput()), end = '\n')
+
+      # If the command introduced any breakpoints, make sure to register them with the breakpoint
+      # callback
+      while len(new_breakpoints) > 0:
+        res.Clear()
+        breakpoint_id = new_breakpoints.pop()
+
+        if breakpoint_id in registered_breakpoints:
+          print_debug("breakpoint with id %s is already registered. Ignoring." % str(breakpoint_id))
+        else:
+          print_debug("registering breakpoint callback, id = " + str(breakpoint_id))
+          callback_command = "breakpoint command add -F breakpoint_callback " + str(breakpoint_id)
+          command_interpreter.HandleCommand(callback_command, res)
+          if res.Succeeded():
+            print_debug("successfully registered breakpoint callback, id = " + str(breakpoint_id))
+            registered_breakpoints.add(breakpoint_id)
+          else:
+            print("Error while trying to register breakpoint callback, id = " + str(breakpoint_id))
+  else:
+      print(res.GetError())
+
+
+def start_breakpoint_listener(target):
+  "Listens for breakpoints being added and adds new ones to the callback registration list"
+  listener = lldb.SBListener("breakpoint listener")
+
+  def listen():
+    event = lldb.SBEvent()
+    try:
+      while True:
+        if listener.WaitForEvent(120, event):
+          if lldb.SBBreakpoint.EventIsBreakpointEvent(event) and \
+             lldb.SBBreakpoint.GetBreakpointEventTypeFromEvent(event) == \
+             lldb.eBreakpointEventTypeAdded:
+            global new_breakpoints
+            breakpoint = lldb.SBBreakpoint.GetBreakpointFromEvent(event)
+            print_debug("breakpoint added, id = " + str(breakpoint.id))
+            new_breakpoints.append(breakpoint.id)
+    except:
+      print_debug("breakpoint listener shutting down")
+
+  # Start the listener and let it run as a daemon
+  listener_thread = threading.Thread(target = listen)
+  listener_thread.daemon = True
+  listener_thread.start()
+
+  # Register the listener with the target
+  target.GetBroadcaster().AddListener(listener, lldb.SBTarget.eBroadcastBitBreakpointChanged)
+
+
+####################################################################################################
+# ~main
+####################################################################################################
+
+if len(sys.argv) != 3:
+  print("usage: python lldb_batchmode.py target-path script-path")
+  sys.exit(1)
+
+target_path = sys.argv[1]
+script_path = sys.argv[2]
+
+
+# Create a new debugger instance
+debugger = lldb.SBDebugger.Create()
+
+# When we step or continue, don't return from the function until the process
+# stops. We do this by setting the async mode to false.
+debugger.SetAsync(False)
+
+# Create a target from a file and arch
+print("Creating a target for '%s'" % target_path)
+target = debugger.CreateTargetWithFileAndArch(target_path, lldb.LLDB_ARCH_DEFAULT)
+
+if not target:
+  print("Could not create debugging target '" + target_path + "'. Aborting.", file=sys.stderr)
+  sys.exit(1)
+
+
+# Register the breakpoint callback for every breakpoint
+start_breakpoint_listener(target)
+
+command_interpreter = debugger.GetCommandInterpreter()
+
+try:
+  script_file = open(script_path, 'r')
+
+  for line in script_file:
+    command = line.strip()
+    if command != '':
+      execute_command(command_interpreter, command)
+
+except IOError as e:
+  print("Could not read debugging script '%s'." % script_path, file = sys.stderr)
+  print(e, file = sys.stderr)
+  print("Aborting.", file = sys.stderr)
+  sys.exit(1)
+finally:
+  script_file.close()
+
diff --git a/src/test/debug-info/basic-types-globals-metadata.rs b/src/test/debug-info/basic-types-globals-metadata.rs
deleted file mode 100644
index bf6d63f2ca9..00000000000
--- a/src/test/debug-info/basic-types-globals-metadata.rs
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// ignore-win32: FIXME #13256
-// ignore-android: FIXME(#10381)
-
-// compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:whatis 'basic-types-globals-metadata::B'
-// check:type = bool
-// debugger:whatis 'basic-types-globals-metadata::I'
-// check:type = int
-// debugger:whatis 'basic-types-globals-metadata::C'
-// check:type = char
-// debugger:whatis 'basic-types-globals-metadata::I8'
-// check:type = i8
-// debugger:whatis 'basic-types-globals-metadata::I16'
-// check:type = i16
-// debugger:whatis 'basic-types-globals-metadata::I32'
-// check:type = i32
-// debugger:whatis 'basic-types-globals-metadata::I64'
-// check:type = i64
-// debugger:whatis 'basic-types-globals-metadata::U'
-// check:type = uint
-// debugger:whatis 'basic-types-globals-metadata::U8'
-// check:type = u8
-// debugger:whatis 'basic-types-globals-metadata::U16'
-// check:type = u16
-// debugger:whatis 'basic-types-globals-metadata::U32'
-// check:type = u32
-// debugger:whatis 'basic-types-globals-metadata::U64'
-// check:type = u64
-// debugger:whatis 'basic-types-globals-metadata::F32'
-// check:type = f32
-// debugger:whatis 'basic-types-globals-metadata::F64'
-// check:type = f64
-// debugger:continue
-
-#![allow(unused_variable)]
-#![allow(dead_code)]
-
-
-static B: bool = false;
-static I: int = -1;
-static C: char = 'a';
-static I8: i8 = 68;
-static I16: i16 = -16;
-static I32: i32 = -32;
-static I64: i64 = -64;
-static U: uint = 1;
-static U8: u8 = 100;
-static U16: u16 = 16;
-static U32: u32 = 32;
-static U64: u64 = 64;
-static F32: f32 = 2.5;
-static F64: f64 = 3.5;
-
-fn main() {
-    _zzz();
-
-    let a = (B, I, C, I8, I16, I32, I64, U, U8, U16, U32, U64, F32, F64);
-}
-
-fn _zzz() {()}
diff --git a/src/test/debug-info/basic-types-mut-globals.rs b/src/test/debug-info/basic-types-mut-globals.rs
deleted file mode 100644
index 1580f734617..00000000000
--- a/src/test/debug-info/basic-types-mut-globals.rs
+++ /dev/null
@@ -1,129 +0,0 @@
-// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// Caveats - gdb prints any 8-bit value (meaning rust I8 and u8 values)
-// as its numerical value along with its associated ASCII char, there
-// doesn't seem to be any way around this. Also, gdb doesn't know
-// about UTF-32 character encoding and will print a rust char as only
-// its numerical value.
-
-// ignore-win32: FIXME #13256
-// ignore-android: FIXME(#10381)
-
-// compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// Check initializers
-// debugger:print 'basic-types-mut-globals::B'
-// check:$1 = false
-// debugger:print 'basic-types-mut-globals::I'
-// check:$2 = -1
-// debugger:print 'basic-types-mut-globals::C'
-// check:$3 = 97
-// debugger:print/d 'basic-types-mut-globals::I8'
-// check:$4 = 68
-// debugger:print 'basic-types-mut-globals::I16'
-// check:$5 = -16
-// debugger:print 'basic-types-mut-globals::I32'
-// check:$6 = -32
-// debugger:print 'basic-types-mut-globals::I64'
-// check:$7 = -64
-// debugger:print 'basic-types-mut-globals::U'
-// check:$8 = 1
-// debugger:print/d 'basic-types-mut-globals::U8'
-// check:$9 = 100
-// debugger:print 'basic-types-mut-globals::U16'
-// check:$10 = 16
-// debugger:print 'basic-types-mut-globals::U32'
-// check:$11 = 32
-// debugger:print 'basic-types-mut-globals::U64'
-// check:$12 = 64
-// debugger:print 'basic-types-mut-globals::F32'
-// check:$13 = 2.5
-// debugger:print 'basic-types-mut-globals::F64'
-// check:$14 = 3.5
-// debugger:continue
-
-// Check new values
-// debugger:print 'basic-types-mut-globals'::B
-// check:$15 = true
-// debugger:print 'basic-types-mut-globals'::I
-// check:$16 = 2
-// debugger:print 'basic-types-mut-globals'::C
-// check:$17 = 102
-// debugger:print/d 'basic-types-mut-globals'::I8
-// check:$18 = 78
-// debugger:print 'basic-types-mut-globals'::I16
-// check:$19 = -26
-// debugger:print 'basic-types-mut-globals'::I32
-// check:$20 = -12
-// debugger:print 'basic-types-mut-globals'::I64
-// check:$21 = -54
-// debugger:print 'basic-types-mut-globals'::U
-// check:$22 = 5
-// debugger:print/d 'basic-types-mut-globals'::U8
-// check:$23 = 20
-// debugger:print 'basic-types-mut-globals'::U16
-// check:$24 = 32
-// debugger:print 'basic-types-mut-globals'::U32
-// check:$25 = 16
-// debugger:print 'basic-types-mut-globals'::U64
-// check:$26 = 128
-// debugger:print 'basic-types-mut-globals'::F32
-// check:$27 = 5.75
-// debugger:print 'basic-types-mut-globals'::F64
-// check:$28 = 9.25
-
-// debugger:detach
-// debugger:quit
-
-#![allow(unused_variable)]
-
-static mut B: bool = false;
-static mut I: int = -1;
-static mut C: char = 'a';
-static mut I8: i8 = 68;
-static mut I16: i16 = -16;
-static mut I32: i32 = -32;
-static mut I64: i64 = -64;
-static mut U: uint = 1;
-static mut U8: u8 = 100;
-static mut U16: u16 = 16;
-static mut U32: u32 = 32;
-static mut U64: u64 = 64;
-static mut F32: f32 = 2.5;
-static mut F64: f64 = 3.5;
-
-fn main() {
-    _zzz();
-
-    unsafe {
-        B = true;
-        I = 2;
-        C = 'f';
-        I8 = 78;
-        I16 = -26;
-        I32 = -12;
-        I64 = -54;
-        U = 5;
-        U8 = 20;
-        U16 = 32;
-        U32 = 16;
-        U64 = 128;
-        F32 = 5.75;
-        F64 = 9.25;
-    }
-
-    _zzz();
-}
-
-fn _zzz() {()}
diff --git a/src/test/debug-info/lexical-scope-in-unconditional-loop.rs b/src/test/debug-info/lexical-scope-in-unconditional-loop.rs
deleted file mode 100644
index fd217912b0a..00000000000
--- a/src/test/debug-info/lexical-scope-in-unconditional-loop.rs
+++ /dev/null
@@ -1,127 +0,0 @@
-// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// ignore-android: FIXME(#10381)
-
-// compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// FIRST ITERATION
-// debugger:finish
-// debugger:print x
-// check:$1 = 0
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$2 = 1
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$3 = 101
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$4 = 101
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$5 = -987
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$6 = 101
-// debugger:continue
-
-
-// SECOND ITERATION
-// debugger:finish
-// debugger:print x
-// check:$7 = 1
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$8 = 2
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$9 = 102
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$10 = 102
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$11 = -987
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$12 = 102
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$13 = 2
-// debugger:continue
-
-fn main() {
-
-    let mut x = 0;
-
-    loop {
-        if x >= 2 {
-            break;
-        }
-
-        zzz();
-        sentinel();
-
-        x += 1;
-        zzz();
-        sentinel();
-
-        // Shadow x
-        let x = x + 100;
-        zzz();
-        sentinel();
-
-        // open scope within loop's top level scope
-        {
-            zzz();
-            sentinel();
-
-            let x = -987;
-
-            zzz();
-            sentinel();
-        }
-
-        // Check that we get the x before the inner scope again
-        zzz();
-        sentinel();
-    }
-
-    zzz();
-    sentinel();
-}
-
-fn zzz() {()}
-fn sentinel() {()}
diff --git a/src/test/debug-info/lexical-scope-in-while.rs b/src/test/debug-info/lexical-scope-in-while.rs
deleted file mode 100644
index a47343467a9..00000000000
--- a/src/test/debug-info/lexical-scope-in-while.rs
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// ignore-android: FIXME(#10381)
-
-// compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// FIRST ITERATION
-// debugger:finish
-// debugger:print x
-// check:$1 = 0
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$2 = 1
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$3 = 101
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$4 = 101
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$5 = -987
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$6 = 101
-// debugger:continue
-
-
-// SECOND ITERATION
-// debugger:finish
-// debugger:print x
-// check:$7 = 1
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$8 = 2
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$9 = 102
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$10 = 102
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$11 = -987
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$12 = 102
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$13 = 2
-// debugger:continue
-
-fn main() {
-
-    let mut x = 0;
-
-    while x < 2 {
-        zzz();
-        sentinel();
-
-        x += 1;
-        zzz();
-        sentinel();
-
-        // Shadow x
-        let x = x + 100;
-        zzz();
-        sentinel();
-
-        // open scope within loop's top level scope
-        {
-            zzz();
-            sentinel();
-
-            let x = -987;
-
-            zzz();
-            sentinel();
-        }
-
-        // Check that we get the x before the inner scope again
-        zzz();
-        sentinel();
-    }
-
-    zzz();
-    sentinel();
-}
-
-fn zzz() {()}
-fn sentinel() {()}
diff --git a/src/test/debug-info/lexical-scopes-in-block-expression.rs b/src/test/debug-info/lexical-scopes-in-block-expression.rs
deleted file mode 100644
index 6626d75dc0c..00000000000
--- a/src/test/debug-info/lexical-scopes-in-block-expression.rs
+++ /dev/null
@@ -1,377 +0,0 @@
-// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// ignore-win32: FIXME #13256
-// ignore-android: FIXME(#10381)
-
-// compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:print 'lexical-scopes-in-block-expression::MUT_INT'
-// check:$1 = 0
-
-// STRUCT EXPRESSION
-// debugger:finish
-// debugger:print val
-// check:$2 = -1
-// debugger:print ten
-// check:$3 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$4 = 11
-// debugger:print 'lexical-scopes-in-block-expression::MUT_INT'
-// check:$5 = 1
-// debugger:print ten
-// check:$6 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$7 = -1
-// debugger:print ten
-// check:$8 = 10
-// debugger:continue
-
-// FUNCTION CALL
-// debugger:finish
-// debugger:print val
-// check:$9 = -1
-// debugger:print ten
-// check:$10 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$11 = 12
-// debugger:print 'lexical-scopes-in-block-expression::MUT_INT'
-// check:$12 = 2
-// debugger:print ten
-// check:$13 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$14 = -1
-// debugger:print ten
-// check:$15 = 10
-// debugger:continue
-
-// TUPLE EXPRESSION
-// debugger:finish
-// debugger:print val
-// check:$16 = -1
-// debugger:print ten
-// check:$17 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$18 = 13
-// debugger:print 'lexical-scopes-in-block-expression::MUT_INT'
-// check:$19 = 3
-// debugger:print ten
-// check:$20 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$21 = -1
-// debugger:print ten
-// check:$22 = 10
-// debugger:continue
-
-// VEC EXPRESSION
-// debugger:finish
-// debugger:print val
-// check:$23 = -1
-// debugger:print ten
-// check:$24 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$25 = 14
-// debugger:print 'lexical-scopes-in-block-expression::MUT_INT'
-// check:$26 = 4
-// debugger:print ten
-// check:$27 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$28 = -1
-// debugger:print ten
-// check:$29 = 10
-// debugger:continue
-
-// REPEAT VEC EXPRESSION
-// debugger:finish
-// debugger:print val
-// check:$30 = -1
-// debugger:print ten
-// check:$31 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$32 = 15
-// debugger:print 'lexical-scopes-in-block-expression::MUT_INT'
-// check:$33 = 5
-// debugger:print ten
-// check:$34 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$35 = -1
-// debugger:print ten
-// check:$36 = 10
-// debugger:continue
-
-// ASSIGNMENT EXPRESSION
-// debugger:finish
-// debugger:print val
-// check:$37 = -1
-// debugger:print ten
-// check:$38 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$39 = 16
-// debugger:print 'lexical-scopes-in-block-expression::MUT_INT'
-// check:$40 = 6
-// debugger:print ten
-// check:$41 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$42 = -1
-// debugger:print ten
-// check:$43 = 10
-// debugger:continue
-
-
-// ARITHMETIC EXPRESSION
-// debugger:finish
-// debugger:print val
-// check:$44 = -1
-// debugger:print ten
-// check:$45 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$46 = 17
-// debugger:print 'lexical-scopes-in-block-expression::MUT_INT'
-// check:$47 = 7
-// debugger:print ten
-// check:$48 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$49 = -1
-// debugger:print ten
-// check:$50 = 10
-// debugger:continue
-
-// INDEX EXPRESSION
-// debugger:finish
-// debugger:print val
-// check:$51 = -1
-// debugger:print ten
-// check:$52 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$53 = 18
-// debugger:print 'lexical-scopes-in-block-expression::MUT_INT'
-// check:$54 = 8
-// debugger:print ten
-// check:$55 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print val
-// check:$56 = -1
-// debugger:print ten
-// check:$57 = 10
-// debugger:continue
-
-#![allow(unused_variable)]
-#![allow(dead_assignment)]
-
-static mut MUT_INT: int = 0;
-
-struct Point {
-    x: int,
-    y: int
-}
-
-fn a_function(x: int) -> int {
-    x + 1
-}
-
-fn main() {
-
-    let val = -1;
-    let ten = 10;
-
-    // surrounded by struct expression
-    let point = Point {
-        x: {
-            zzz();
-            sentinel();
-
-            let val = ten + 1;
-            unsafe {MUT_INT = 1;};
-
-            zzz();
-            sentinel();
-
-            val
-        },
-        y: 10
-    };
-
-    zzz();
-    sentinel();
-
-    // surrounded by function call
-    let _ = a_function({
-        zzz();
-        sentinel();
-
-        let val = ten + 2;
-        unsafe {MUT_INT = 2;};
-
-        zzz();
-        sentinel();
-
-        val
-    });
-
-    zzz();
-    sentinel();
-
-
-    // surrounded by tup
-    let _ = ({
-        zzz();
-        sentinel();
-
-        let val = ten + 3;
-        unsafe {MUT_INT = 3;};
-
-        zzz();
-        sentinel();
-
-        val
-    }, 0);
-
-    zzz();
-    sentinel();
-
-    // surrounded by vec
-    let _ = [{
-        zzz();
-        sentinel();
-
-        let val = ten + 4;
-        unsafe {MUT_INT = 4;};
-
-        zzz();
-        sentinel();
-
-        val
-    }, 0, 0];
-
-    zzz();
-    sentinel();
-
-    // surrounded by repeat vec
-    let _ = [{
-        zzz();
-        sentinel();
-
-        let val = ten + 5;
-        unsafe {MUT_INT = 5;};
-
-        zzz();
-        sentinel();
-
-        val
-    }, ..10];
-
-    zzz();
-    sentinel();
-
-    // assignment expression
-    let mut var = 0;
-    var = {
-        zzz();
-        sentinel();
-
-        let val = ten + 6;
-        unsafe {MUT_INT = 6;};
-
-        zzz();
-        sentinel();
-
-        val
-    };
-
-    zzz();
-    sentinel();
-
-    // arithmetic expression
-    var = 10 + -{
-        zzz();
-        sentinel();
-
-        let val = ten + 7;
-        unsafe {MUT_INT = 7;};
-
-        zzz();
-        sentinel();
-
-        val
-    } * 5;
-
-    zzz();
-    sentinel();
-
-    // index expression
-    let a_vector = [10, ..20];
-    let _ = a_vector[{
-        zzz();
-        sentinel();
-
-        let val = ten + 8;
-        unsafe {MUT_INT = 8;};
-
-        zzz();
-        sentinel();
-
-        val as uint
-    }];
-
-    zzz();
-    sentinel();
-}
-
-fn zzz() {()}
-fn sentinel() {()}
diff --git a/src/test/debug-info/simple-tuple.rs b/src/test/debug-info/simple-tuple.rs
deleted file mode 100644
index 256a34ff0ab..00000000000
--- a/src/test/debug-info/simple-tuple.rs
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// ignore-win32: FIXME #13256
-// ignore-android: FIXME(#10381)
-
-// compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-
-// debugger:print/d 'simple-tuple::NO_PADDING_8'
-// check:$1 = {-50, 50}
-// debugger:print 'simple-tuple::NO_PADDING_16'
-// check:$2 = {-1, 2, 3}
-// debugger:print 'simple-tuple::NO_PADDING_32'
-// check:$3 = {4, 5, 6}
-// debugger:print 'simple-tuple::NO_PADDING_64'
-// check:$4 = {7, 8, 9}
-
-// debugger:print 'simple-tuple::INTERNAL_PADDING_1'
-// check:$5 = {10, 11}
-// debugger:print 'simple-tuple::INTERNAL_PADDING_2'
-// check:$6 = {12, 13, 14, 15}
-
-// debugger:print 'simple-tuple::PADDING_AT_END'
-// check:$7 = {16, 17}
-
-// debugger:run
-// debugger:finish
-
-// debugger:print/d noPadding8
-// check:$8 = {-100, 100}
-// debugger:print noPadding16
-// check:$9 = {0, 1, 2}
-// debugger:print noPadding32
-// check:$10 = {3, 4.5, 5}
-// debugger:print noPadding64
-// check:$11 = {6, 7.5, 8}
-
-// debugger:print internalPadding1
-// check:$12 = {9, 10}
-// debugger:print internalPadding2
-// check:$13 = {11, 12, 13, 14}
-
-// debugger:print paddingAtEnd
-// check:$14 = {15, 16}
-
-// debugger:print/d 'simple-tuple::NO_PADDING_8'
-// check:$15 = {-127, 127}
-// debugger:print 'simple-tuple::NO_PADDING_16'
-// check:$16 = {-10, 10, 9}
-// debugger:print 'simple-tuple::NO_PADDING_32'
-// check:$17 = {14, 15, 16}
-// debugger:print 'simple-tuple::NO_PADDING_64'
-// check:$18 = {17, 18, 19}
-
-// debugger:print 'simple-tuple::INTERNAL_PADDING_1'
-// check:$19 = {110, 111}
-// debugger:print 'simple-tuple::INTERNAL_PADDING_2'
-// check:$20 = {112, 113, 114, 115}
-
-// debugger:print 'simple-tuple::PADDING_AT_END'
-// check:$21 = {116, 117}
-
-#![allow(unused_variable)]
-#![allow(dead_code)]
-
-static mut NO_PADDING_8: (i8, u8) = (-50, 50);
-static mut NO_PADDING_16: (i16, i16, u16) = (-1, 2, 3);
-
-static mut NO_PADDING_32: (i32, f32, u32) = (4, 5.0, 6);
-static mut NO_PADDING_64: (i64, f64, u64) = (7, 8.0, 9);
-
-static mut INTERNAL_PADDING_1: (i16, i32) = (10, 11);
-static mut INTERNAL_PADDING_2: (i16, i32, u32, u64) = (12, 13, 14, 15);
-
-static mut PADDING_AT_END: (i32, i16) = (16, 17);
-
-fn main() {
-    let noPadding8: (i8, u8) = (-100, 100);
-    let noPadding16: (i16, i16, u16) = (0, 1, 2);
-    let noPadding32: (i32, f32, u32) = (3, 4.5, 5);
-    let noPadding64: (i64, f64, u64) = (6, 7.5, 8);
-
-    let internalPadding1: (i16, i32) = (9, 10);
-    let internalPadding2: (i16, i32, u32, u64) = (11, 12, 13, 14);
-
-    let paddingAtEnd: (i32, i16) = (15, 16);
-
-    unsafe {
-        NO_PADDING_8 = (-127, 127);
-        NO_PADDING_16 = (-10, 10, 9);
-
-        NO_PADDING_32 = (14, 15.0, 16);
-        NO_PADDING_64 = (17, 18.0, 19);
-
-        INTERNAL_PADDING_1 = (110, 111);
-        INTERNAL_PADDING_2 = (112, 113, 114, 115);
-
-        PADDING_AT_END = (116, 117);
-    }
-
-    zzz();
-}
-
-fn zzz() {()}
diff --git a/src/test/debug-info/vec-slices.rs b/src/test/debug-info/vec-slices.rs
deleted file mode 100644
index 6171facc42b..00000000000
--- a/src/test/debug-info/vec-slices.rs
+++ /dev/null
@@ -1,87 +0,0 @@
-// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// ignore-win32: FIXME #13256
-// ignore-android: FIXME(#10381)
-
-// compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print empty.length
-// check:$1 = 0
-
-// debugger:print singleton.length
-// check:$2 = 1
-// debugger:print *((int64_t[1]*)(singleton.data_ptr))
-// check:$3 = {1}
-
-// debugger:print multiple.length
-// check:$4 = 4
-// debugger:print *((int64_t[4]*)(multiple.data_ptr))
-// check:$5 = {2, 3, 4, 5}
-
-// debugger:print slice_of_slice.length
-// check:$6 = 2
-// debugger:print *((int64_t[2]*)(slice_of_slice.data_ptr))
-// check:$7 = {3, 4}
-
-// debugger:print padded_tuple.length
-// check:$8 = 2
-// debugger:print padded_tuple.data_ptr[0]
-// check:$9 = {6, 7}
-// debugger:print padded_tuple.data_ptr[1]
-// check:$10 = {8, 9}
-
-// debugger:print padded_struct.length
-// check:$11 = 2
-// debugger:print padded_struct.data_ptr[0]
-// check:$12 = {x = 10, y = 11, z = 12}
-// debugger:print padded_struct.data_ptr[1]
-// check:$13 = {x = 13, y = 14, z = 15}
-
-// debugger:print 'vec-slices::MUT_VECT_SLICE'.length
-// check:$14 = 2
-// debugger:print *((int64_t[2]*)('vec-slices::MUT_VECT_SLICE'.data_ptr))
-// check:$15 = {64, 65}
-
-#![allow(unused_variable)]
-
-struct AStruct {
-    x: i16,
-    y: i32,
-    z: i16
-}
-
-static VECT_SLICE: &'static [i64] = &[64, 65];
-static mut MUT_VECT_SLICE: &'static [i64] = &[32];
-
-fn main() {
-    let empty: &[i64] = &[];
-    let singleton: &[i64] = &[1];
-    let multiple: &[i64] = &[2, 3, 4, 5];
-    let slice_of_slice = multiple.slice(1,3);
-
-    let padded_tuple: &[(i32, i16)] = &[(6, 7), (8, 9)];
-
-    let padded_struct: &[AStruct] = &[
-        AStruct { x: 10, y: 11, z: 12 },
-        AStruct { x: 13, y: 14, z: 15 }
-    ];
-
-    unsafe {
-        MUT_VECT_SLICE = VECT_SLICE;
-    }
-
-    zzz();
-}
-
-fn zzz() {()}
diff --git a/src/test/debuginfo/basic-types-globals-metadata.rs b/src/test/debuginfo/basic-types-globals-metadata.rs
new file mode 100644
index 00000000000..1e157f10c12
--- /dev/null
+++ b/src/test/debuginfo/basic-types-globals-metadata.rs
@@ -0,0 +1,73 @@
+// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// ignore-win32: FIXME #13256
+// ignore-android: FIXME(#10381)
+
+// compile-flags:-g
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:whatis 'basic-types-globals-metadata::B'
+// gdb-check:type = bool
+// gdb-command:whatis 'basic-types-globals-metadata::I'
+// gdb-check:type = int
+// gdb-command:whatis 'basic-types-globals-metadata::C'
+// gdb-check:type = char
+// gdb-command:whatis 'basic-types-globals-metadata::I8'
+// gdb-check:type = i8
+// gdb-command:whatis 'basic-types-globals-metadata::I16'
+// gdb-check:type = i16
+// gdb-command:whatis 'basic-types-globals-metadata::I32'
+// gdb-check:type = i32
+// gdb-command:whatis 'basic-types-globals-metadata::I64'
+// gdb-check:type = i64
+// gdb-command:whatis 'basic-types-globals-metadata::U'
+// gdb-check:type = uint
+// gdb-command:whatis 'basic-types-globals-metadata::U8'
+// gdb-check:type = u8
+// gdb-command:whatis 'basic-types-globals-metadata::U16'
+// gdb-check:type = u16
+// gdb-command:whatis 'basic-types-globals-metadata::U32'
+// gdb-check:type = u32
+// gdb-command:whatis 'basic-types-globals-metadata::U64'
+// gdb-check:type = u64
+// gdb-command:whatis 'basic-types-globals-metadata::F32'
+// gdb-check:type = f32
+// gdb-command:whatis 'basic-types-globals-metadata::F64'
+// gdb-check:type = f64
+// gdb-command:continue
+
+#![allow(unused_variable)]
+#![allow(dead_code)]
+
+
+static B: bool = false;
+static I: int = -1;
+static C: char = 'a';
+static I8: i8 = 68;
+static I16: i16 = -16;
+static I32: i32 = -32;
+static I64: i64 = -64;
+static U: uint = 1;
+static U8: u8 = 100;
+static U16: u16 = 16;
+static U32: u32 = 32;
+static U64: u64 = 64;
+static F32: f32 = 2.5;
+static F64: f64 = 3.5;
+
+fn main() {
+    _zzz();
+
+    let a = (B, I, C, I8, I16, I32, I64, U, U8, U16, U32, U64, F32, F64);
+}
+
+fn _zzz() {()}
diff --git a/src/test/debug-info/basic-types-globals.rs b/src/test/debuginfo/basic-types-globals.rs
index cdc3132ca60..2fc20bedc07 100644
--- a/src/test/debug-info/basic-types-globals.rs
+++ b/src/test/debuginfo/basic-types-globals.rs
@@ -18,38 +18,38 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print 'basic-types-globals::B'
-// check:$1 = false
-// debugger:print 'basic-types-globals::I'
-// check:$2 = -1
-// debugger:print 'basic-types-globals::C'
-// check:$3 = 97
-// debugger:print/d 'basic-types-globals::I8'
-// check:$4 = 68
-// debugger:print 'basic-types-globals::I16'
-// check:$5 = -16
-// debugger:print 'basic-types-globals::I32'
-// check:$6 = -32
-// debugger:print 'basic-types-globals::I64'
-// check:$7 = -64
-// debugger:print 'basic-types-globals::U'
-// check:$8 = 1
-// debugger:print/d 'basic-types-globals::U8'
-// check:$9 = 100
-// debugger:print 'basic-types-globals::U16'
-// check:$10 = 16
-// debugger:print 'basic-types-globals::U32'
-// check:$11 = 32
-// debugger:print 'basic-types-globals::U64'
-// check:$12 = 64
-// debugger:print 'basic-types-globals::F32'
-// check:$13 = 2.5
-// debugger:print 'basic-types-globals::F64'
-// check:$14 = 3.5
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print 'basic-types-globals::B'
+// gdb-check:$1 = false
+// gdb-command:print 'basic-types-globals::I'
+// gdb-check:$2 = -1
+// gdb-command:print 'basic-types-globals::C'
+// gdb-check:$3 = 97
+// gdb-command:print/d 'basic-types-globals::I8'
+// gdb-check:$4 = 68
+// gdb-command:print 'basic-types-globals::I16'
+// gdb-check:$5 = -16
+// gdb-command:print 'basic-types-globals::I32'
+// gdb-check:$6 = -32
+// gdb-command:print 'basic-types-globals::I64'
+// gdb-check:$7 = -64
+// gdb-command:print 'basic-types-globals::U'
+// gdb-check:$8 = 1
+// gdb-command:print/d 'basic-types-globals::U8'
+// gdb-check:$9 = 100
+// gdb-command:print 'basic-types-globals::U16'
+// gdb-check:$10 = 16
+// gdb-command:print 'basic-types-globals::U32'
+// gdb-check:$11 = 32
+// gdb-command:print 'basic-types-globals::U64'
+// gdb-check:$12 = 64
+// gdb-command:print 'basic-types-globals::F32'
+// gdb-check:$13 = 2.5
+// gdb-command:print 'basic-types-globals::F64'
+// gdb-check:$14 = 3.5
+// gdb-command:continue
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/basic-types-metadata.rs b/src/test/debuginfo/basic-types-metadata.rs
index ae5d3a84b96..da32518d993 100644
--- a/src/test/debug-info/basic-types-metadata.rs
+++ b/src/test/debuginfo/basic-types-metadata.rs
@@ -11,42 +11,42 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:whatis unit
-// check:type = ()
-// debugger:whatis b
-// check:type = bool
-// debugger:whatis i
-// check:type = int
-// debugger:whatis c
-// check:type = char
-// debugger:whatis i8
-// check:type = i8
-// debugger:whatis i16
-// check:type = i16
-// debugger:whatis i32
-// check:type = i32
-// debugger:whatis i64
-// check:type = i64
-// debugger:whatis u
-// check:type = uint
-// debugger:whatis u8
-// check:type = u8
-// debugger:whatis u16
-// check:type = u16
-// debugger:whatis u32
-// check:type = u32
-// debugger:whatis u64
-// check:type = u64
-// debugger:whatis f32
-// check:type = f32
-// debugger:whatis f64
-// check:type = f64
-// debugger:info functions _yyy
-// check:[...]![...]_yyy([...])([...]);
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:whatis unit
+// gdb-check:type = ()
+// gdb-command:whatis b
+// gdb-check:type = bool
+// gdb-command:whatis i
+// gdb-check:type = int
+// gdb-command:whatis c
+// gdb-check:type = char
+// gdb-command:whatis i8
+// gdb-check:type = i8
+// gdb-command:whatis i16
+// gdb-check:type = i16
+// gdb-command:whatis i32
+// gdb-check:type = i32
+// gdb-command:whatis i64
+// gdb-check:type = i64
+// gdb-command:whatis u
+// gdb-check:type = uint
+// gdb-command:whatis u8
+// gdb-check:type = u8
+// gdb-command:whatis u16
+// gdb-check:type = u16
+// gdb-command:whatis u32
+// gdb-check:type = u32
+// gdb-command:whatis u64
+// gdb-check:type = u64
+// gdb-command:whatis f32
+// gdb-check:type = f32
+// gdb-command:whatis f64
+// gdb-check:type = f64
+// gdb-command:info functions _yyy
+// gdb-check:[...]![...]_yyy([...])([...]);
+// gdb-command:continue
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debuginfo/basic-types-mut-globals.rs b/src/test/debuginfo/basic-types-mut-globals.rs
new file mode 100644
index 00000000000..f1579192b17
--- /dev/null
+++ b/src/test/debuginfo/basic-types-mut-globals.rs
@@ -0,0 +1,129 @@
+// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// Caveats - gdb prints any 8-bit value (meaning rust I8 and u8 values)
+// as its numerical value along with its associated ASCII char, there
+// doesn't seem to be any way around this. Also, gdb doesn't know
+// about UTF-32 character encoding and will print a rust char as only
+// its numerical value.
+
+// ignore-win32: FIXME #13256
+// ignore-android: FIXME(#10381)
+
+// compile-flags:-g
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// Check initializers
+// gdb-command:print 'basic-types-mut-globals::B'
+// gdb-check:$1 = false
+// gdb-command:print 'basic-types-mut-globals::I'
+// gdb-check:$2 = -1
+// gdb-command:print 'basic-types-mut-globals::C'
+// gdb-check:$3 = 97
+// gdb-command:print/d 'basic-types-mut-globals::I8'
+// gdb-check:$4 = 68
+// gdb-command:print 'basic-types-mut-globals::I16'
+// gdb-check:$5 = -16
+// gdb-command:print 'basic-types-mut-globals::I32'
+// gdb-check:$6 = -32
+// gdb-command:print 'basic-types-mut-globals::I64'
+// gdb-check:$7 = -64
+// gdb-command:print 'basic-types-mut-globals::U'
+// gdb-check:$8 = 1
+// gdb-command:print/d 'basic-types-mut-globals::U8'
+// gdb-check:$9 = 100
+// gdb-command:print 'basic-types-mut-globals::U16'
+// gdb-check:$10 = 16
+// gdb-command:print 'basic-types-mut-globals::U32'
+// gdb-check:$11 = 32
+// gdb-command:print 'basic-types-mut-globals::U64'
+// gdb-check:$12 = 64
+// gdb-command:print 'basic-types-mut-globals::F32'
+// gdb-check:$13 = 2.5
+// gdb-command:print 'basic-types-mut-globals::F64'
+// gdb-check:$14 = 3.5
+// gdb-command:continue
+
+// Check new values
+// gdb-command:print 'basic-types-mut-globals'::B
+// gdb-check:$15 = true
+// gdb-command:print 'basic-types-mut-globals'::I
+// gdb-check:$16 = 2
+// gdb-command:print 'basic-types-mut-globals'::C
+// gdb-check:$17 = 102
+// gdb-command:print/d 'basic-types-mut-globals'::I8
+// gdb-check:$18 = 78
+// gdb-command:print 'basic-types-mut-globals'::I16
+// gdb-check:$19 = -26
+// gdb-command:print 'basic-types-mut-globals'::I32
+// gdb-check:$20 = -12
+// gdb-command:print 'basic-types-mut-globals'::I64
+// gdb-check:$21 = -54
+// gdb-command:print 'basic-types-mut-globals'::U
+// gdb-check:$22 = 5
+// gdb-command:print/d 'basic-types-mut-globals'::U8
+// gdb-check:$23 = 20
+// gdb-command:print 'basic-types-mut-globals'::U16
+// gdb-check:$24 = 32
+// gdb-command:print 'basic-types-mut-globals'::U32
+// gdb-check:$25 = 16
+// gdb-command:print 'basic-types-mut-globals'::U64
+// gdb-check:$26 = 128
+// gdb-command:print 'basic-types-mut-globals'::F32
+// gdb-check:$27 = 5.75
+// gdb-command:print 'basic-types-mut-globals'::F64
+// gdb-check:$28 = 9.25
+
+// gdb-command:detach
+// gdb-command:quit
+
+#![allow(unused_variable)]
+
+static mut B: bool = false;
+static mut I: int = -1;
+static mut C: char = 'a';
+static mut I8: i8 = 68;
+static mut I16: i16 = -16;
+static mut I32: i32 = -32;
+static mut I64: i64 = -64;
+static mut U: uint = 1;
+static mut U8: u8 = 100;
+static mut U16: u16 = 16;
+static mut U32: u32 = 32;
+static mut U64: u64 = 64;
+static mut F32: f32 = 2.5;
+static mut F64: f64 = 3.5;
+
+fn main() {
+    _zzz();
+
+    unsafe {
+        B = true;
+        I = 2;
+        C = 'f';
+        I8 = 78;
+        I16 = -26;
+        I32 = -12;
+        I64 = -54;
+        U = 5;
+        U8 = 20;
+        U16 = 32;
+        U32 = 16;
+        U64 = 128;
+        F32 = 5.75;
+        F64 = 9.25;
+    }
+
+    _zzz();
+}
+
+fn _zzz() {()}
diff --git a/src/test/debug-info/basic-types.rs b/src/test/debuginfo/basic-types.rs
index 9c32fcfb945..ae554cafb50 100644
--- a/src/test/debug-info/basic-types.rs
+++ b/src/test/debuginfo/basic-types.rs
@@ -17,37 +17,37 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print b
-// check:$1 = false
-// debugger:print i
-// check:$2 = -1
-// debugger:print c
-// check:$3 = 97
-// debugger:print/d i8
-// check:$4 = 68
-// debugger:print i16
-// check:$5 = -16
-// debugger:print i32
-// check:$6 = -32
-// debugger:print i64
-// check:$7 = -64
-// debugger:print u
-// check:$8 = 1
-// debugger:print/d u8
-// check:$9 = 100
-// debugger:print u16
-// check:$10 = 16
-// debugger:print u32
-// check:$11 = 32
-// debugger:print u64
-// check:$12 = 64
-// debugger:print f32
-// check:$13 = 2.5
-// debugger:print f64
-// check:$14 = 3.5
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print b
+// gdb-check:$1 = false
+// gdb-command:print i
+// gdb-check:$2 = -1
+// gdb-command:print c
+// gdb-check:$3 = 97
+// gdb-command:print/d i8
+// gdb-check:$4 = 68
+// gdb-command:print i16
+// gdb-check:$5 = -16
+// gdb-command:print i32
+// gdb-check:$6 = -32
+// gdb-command:print i64
+// gdb-check:$7 = -64
+// gdb-command:print u
+// gdb-check:$8 = 1
+// gdb-command:print/d u8
+// gdb-check:$9 = 100
+// gdb-command:print u16
+// gdb-check:$10 = 16
+// gdb-command:print u32
+// gdb-check:$11 = 32
+// gdb-command:print u64
+// gdb-check:$12 = 64
+// gdb-command:print f32
+// gdb-check:$13 = 2.5
+// gdb-command:print f64
+// gdb-check:$14 = 3.5
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/borrowed-basic.rs b/src/test/debuginfo/borrowed-basic.rs
index 3d0f6632e50..d511e5ed20f 100644
--- a/src/test/debug-info/borrowed-basic.rs
+++ b/src/test/debuginfo/borrowed-basic.rs
@@ -14,50 +14,50 @@
 // its numerical value.
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print *bool_ref
-// check:$1 = true
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print *bool_ref
+// gdb-check:$1 = true
 
-// debugger:print *int_ref
-// check:$2 = -1
+// gdb-command:print *int_ref
+// gdb-check:$2 = -1
 
-// debugger:print *char_ref
-// check:$3 = 97
+// gdb-command:print *char_ref
+// gdb-check:$3 = 97
 
-// debugger:print *i8_ref
-// check:$4 = 68 'D'
+// gdb-command:print *i8_ref
+// gdb-check:$4 = 68 'D'
 
-// debugger:print *i16_ref
-// check:$5 = -16
+// gdb-command:print *i16_ref
+// gdb-check:$5 = -16
 
-// debugger:print *i32_ref
-// check:$6 = -32
+// gdb-command:print *i32_ref
+// gdb-check:$6 = -32
 
-// debugger:print *i64_ref
-// check:$7 = -64
+// gdb-command:print *i64_ref
+// gdb-check:$7 = -64
 
-// debugger:print *uint_ref
-// check:$8 = 1
+// gdb-command:print *uint_ref
+// gdb-check:$8 = 1
 
-// debugger:print *u8_ref
-// check:$9 = 100 'd'
+// gdb-command:print *u8_ref
+// gdb-check:$9 = 100 'd'
 
-// debugger:print *u16_ref
-// check:$10 = 16
+// gdb-command:print *u16_ref
+// gdb-check:$10 = 16
 
-// debugger:print *u32_ref
-// check:$11 = 32
+// gdb-command:print *u32_ref
+// gdb-check:$11 = 32
 
-// debugger:print *u64_ref
-// check:$12 = 64
+// gdb-command:print *u64_ref
+// gdb-check:$12 = 64
 
-// debugger:print *f32_ref
-// check:$13 = 2.5
+// gdb-command:print *f32_ref
+// gdb-check:$13 = 2.5
 
-// debugger:print *f64_ref
-// check:$14 = 3.5
+// gdb-command:print *f64_ref
+// gdb-check:$14 = 3.5
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/borrowed-c-style-enum.rs b/src/test/debuginfo/borrowed-c-style-enum.rs
index 4007e35dec3..9ab7e0701cc 100644
--- a/src/test/debug-info/borrowed-c-style-enum.rs
+++ b/src/test/debuginfo/borrowed-c-style-enum.rs
@@ -11,18 +11,18 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print *the_a_ref
-// check:$1 = TheA
+// gdb-command:print *the_a_ref
+// gdb-check:$1 = TheA
 
-// debugger:print *the_b_ref
-// check:$2 = TheB
+// gdb-command:print *the_b_ref
+// gdb-check:$2 = TheB
 
-// debugger:print *the_c_ref
-// check:$3 = TheC
+// gdb-command:print *the_c_ref
+// gdb-check:$3 = TheC
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/borrowed-enum.rs b/src/test/debuginfo/borrowed-enum.rs
index 3512bc63395..7126aec2391 100644
--- a/src/test/debug-info/borrowed-enum.rs
+++ b/src/test/debuginfo/borrowed-enum.rs
@@ -11,18 +11,18 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print *the_a_ref
-// check:$1 = {{TheA, x = 0, y = 8970181431921507452}, {TheA, 0, 2088533116, 2088533116}}
+// gdb-command:print *the_a_ref
+// gdb-check:$1 = {{TheA, x = 0, y = 8970181431921507452}, {TheA, 0, 2088533116, 2088533116}}
 
-// debugger:print *the_b_ref
-// check:$2 = {{TheB, x = 0, y = 1229782938247303441}, {TheB, 0, 286331153, 286331153}}
+// gdb-command:print *the_b_ref
+// gdb-check:$2 = {{TheB, x = 0, y = 1229782938247303441}, {TheB, 0, 286331153, 286331153}}
 
-// debugger:print *univariant_ref
-// check:$3 = {4820353753753434}
+// gdb-command:print *univariant_ref
+// gdb-check:$3 = {4820353753753434}
 
 #![allow(unused_variable)]
 #![feature(struct_variant)]
diff --git a/src/test/debug-info/borrowed-managed-basic.rs b/src/test/debuginfo/borrowed-managed-basic.rs
index e12ebe643a4..85f32585905 100644
--- a/src/test/debug-info/borrowed-managed-basic.rs
+++ b/src/test/debuginfo/borrowed-managed-basic.rs
@@ -16,50 +16,50 @@
 // its numerical value.
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print *bool_ref
-// check:$1 = true
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print *bool_ref
+// gdb-check:$1 = true
 
-// debugger:print *int_ref
-// check:$2 = -1
+// gdb-command:print *int_ref
+// gdb-check:$2 = -1
 
-// debugger:print *char_ref
-// check:$3 = 97
+// gdb-command:print *char_ref
+// gdb-check:$3 = 97
 
-// debugger:print/d *i8_ref
-// check:$4 = 68
+// gdb-command:print/d *i8_ref
+// gdb-check:$4 = 68
 
-// debugger:print *i16_ref
-// check:$5 = -16
+// gdb-command:print *i16_ref
+// gdb-check:$5 = -16
 
-// debugger:print *i32_ref
-// check:$6 = -32
+// gdb-command:print *i32_ref
+// gdb-check:$6 = -32
 
-// debugger:print *i64_ref
-// check:$7 = -64
+// gdb-command:print *i64_ref
+// gdb-check:$7 = -64
 
-// debugger:print *uint_ref
-// check:$8 = 1
+// gdb-command:print *uint_ref
+// gdb-check:$8 = 1
 
-// debugger:print/d *u8_ref
-// check:$9 = 100
+// gdb-command:print/d *u8_ref
+// gdb-check:$9 = 100
 
-// debugger:print *u16_ref
-// check:$10 = 16
+// gdb-command:print *u16_ref
+// gdb-check:$10 = 16
 
-// debugger:print *u32_ref
-// check:$11 = 32
+// gdb-command:print *u32_ref
+// gdb-check:$11 = 32
 
-// debugger:print *u64_ref
-// check:$12 = 64
+// gdb-command:print *u64_ref
+// gdb-check:$12 = 64
 
-// debugger:print *f32_ref
-// check:$13 = 2.5
+// gdb-command:print *f32_ref
+// gdb-check:$13 = 2.5
 
-// debugger:print *f64_ref
-// check:$14 = 3.5
+// gdb-command:print *f64_ref
+// gdb-check:$14 = 3.5
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/borrowed-struct.rs b/src/test/debuginfo/borrowed-struct.rs
index e271a221611..8ac0745513d 100644
--- a/src/test/debug-info/borrowed-struct.rs
+++ b/src/test/debuginfo/borrowed-struct.rs
@@ -11,39 +11,39 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print *stack_val_ref
-// check:$1 = {x = 10, y = 23.5}
+// gdb-command:print *stack_val_ref
+// gdb-check:$1 = {x = 10, y = 23.5}
 
-// debugger:print *stack_val_interior_ref_1
-// check:$2 = 10
+// gdb-command:print *stack_val_interior_ref_1
+// gdb-check:$2 = 10
 
-// debugger:print *stack_val_interior_ref_2
-// check:$3 = 23.5
+// gdb-command:print *stack_val_interior_ref_2
+// gdb-check:$3 = 23.5
 
-// debugger:print *ref_to_unnamed
-// check:$4 = {x = 11, y = 24.5}
+// gdb-command:print *ref_to_unnamed
+// gdb-check:$4 = {x = 11, y = 24.5}
 
-// debugger:print *managed_val_ref
-// check:$5 = {x = 12, y = 25.5}
+// gdb-command:print *managed_val_ref
+// gdb-check:$5 = {x = 12, y = 25.5}
 
-// debugger:print *managed_val_interior_ref_1
-// check:$6 = 12
+// gdb-command:print *managed_val_interior_ref_1
+// gdb-check:$6 = 12
 
-// debugger:print *managed_val_interior_ref_2
-// check:$7 = 25.5
+// gdb-command:print *managed_val_interior_ref_2
+// gdb-check:$7 = 25.5
 
-// debugger:print *unique_val_ref
-// check:$8 = {x = 13, y = 26.5}
+// gdb-command:print *unique_val_ref
+// gdb-check:$8 = {x = 13, y = 26.5}
 
-// debugger:print *unique_val_interior_ref_1
-// check:$9 = 13
+// gdb-command:print *unique_val_interior_ref_1
+// gdb-check:$9 = 13
 
-// debugger:print *unique_val_interior_ref_2
-// check:$10 = 26.5
+// gdb-command:print *unique_val_interior_ref_2
+// gdb-check:$10 = 26.5
 
 #![feature(managed_boxes)]
 #![allow(unused_variable)]
diff --git a/src/test/debug-info/borrowed-tuple.rs b/src/test/debuginfo/borrowed-tuple.rs
index b619f8e8ba1..427981445c1 100644
--- a/src/test/debug-info/borrowed-tuple.rs
+++ b/src/test/debuginfo/borrowed-tuple.rs
@@ -13,21 +13,21 @@
 #![feature(managed_boxes)]
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print *stack_val_ref
-// check:$1 = {-14, -19}
+// gdb-command:print *stack_val_ref
+// gdb-check:$1 = {-14, -19}
 
-// debugger:print *ref_to_unnamed
-// check:$2 = {-15, -20}
+// gdb-command:print *ref_to_unnamed
+// gdb-check:$2 = {-15, -20}
 
-// debugger:print *managed_val_ref
-// check:$3 = {-16, -21}
+// gdb-command:print *managed_val_ref
+// gdb-check:$3 = {-16, -21}
 
-// debugger:print *unique_val_ref
-// check:$4 = {-17, -22}
+// gdb-command:print *unique_val_ref
+// gdb-check:$4 = {-17, -22}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/borrowed-unique-basic.rs b/src/test/debuginfo/borrowed-unique-basic.rs
index eaa2679e698..6e8fa62ed26 100644
--- a/src/test/debug-info/borrowed-unique-basic.rs
+++ b/src/test/debuginfo/borrowed-unique-basic.rs
@@ -14,50 +14,50 @@
 // its numerical value.
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print *bool_ref
-// check:$1 = true
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print *bool_ref
+// gdb-check:$1 = true
 
-// debugger:print *int_ref
-// check:$2 = -1
+// gdb-command:print *int_ref
+// gdb-check:$2 = -1
 
-// debugger:print *char_ref
-// check:$3 = 97
+// gdb-command:print *char_ref
+// gdb-check:$3 = 97
 
-// debugger:print/d *i8_ref
-// check:$4 = 68
+// gdb-command:print/d *i8_ref
+// gdb-check:$4 = 68
 
-// debugger:print *i16_ref
-// check:$5 = -16
+// gdb-command:print *i16_ref
+// gdb-check:$5 = -16
 
-// debugger:print *i32_ref
-// check:$6 = -32
+// gdb-command:print *i32_ref
+// gdb-check:$6 = -32
 
-// debugger:print *i64_ref
-// check:$7 = -64
+// gdb-command:print *i64_ref
+// gdb-check:$7 = -64
 
-// debugger:print *uint_ref
-// check:$8 = 1
+// gdb-command:print *uint_ref
+// gdb-check:$8 = 1
 
-// debugger:print/d *u8_ref
-// check:$9 = 100
+// gdb-command:print/d *u8_ref
+// gdb-check:$9 = 100
 
-// debugger:print *u16_ref
-// check:$10 = 16
+// gdb-command:print *u16_ref
+// gdb-check:$10 = 16
 
-// debugger:print *u32_ref
-// check:$11 = 32
+// gdb-command:print *u32_ref
+// gdb-check:$11 = 32
 
-// debugger:print *u64_ref
-// check:$12 = 64
+// gdb-command:print *u64_ref
+// gdb-check:$12 = 64
 
-// debugger:print *f32_ref
-// check:$13 = 2.5
+// gdb-command:print *f32_ref
+// gdb-check:$13 = 2.5
 
-// debugger:print *f64_ref
-// check:$14 = 3.5
+// gdb-command:print *f64_ref
+// gdb-check:$14 = 3.5
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/box.rs b/src/test/debuginfo/box.rs
index a849a058332..c29d3d88378 100644
--- a/src/test/debug-info/box.rs
+++ b/src/test/debuginfo/box.rs
@@ -11,18 +11,18 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print *a
-// check:$1 = 1
-// debugger:print *b
-// check:$2 = {2, 3.5}
-// debugger:print c->val
-// check:$3 = 4
-// debugger:print d->val
-// check:$4 = false
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print *a
+// gdb-check:$1 = 1
+// gdb-command:print *b
+// gdb-check:$2 = {2, 3.5}
+// gdb-command:print c->val
+// gdb-check:$3 = 4
+// gdb-command:print d->val
+// gdb-check:$4 = false
 
 #![feature(managed_boxes)]
 #![allow(unused_variable)]
diff --git a/src/test/debug-info/boxed-struct.rs b/src/test/debuginfo/boxed-struct.rs
index a286fca22c1..1c94885adaf 100644
--- a/src/test/debug-info/boxed-struct.rs
+++ b/src/test/debuginfo/boxed-struct.rs
@@ -11,21 +11,21 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print *unique
-// check:$1 = {x = 99, y = 999, z = 9999, w = 99999}
+// gdb-command:print *unique
+// gdb-check:$1 = {x = 99, y = 999, z = 9999, w = 99999}
 
-// debugger:print managed->val
-// check:$2 = {x = 88, y = 888, z = 8888, w = 88888}
+// gdb-command:print managed->val
+// gdb-check:$2 = {x = 88, y = 888, z = 8888, w = 88888}
 
-// debugger:print *unique_dtor
-// check:$3 = {x = 77, y = 777, z = 7777, w = 77777}
+// gdb-command:print *unique_dtor
+// gdb-check:$3 = {x = 77, y = 777, z = 7777, w = 77777}
 
-// debugger:print managed_dtor->val
-// check:$4 = {x = 33, y = 333, z = 3333, w = 33333}
+// gdb-command:print managed_dtor->val
+// gdb-check:$4 = {x = 33, y = 333, z = 3333, w = 33333}
 
 #![feature(managed_boxes)]
 #![allow(unused_variable)]
diff --git a/src/test/debug-info/by-value-non-immediate-argument.rs b/src/test/debuginfo/by-value-non-immediate-argument.rs
index ce876e9907f..873e0623521 100644
--- a/src/test/debug-info/by-value-non-immediate-argument.rs
+++ b/src/test/debuginfo/by-value-non-immediate-argument.rs
@@ -11,37 +11,37 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print s
-// check:$1 = {a = 1, b = 2.5}
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$2 = {a = 3, b = 4.5}
-// debugger:print y
-// check:$3 = 5
-// debugger:print z
-// check:$4 = 6.5
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$5 = {7, 8, 9.5, 10.5}
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$6 = {11.5, 12.5, 13, 14}
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$7 = {{Case1, x = 0, y = 8970181431921507452}, {Case1, 0, 2088533116, 2088533116}}
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print s
+// gdb-check:$1 = {a = 1, b = 2.5}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$2 = {a = 3, b = 4.5}
+// gdb-command:print y
+// gdb-check:$3 = 5
+// gdb-command:print z
+// gdb-check:$4 = 6.5
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$5 = {7, 8, 9.5, 10.5}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$6 = {11.5, 12.5, 13, 14}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$7 = {{Case1, x = 0, y = 8970181431921507452}, {Case1, 0, 2088533116, 2088533116}}
+// gdb-command:continue
 
 #![feature(struct_variant)]
 
diff --git a/src/test/debug-info/by-value-self-argument-in-trait-impl.rs b/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs
index f8973f79c5f..b626fbad278 100644
--- a/src/test/debug-info/by-value-self-argument-in-trait-impl.rs
+++ b/src/test/debuginfo/by-value-self-argument-in-trait-impl.rs
@@ -13,28 +13,28 @@
 #![feature(managed_boxes)]
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
-// debugger:finish
-// debugger:print self
-// check:$1 = 1111
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$1 = 1111
+// gdb-command:continue
 
-// debugger:finish
-// debugger:print self
-// check:$2 = {x = 2222, y = 3333}
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$2 = {x = 2222, y = 3333}
+// gdb-command:continue
 
-// debugger:finish
-// debugger:print self
-// check:$3 = {4444.5, 5555, 6666, 7777.5}
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$3 = {4444.5, 5555, 6666, 7777.5}
+// gdb-command:continue
 
-// debugger:finish
-// debugger:print self->val
-// check:$4 = 8888
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self->val
+// gdb-check:$4 = 8888
+// gdb-command:continue
 
 trait Trait {
     fn method(self) -> Self;
diff --git a/src/test/debug-info/c-style-enum-in-composite.rs b/src/test/debuginfo/c-style-enum-in-composite.rs
index 08104c2341e..3e76bf1987b 100644
--- a/src/test/debug-info/c-style-enum-in-composite.rs
+++ b/src/test/debuginfo/c-style-enum-in-composite.rs
@@ -11,30 +11,30 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print tuple_interior_padding
-// check:$1 = {0, OneHundred}
+// gdb-command:print tuple_interior_padding
+// gdb-check:$1 = {0, OneHundred}
 
-// debugger:print tuple_padding_at_end
-// check:$2 = {{1, OneThousand}, 2}
+// gdb-command:print tuple_padding_at_end
+// gdb-check:$2 = {{1, OneThousand}, 2}
 
-// debugger:print tuple_different_enums
-// check:$3 = {OneThousand, MountainView, OneMillion, Vienna}
+// gdb-command:print tuple_different_enums
+// gdb-check:$3 = {OneThousand, MountainView, OneMillion, Vienna}
 
-// debugger:print padded_struct
-// check:$4 = {a = 3, b = OneMillion, c = 4, d = Toronto, e = 5}
+// gdb-command:print padded_struct
+// gdb-check:$4 = {a = 3, b = OneMillion, c = 4, d = Toronto, e = 5}
 
-// debugger:print packed_struct
-// check:$5 = {a = 6, b = OneHundred, c = 7, d = Vienna, e = 8}
+// gdb-command:print packed_struct
+// gdb-check:$5 = {a = 6, b = OneHundred, c = 7, d = Vienna, e = 8}
 
-// debugger:print non_padded_struct
-// check:$6 = {a = OneMillion, b = MountainView, c = OneThousand, d = Toronto}
+// gdb-command:print non_padded_struct
+// gdb-check:$6 = {a = OneMillion, b = MountainView, c = OneThousand, d = Toronto}
 
-// debugger:print struct_with_drop
-// check:$7 = {{a = OneHundred, b = Vienna}, 9}
+// gdb-command:print struct_with_drop
+// gdb-check:$7 = {{a = OneHundred, b = Vienna}, 9}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/c-style-enum.rs b/src/test/debuginfo/c-style-enum.rs
index 0a207881bd3..19f8398f1a9 100644
--- a/src/test/debug-info/c-style-enum.rs
+++ b/src/test/debuginfo/c-style-enum.rs
@@ -12,64 +12,64 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
+// gdb-command:rbreak zzz
 
-// debugger:print 'c-style-enum::SINGLE_VARIANT'
-// check:$1 = TheOnlyVariant
+// gdb-command:print 'c-style-enum::SINGLE_VARIANT'
+// gdb-check:$1 = TheOnlyVariant
 
-// debugger:print 'c-style-enum::AUTO_ONE'
-// check:$2 = One
+// gdb-command:print 'c-style-enum::AUTO_ONE'
+// gdb-check:$2 = One
 
-// debugger:print 'c-style-enum::AUTO_TWO'
-// check:$3 = One
+// gdb-command:print 'c-style-enum::AUTO_TWO'
+// gdb-check:$3 = One
 
-// debugger:print 'c-style-enum::AUTO_THREE'
-// check:$4 = One
+// gdb-command:print 'c-style-enum::AUTO_THREE'
+// gdb-check:$4 = One
 
-// debugger:print 'c-style-enum::MANUAL_ONE'
-// check:$5 = OneHundred
+// gdb-command:print 'c-style-enum::MANUAL_ONE'
+// gdb-check:$5 = OneHundred
 
-// debugger:print 'c-style-enum::MANUAL_TWO'
-// check:$6 = OneHundred
+// gdb-command:print 'c-style-enum::MANUAL_TWO'
+// gdb-check:$6 = OneHundred
 
-// debugger:print 'c-style-enum::MANUAL_THREE'
-// check:$7 = OneHundred
+// gdb-command:print 'c-style-enum::MANUAL_THREE'
+// gdb-check:$7 = OneHundred
 
-// debugger:run
-// debugger:finish
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print auto_one
-// check:$8 = One
+// gdb-command:print auto_one
+// gdb-check:$8 = One
 
-// debugger:print auto_two
-// check:$9 = Two
+// gdb-command:print auto_two
+// gdb-check:$9 = Two
 
-// debugger:print auto_three
-// check:$10 = Three
+// gdb-command:print auto_three
+// gdb-check:$10 = Three
 
-// debugger:print manual_one_hundred
-// check:$11 = OneHundred
+// gdb-command:print manual_one_hundred
+// gdb-check:$11 = OneHundred
 
-// debugger:print manual_one_thousand
-// check:$12 = OneThousand
+// gdb-command:print manual_one_thousand
+// gdb-check:$12 = OneThousand
 
-// debugger:print manual_one_million
-// check:$13 = OneMillion
+// gdb-command:print manual_one_million
+// gdb-check:$13 = OneMillion
 
-// debugger:print single_variant
-// check:$14 = TheOnlyVariant
+// gdb-command:print single_variant
+// gdb-check:$14 = TheOnlyVariant
 
-// debugger:print 'c-style-enum::AUTO_TWO'
-// check:$15 = Two
+// gdb-command:print 'c-style-enum::AUTO_TWO'
+// gdb-check:$15 = Two
 
-// debugger:print 'c-style-enum::AUTO_THREE'
-// check:$16 = Three
+// gdb-command:print 'c-style-enum::AUTO_THREE'
+// gdb-check:$16 = Three
 
-// debugger:print 'c-style-enum::MANUAL_TWO'
-// check:$17 = OneThousand
+// gdb-command:print 'c-style-enum::MANUAL_TWO'
+// gdb-check:$17 = OneThousand
 
-// debugger:print 'c-style-enum::MANUAL_THREE'
-// check:$18 = OneMillion
+// gdb-command:print 'c-style-enum::MANUAL_THREE'
+// gdb-check:$18 = OneMillion
 
 #![allow(unused_variable)]
 #![allow(dead_code)]
diff --git a/src/test/debug-info/closure-in-generic-function.rs b/src/test/debuginfo/closure-in-generic-function.rs
index f3692e7bf96..7a89b682d15 100644
--- a/src/test/debug-info/closure-in-generic-function.rs
+++ b/src/test/debuginfo/closure-in-generic-function.rs
@@ -11,22 +11,22 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print x
-// check:$1 = 0.5
-// debugger:print y
-// check:$2 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print *x
-// check:$3 = 29
-// debugger:print *y
-// check:$4 = 110
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = 0.5
+// gdb-command:print y
+// gdb-check:$2 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print *x
+// gdb-check:$3 = 29
+// gdb-command:print *y
+// gdb-check:$4 = 110
+// gdb-command:continue
 
 fn some_generic_fun<T1, T2>(a: T1, b: T2) -> (T2, T1) {
 
diff --git a/src/test/debug-info/destructured-fn-argument.rs b/src/test/debuginfo/destructured-fn-argument.rs
index 2f7fc961cdd..697703034f6 100644
--- a/src/test/debug-info/destructured-fn-argument.rs
+++ b/src/test/debuginfo/destructured-fn-argument.rs
@@ -11,175 +11,175 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print a
-// check:$1 = 1
-// debugger:print b
-// check:$2 = false
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$3 = 2
-// debugger:print b
-// check:$4 = 3
-// debugger:print c
-// check:$5 = 4
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$6 = 5
-// debugger:print b
-// check:$7 = {6, 7}
-// debugger:continue
-
-// debugger:finish
-// debugger:print h
-// check:$8 = 8
-// debugger:print i
-// check:$9 = {a = 9, b = 10}
-// debugger:print j
-// check:$10 = 11
-// debugger:continue
-
-// debugger:finish
-// debugger:print k
-// check:$11 = 12
-// debugger:print l
-// check:$12 = 13
-// debugger:continue
-
-// debugger:finish
-// debugger:print m
-// check:$13 = 14
-// debugger:print n
-// check:$14 = 16
-// debugger:continue
-
-// debugger:finish
-// debugger:print o
-// check:$15 = 18
-// debugger:continue
-
-// debugger:finish
-// debugger:print p
-// check:$16 = 19
-// debugger:print q
-// check:$17 = 20
-// debugger:print r
-// check:$18 = {a = 21, b = 22}
-// debugger:continue
-
-// debugger:finish
-// debugger:print s
-// check:$19 = 24
-// debugger:print t
-// check:$20 = 23
-// debugger:continue
-
-// debugger:finish
-// debugger:print u
-// check:$21 = 25
-// debugger:print v
-// check:$22 = 26
-// debugger:print w
-// check:$23 = 27
-// debugger:print x
-// check:$24 = 28
-// debugger:print y
-// check:$25 = 29
-// debugger:print z
-// check:$26 = 30
-// debugger:print ae
-// check:$27 = 31
-// debugger:print oe
-// check:$28 = 32
-// debugger:print ue
-// check:$29 = 33
-// debugger:continue
-
-// debugger:finish
-// debugger:print aa
-// check:$30 = {34, 35}
-// debugger:continue
-
-// debugger:finish
-// debugger:print bb
-// check:$31 = {36, 37}
-// debugger:continue
-
-// debugger:finish
-// debugger:print cc
-// check:$32 = 38
-// debugger:continue
-
-// debugger:finish
-// debugger:print dd
-// check:$33 = {40, 41, 42}
-// debugger:continue
-
-// debugger:finish
-// debugger:print *ee
-// check:$34 = {43, 44, 45}
-// debugger:continue
-
-// debugger:finish
-// debugger:print *ff
-// check:$35 = 46
-// debugger:print gg
-// check:$36 = {47, 48}
-// debugger:continue
-
-// debugger:finish
-// debugger:print *hh
-// check:$37 = 50
-// debugger:continue
-
-// debugger:finish
-// debugger:print ii
-// check:$38 = 51
-// debugger:continue
-
-// debugger:finish
-// debugger:print *jj
-// check:$39 = 52
-// debugger:continue
-
-// debugger:finish
-// debugger:print kk
-// check:$40 = 53
-// debugger:print ll
-// check:$41 = 54
-// debugger:continue
-
-// debugger:finish
-// debugger:print mm
-// check:$42 = 55
-// debugger:print *nn
-// check:$43 = 56
-// debugger:continue
-
-// debugger:finish
-// debugger:print oo
-// check:$44 = 57
-// debugger:print pp
-// check:$45 = 58
-// debugger:print qq
-// check:$46 = 59
-// debugger:continue
-
-// debugger:finish
-// debugger:print rr
-// check:$47 = 60
-// debugger:print ss
-// check:$48 = 61
-// debugger:print tt
-// check:$49 = 62
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$1 = 1
+// gdb-command:print b
+// gdb-check:$2 = false
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$3 = 2
+// gdb-command:print b
+// gdb-check:$4 = 3
+// gdb-command:print c
+// gdb-check:$5 = 4
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$6 = 5
+// gdb-command:print b
+// gdb-check:$7 = {6, 7}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print h
+// gdb-check:$8 = 8
+// gdb-command:print i
+// gdb-check:$9 = {a = 9, b = 10}
+// gdb-command:print j
+// gdb-check:$10 = 11
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print k
+// gdb-check:$11 = 12
+// gdb-command:print l
+// gdb-check:$12 = 13
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print m
+// gdb-check:$13 = 14
+// gdb-command:print n
+// gdb-check:$14 = 16
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print o
+// gdb-check:$15 = 18
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print p
+// gdb-check:$16 = 19
+// gdb-command:print q
+// gdb-check:$17 = 20
+// gdb-command:print r
+// gdb-check:$18 = {a = 21, b = 22}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print s
+// gdb-check:$19 = 24
+// gdb-command:print t
+// gdb-check:$20 = 23
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print u
+// gdb-check:$21 = 25
+// gdb-command:print v
+// gdb-check:$22 = 26
+// gdb-command:print w
+// gdb-check:$23 = 27
+// gdb-command:print x
+// gdb-check:$24 = 28
+// gdb-command:print y
+// gdb-check:$25 = 29
+// gdb-command:print z
+// gdb-check:$26 = 30
+// gdb-command:print ae
+// gdb-check:$27 = 31
+// gdb-command:print oe
+// gdb-check:$28 = 32
+// gdb-command:print ue
+// gdb-check:$29 = 33
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print aa
+// gdb-check:$30 = {34, 35}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print bb
+// gdb-check:$31 = {36, 37}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print cc
+// gdb-check:$32 = 38
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print dd
+// gdb-check:$33 = {40, 41, 42}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print *ee
+// gdb-check:$34 = {43, 44, 45}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print *ff
+// gdb-check:$35 = 46
+// gdb-command:print gg
+// gdb-check:$36 = {47, 48}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print *hh
+// gdb-check:$37 = 50
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print ii
+// gdb-check:$38 = 51
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print *jj
+// gdb-check:$39 = 52
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print kk
+// gdb-check:$40 = 53
+// gdb-command:print ll
+// gdb-check:$41 = 54
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print mm
+// gdb-check:$42 = 55
+// gdb-command:print *nn
+// gdb-check:$43 = 56
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print oo
+// gdb-check:$44 = 57
+// gdb-command:print pp
+// gdb-check:$45 = 58
+// gdb-command:print qq
+// gdb-check:$46 = 59
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print rr
+// gdb-check:$47 = 60
+// gdb-command:print ss
+// gdb-check:$48 = 61
+// gdb-command:print tt
+// gdb-check:$49 = 62
+// gdb-command:continue
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/destructured-local.rs b/src/test/debuginfo/destructured-local.rs
index 3dab6ace9a8..c543a11475e 100644
--- a/src/test/debug-info/destructured-local.rs
+++ b/src/test/debuginfo/destructured-local.rs
@@ -11,119 +11,119 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// debugger:print a
-// check:$1 = 1
-// debugger:print b
-// check:$2 = false
-
-// debugger:print c
-// check:$3 = 2
-// debugger:print d
-// check:$4 = 3
-// debugger:print e
-// check:$5 = 4
-
-// debugger:print f
-// check:$6 = 5
-// debugger:print g
-// check:$7 = {6, 7}
-
-// debugger:print h
-// check:$8 = 8
-// debugger:print i
-// check:$9 = {a = 9, b = 10}
-// debugger:print j
-// check:$10 = 11
-
-// debugger:print k
-// check:$11 = 12
-// debugger:print l
-// check:$12 = 13
-
-// debugger:print m
-// check:$13 = 14
-// debugger:print n
-// check:$14 = 16
-
-// debugger:print o
-// check:$15 = 18
-
-// debugger:print p
-// check:$16 = 19
-// debugger:print q
-// check:$17 = 20
-// debugger:print r
-// check:$18 = {a = 21, b = 22}
-
-// debugger:print s
-// check:$19 = 24
-// debugger:print t
-// check:$20 = 23
-
-// debugger:print u
-// check:$21 = 25
-// debugger:print v
-// check:$22 = 26
-// debugger:print w
-// check:$23 = 27
-// debugger:print x
-// check:$24 = 28
-// debugger:print y
-// check:$25 = 29
-// debugger:print z
-// check:$26 = 30
-// debugger:print ae
-// check:$27 = 31
-// debugger:print oe
-// check:$28 = 32
-// debugger:print ue
-// check:$29 = 33
-
-// debugger:print aa
-// check:$30 = {34, 35}
-
-// debugger:print bb
-// check:$31 = {36, 37}
-
-// debugger:print cc
-// check:$32 = 38
-
-// debugger:print dd
-// check:$33 = {40, 41, 42}
-
-// debugger:print *ee
-// check:$34 = {43, 44, 45}
-
-// debugger:print *ff
-// check:$35 = 46
-
-// debugger:print gg
-// check:$36 = {47, 48}
-
-// debugger:print *hh
-// check:$37 = 50
-
-// debugger:print ii
-// check:$38 = 51
-
-// debugger:print *jj
-// check:$39 = 52
-
-// debugger:print kk
-// check:$40 = 53
-
-// debugger:print ll
-// check:$41 = 54
-
-// debugger:print mm
-// check:$42 = 55
-
-// debugger:print *nn
-// check:$43 = 56
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print a
+// gdb-check:$1 = 1
+// gdb-command:print b
+// gdb-check:$2 = false
+
+// gdb-command:print c
+// gdb-check:$3 = 2
+// gdb-command:print d
+// gdb-check:$4 = 3
+// gdb-command:print e
+// gdb-check:$5 = 4
+
+// gdb-command:print f
+// gdb-check:$6 = 5
+// gdb-command:print g
+// gdb-check:$7 = {6, 7}
+
+// gdb-command:print h
+// gdb-check:$8 = 8
+// gdb-command:print i
+// gdb-check:$9 = {a = 9, b = 10}
+// gdb-command:print j
+// gdb-check:$10 = 11
+
+// gdb-command:print k
+// gdb-check:$11 = 12
+// gdb-command:print l
+// gdb-check:$12 = 13
+
+// gdb-command:print m
+// gdb-check:$13 = 14
+// gdb-command:print n
+// gdb-check:$14 = 16
+
+// gdb-command:print o
+// gdb-check:$15 = 18
+
+// gdb-command:print p
+// gdb-check:$16 = 19
+// gdb-command:print q
+// gdb-check:$17 = 20
+// gdb-command:print r
+// gdb-check:$18 = {a = 21, b = 22}
+
+// gdb-command:print s
+// gdb-check:$19 = 24
+// gdb-command:print t
+// gdb-check:$20 = 23
+
+// gdb-command:print u
+// gdb-check:$21 = 25
+// gdb-command:print v
+// gdb-check:$22 = 26
+// gdb-command:print w
+// gdb-check:$23 = 27
+// gdb-command:print x
+// gdb-check:$24 = 28
+// gdb-command:print y
+// gdb-check:$25 = 29
+// gdb-command:print z
+// gdb-check:$26 = 30
+// gdb-command:print ae
+// gdb-check:$27 = 31
+// gdb-command:print oe
+// gdb-check:$28 = 32
+// gdb-command:print ue
+// gdb-check:$29 = 33
+
+// gdb-command:print aa
+// gdb-check:$30 = {34, 35}
+
+// gdb-command:print bb
+// gdb-check:$31 = {36, 37}
+
+// gdb-command:print cc
+// gdb-check:$32 = 38
+
+// gdb-command:print dd
+// gdb-check:$33 = {40, 41, 42}
+
+// gdb-command:print *ee
+// gdb-check:$34 = {43, 44, 45}
+
+// gdb-command:print *ff
+// gdb-check:$35 = 46
+
+// gdb-command:print gg
+// gdb-check:$36 = {47, 48}
+
+// gdb-command:print *hh
+// gdb-check:$37 = 50
+
+// gdb-command:print ii
+// gdb-check:$38 = 51
+
+// gdb-command:print *jj
+// gdb-check:$39 = 52
+
+// gdb-command:print kk
+// gdb-check:$40 = 53
+
+// gdb-command:print ll
+// gdb-check:$41 = 54
+
+// gdb-command:print mm
+// gdb-check:$42 = 55
+
+// gdb-command:print *nn
+// gdb-check:$43 = 56
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/evec-in-struct.rs b/src/test/debuginfo/evec-in-struct.rs
index bf4a4079ea8..913038c44be 100644
--- a/src/test/debug-info/evec-in-struct.rs
+++ b/src/test/debuginfo/evec-in-struct.rs
@@ -11,24 +11,24 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print no_padding1
-// check:$1 = {x = {0, 1, 2}, y = -3, z = {4.5, 5.5}}
-// debugger:print no_padding2
-// check:$2 = {x = {6, 7, 8}, y = {{9, 10}, {11, 12}}}
+// gdb-command:print no_padding1
+// gdb-check:$1 = {x = {0, 1, 2}, y = -3, z = {4.5, 5.5}}
+// gdb-command:print no_padding2
+// gdb-check:$2 = {x = {6, 7, 8}, y = {{9, 10}, {11, 12}}}
 
-// debugger:print struct_internal_padding
-// check:$3 = {x = {13, 14}, y = {15, 16}}
+// gdb-command:print struct_internal_padding
+// gdb-check:$3 = {x = {13, 14}, y = {15, 16}}
 
-// debugger:print single_vec
-// check:$4 = {x = {17, 18, 19, 20, 21}}
+// gdb-command:print single_vec
+// gdb-check:$4 = {x = {17, 18, 19, 20, 21}}
 
-// debugger:print struct_padded_at_end
-// check:$5 = {x = {22, 23}, y = {24, 25}}
+// gdb-command:print struct_padded_at_end
+// gdb-check:$5 = {x = {22, 23}, y = {24, 25}}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/function-arg-initialization.rs b/src/test/debuginfo/function-arg-initialization.rs
index a5e6732aaab..d439f49fe69 100644
--- a/src/test/debug-info/function-arg-initialization.rs
+++ b/src/test/debuginfo/function-arg-initialization.rs
@@ -17,118 +17,118 @@
 // Therefore the setup here sets them using line numbers (so be careful when changing this file).
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:break function-arg-initialization.rs:139
-// debugger:break function-arg-initialization.rs:154
-// debugger:break function-arg-initialization.rs:158
-// debugger:break function-arg-initialization.rs:162
-// debugger:break function-arg-initialization.rs:166
-// debugger:break function-arg-initialization.rs:170
-// debugger:break function-arg-initialization.rs:174
-// debugger:break function-arg-initialization.rs:178
-// debugger:break function-arg-initialization.rs:182
-// debugger:break function-arg-initialization.rs:190
-// debugger:break function-arg-initialization.rs:197
-
-
-// debugger:run
+// gdb-command:set print pretty off
+// gdb-command:break function-arg-initialization.rs:139
+// gdb-command:break function-arg-initialization.rs:154
+// gdb-command:break function-arg-initialization.rs:158
+// gdb-command:break function-arg-initialization.rs:162
+// gdb-command:break function-arg-initialization.rs:166
+// gdb-command:break function-arg-initialization.rs:170
+// gdb-command:break function-arg-initialization.rs:174
+// gdb-command:break function-arg-initialization.rs:178
+// gdb-command:break function-arg-initialization.rs:182
+// gdb-command:break function-arg-initialization.rs:190
+// gdb-command:break function-arg-initialization.rs:197
+
+
+// gdb-command:run
 
 // IMMEDIATE ARGS
-// debugger:print a
-// check:$1 = 1
-// debugger:print b
-// check:$2 = true
-// debugger:print c
-// check:$3 = 2.5
-// debugger:continue
+// gdb-command:print a
+// gdb-check:$1 = 1
+// gdb-command:print b
+// gdb-check:$2 = true
+// gdb-command:print c
+// gdb-check:$3 = 2.5
+// gdb-command:continue
 
 // NON IMMEDIATE ARGS
-// debugger:print a
-// check:$4 = {a = 3, b = 4, c = 5, d = 6, e = 7, f = 8, g = 9, h = 10}
-// debugger:print b
-// check:$5 = {a = 11, b = 12, c = 13, d = 14, e = 15, f = 16, g = 17, h = 18}
-// debugger:continue
+// gdb-command:print a
+// gdb-check:$4 = {a = 3, b = 4, c = 5, d = 6, e = 7, f = 8, g = 9, h = 10}
+// gdb-command:print b
+// gdb-check:$5 = {a = 11, b = 12, c = 13, d = 14, e = 15, f = 16, g = 17, h = 18}
+// gdb-command:continue
 
 // BINDING
-// debugger:print a
-// check:$6 = 19
-// debugger:print b
-// check:$7 = 20
-// debugger:print c
-// check:$8 = 21.5
-// debugger:continue
+// gdb-command:print a
+// gdb-check:$6 = 19
+// gdb-command:print b
+// gdb-check:$7 = 20
+// gdb-command:print c
+// gdb-check:$8 = 21.5
+// gdb-command:continue
 
 // ASSIGNMENT
-// debugger:print a
-// check:$9 = 22
-// debugger:print b
-// check:$10 = 23
-// debugger:print c
-// check:$11 = 24.5
-// debugger:continue
+// gdb-command:print a
+// gdb-check:$9 = 22
+// gdb-command:print b
+// gdb-check:$10 = 23
+// gdb-command:print c
+// gdb-check:$11 = 24.5
+// gdb-command:continue
 
 // FUNCTION CALL
-// debugger:print x
-// check:$12 = 25
-// debugger:print y
-// check:$13 = 26
-// debugger:print z
-// check:$14 = 27.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$12 = 25
+// gdb-command:print y
+// gdb-check:$13 = 26
+// gdb-command:print z
+// gdb-check:$14 = 27.5
+// gdb-command:continue
 
 // EXPR
-// debugger:print x
-// check:$15 = 28
-// debugger:print y
-// check:$16 = 29
-// debugger:print z
-// check:$17 = 30.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$15 = 28
+// gdb-command:print y
+// gdb-check:$16 = 29
+// gdb-command:print z
+// gdb-check:$17 = 30.5
+// gdb-command:continue
 
 // RETURN EXPR
-// debugger:print x
-// check:$18 = 31
-// debugger:print y
-// check:$19 = 32
-// debugger:print z
-// check:$20 = 33.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$18 = 31
+// gdb-command:print y
+// gdb-check:$19 = 32
+// gdb-command:print z
+// gdb-check:$20 = 33.5
+// gdb-command:continue
 
 // ARITHMETIC EXPR
-// debugger:print x
-// check:$21 = 34
-// debugger:print y
-// check:$22 = 35
-// debugger:print z
-// check:$23 = 36.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$21 = 34
+// gdb-command:print y
+// gdb-check:$22 = 35
+// gdb-command:print z
+// gdb-check:$23 = 36.5
+// gdb-command:continue
 
 // IF EXPR
-// debugger:print x
-// check:$24 = 37
-// debugger:print y
-// check:$25 = 38
-// debugger:print z
-// check:$26 = 39.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$24 = 37
+// gdb-command:print y
+// gdb-check:$25 = 38
+// gdb-command:print z
+// gdb-check:$26 = 39.5
+// gdb-command:continue
 
 // WHILE EXPR
-// debugger:print x
-// check:$27 = 40
-// debugger:print y
-// check:$28 = 41
-// debugger:print z
-// check:$29 = 42
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$27 = 40
+// gdb-command:print y
+// gdb-check:$28 = 41
+// gdb-command:print z
+// gdb-check:$29 = 42
+// gdb-command:continue
 
 // LOOP EXPR
-// debugger:print x
-// check:$30 = 43
-// debugger:print y
-// check:$31 = 44
-// debugger:print z
-// check:$32 = 45
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$30 = 43
+// gdb-command:print y
+// gdb-check:$31 = 44
+// gdb-command:print z
+// gdb-check:$32 = 45
+// gdb-command:continue
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/function-arguments.rs b/src/test/debuginfo/function-arguments.rs
index d4590051077..e65b9a2519d 100644
--- a/src/test/debug-info/function-arguments.rs
+++ b/src/test/debuginfo/function-arguments.rs
@@ -11,22 +11,22 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// debugger:print x
-// check:$1 = 111102
-// debugger:print y
-// check:$2 = true
-
-// debugger:continue
-// debugger:finish
-
-// debugger:print a
-// check:$3 = 2000
-// debugger:print b
-// check:$4 = 3000
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print x
+// gdb-check:$1 = 111102
+// gdb-command:print y
+// gdb-check:$2 = true
+
+// gdb-command:continue
+// gdb-command:finish
+
+// gdb-command:print a
+// gdb-check:$3 = 2000
+// gdb-command:print b
+// gdb-check:$4 = 3000
 
 fn main() {
 
diff --git a/src/test/debug-info/function-prologue-stepping-no-split-stack.rs b/src/test/debuginfo/function-prologue-stepping-no-split-stack.rs
index 6f273057a1b..a9ccf3cdb16 100644
--- a/src/test/debug-info/function-prologue-stepping-no-split-stack.rs
+++ b/src/test/debuginfo/function-prologue-stepping-no-split-stack.rs
@@ -17,115 +17,115 @@
 // function name (and don't have to fall back on using line numbers).
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak immediate_args
-// debugger:rbreak binding
-// debugger:rbreak assignment
-// debugger:rbreak function_call
-// debugger:rbreak identifier
-// debugger:rbreak return_expr
-// debugger:rbreak arithmetic_expr
-// debugger:rbreak if_expr
-// debugger:rbreak while_expr
-// debugger:rbreak loop_expr
-// debugger:run
+// gdb-command:set print pretty off
+// gdb-command:rbreak immediate_args
+// gdb-command:rbreak binding
+// gdb-command:rbreak assignment
+// gdb-command:rbreak function_call
+// gdb-command:rbreak identifier
+// gdb-command:rbreak return_expr
+// gdb-command:rbreak arithmetic_expr
+// gdb-command:rbreak if_expr
+// gdb-command:rbreak while_expr
+// gdb-command:rbreak loop_expr
+// gdb-command:run
 
 // IMMEDIATE ARGS
-// debugger:print a
-// check:$1 = 1
-// debugger:print b
-// check:$2 = true
-// debugger:print c
-// check:$3 = 2.5
-// debugger:continue
+// gdb-command:print a
+// gdb-check:$1 = 1
+// gdb-command:print b
+// gdb-check:$2 = true
+// gdb-command:print c
+// gdb-check:$3 = 2.5
+// gdb-command:continue
 
 // NON IMMEDIATE ARGS
-// debugger:print a
-// check:$4 = {a = 3, b = 4, c = 5, d = 6, e = 7, f = 8, g = 9, h = 10}
-// debugger:print b
-// check:$5 = {a = 11, b = 12, c = 13, d = 14, e = 15, f = 16, g = 17, h = 18}
-// debugger:continue
+// gdb-command:print a
+// gdb-check:$4 = {a = 3, b = 4, c = 5, d = 6, e = 7, f = 8, g = 9, h = 10}
+// gdb-command:print b
+// gdb-check:$5 = {a = 11, b = 12, c = 13, d = 14, e = 15, f = 16, g = 17, h = 18}
+// gdb-command:continue
 
 // BINDING
-// debugger:print a
-// check:$6 = 19
-// debugger:print b
-// check:$7 = 20
-// debugger:print c
-// check:$8 = 21.5
-// debugger:continue
+// gdb-command:print a
+// gdb-check:$6 = 19
+// gdb-command:print b
+// gdb-check:$7 = 20
+// gdb-command:print c
+// gdb-check:$8 = 21.5
+// gdb-command:continue
 
 // ASSIGNMENT
-// debugger:print a
-// check:$9 = 22
-// debugger:print b
-// check:$10 = 23
-// debugger:print c
-// check:$11 = 24.5
-// debugger:continue
+// gdb-command:print a
+// gdb-check:$9 = 22
+// gdb-command:print b
+// gdb-check:$10 = 23
+// gdb-command:print c
+// gdb-check:$11 = 24.5
+// gdb-command:continue
 
 // FUNCTION CALL
-// debugger:print x
-// check:$12 = 25
-// debugger:print y
-// check:$13 = 26
-// debugger:print z
-// check:$14 = 27.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$12 = 25
+// gdb-command:print y
+// gdb-check:$13 = 26
+// gdb-command:print z
+// gdb-check:$14 = 27.5
+// gdb-command:continue
 
 // EXPR
-// debugger:print x
-// check:$15 = 28
-// debugger:print y
-// check:$16 = 29
-// debugger:print z
-// check:$17 = 30.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$15 = 28
+// gdb-command:print y
+// gdb-check:$16 = 29
+// gdb-command:print z
+// gdb-check:$17 = 30.5
+// gdb-command:continue
 
 // RETURN EXPR
-// debugger:print x
-// check:$18 = 31
-// debugger:print y
-// check:$19 = 32
-// debugger:print z
-// check:$20 = 33.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$18 = 31
+// gdb-command:print y
+// gdb-check:$19 = 32
+// gdb-command:print z
+// gdb-check:$20 = 33.5
+// gdb-command:continue
 
 // ARITHMETIC EXPR
-// debugger:print x
-// check:$21 = 34
-// debugger:print y
-// check:$22 = 35
-// debugger:print z
-// check:$23 = 36.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$21 = 34
+// gdb-command:print y
+// gdb-check:$22 = 35
+// gdb-command:print z
+// gdb-check:$23 = 36.5
+// gdb-command:continue
 
 // IF EXPR
-// debugger:print x
-// check:$24 = 37
-// debugger:print y
-// check:$25 = 38
-// debugger:print z
-// check:$26 = 39.5
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$24 = 37
+// gdb-command:print y
+// gdb-check:$25 = 38
+// gdb-command:print z
+// gdb-check:$26 = 39.5
+// gdb-command:continue
 
 // WHILE EXPR
-// debugger:print x
-// check:$27 = 40
-// debugger:print y
-// check:$28 = 41
-// debugger:print z
-// check:$29 = 42
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$27 = 40
+// gdb-command:print y
+// gdb-check:$28 = 41
+// gdb-command:print z
+// gdb-check:$29 = 42
+// gdb-command:continue
 
 // LOOP EXPR
-// debugger:print x
-// check:$30 = 43
-// debugger:print y
-// check:$31 = 44
-// debugger:print z
-// check:$32 = 45
-// debugger:continue
+// gdb-command:print x
+// gdb-check:$30 = 43
+// gdb-command:print y
+// gdb-check:$31 = 44
+// gdb-command:print z
+// gdb-check:$32 = 45
+// gdb-command:continue
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/generic-function.rs b/src/test/debuginfo/generic-function.rs
index 6197520e793..9fe17f9937a 100644
--- a/src/test/debug-info/generic-function.rs
+++ b/src/test/debuginfo/generic-function.rs
@@ -11,35 +11,35 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print *t0
-// check:$1 = 1
-// debugger:print *t1
-// check:$2 = 2.5
-// debugger:print ret
-// check:$3 = {{1, 2.5}, {2.5, 1}}
-// debugger:continue
-
-// debugger:finish
-// debugger:print *t0
-// check:$4 = 3.5
-// debugger:print *t1
-// check:$5 = 4
-// debugger:print ret
-// check:$6 = {{3.5, 4}, {4, 3.5}}
-// debugger:continue
-
-// debugger:finish
-// debugger:print *t0
-// check:$7 = 5
-// debugger:print *t1
-// check:$8 = {a = 6, b = 7.5}
-// debugger:print ret
-// check:$9 = {{5, {a = 6, b = 7.5}}, {{a = 6, b = 7.5}, 5}}
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print *t0
+// gdb-check:$1 = 1
+// gdb-command:print *t1
+// gdb-check:$2 = 2.5
+// gdb-command:print ret
+// gdb-check:$3 = {{1, 2.5}, {2.5, 1}}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print *t0
+// gdb-check:$4 = 3.5
+// gdb-command:print *t1
+// gdb-check:$5 = 4
+// gdb-command:print ret
+// gdb-check:$6 = {{3.5, 4}, {4, 3.5}}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print *t0
+// gdb-check:$7 = 5
+// gdb-command:print *t1
+// gdb-check:$8 = {a = 6, b = 7.5}
+// gdb-command:print ret
+// gdb-check:$9 = {{5, {a = 6, b = 7.5}}, {{a = 6, b = 7.5}, 5}}
+// gdb-command:continue
 
 #[deriving(Clone)]
 struct Struct {
diff --git a/src/test/debug-info/generic-functions-nested.rs b/src/test/debuginfo/generic-functions-nested.rs
index 20991ba03c2..1849ca16138 100644
--- a/src/test/debug-info/generic-functions-nested.rs
+++ b/src/test/debuginfo/generic-functions-nested.rs
@@ -11,36 +11,36 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print x
-// check:$1 = -1
-// debugger:print y
-// check:$2 = 1
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$3 = -1
-// debugger:print y
-// check:$4 = 2.5
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$5 = -2.5
-// debugger:print y
-// check:$6 = 1
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$7 = -2.5
-// debugger:print y
-// check:$8 = 2.5
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = -1
+// gdb-command:print y
+// gdb-check:$2 = 1
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = -1
+// gdb-command:print y
+// gdb-check:$4 = 2.5
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = -2.5
+// gdb-command:print y
+// gdb-check:$6 = 1
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$7 = -2.5
+// gdb-command:print y
+// gdb-check:$8 = 2.5
+// gdb-command:continue
 
 fn outer<TA: Clone>(a: TA) {
     inner(a.clone(), 1);
diff --git a/src/test/debug-info/generic-method-on-generic-struct.rs b/src/test/debuginfo/generic-method-on-generic-struct.rs
index 7afa8952998..ad088d9a5eb 100644
--- a/src/test/debug-info/generic-method-on-generic-struct.rs
+++ b/src/test/debuginfo/generic-method-on-generic-struct.rs
@@ -11,58 +11,58 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STACK BY REF
-// debugger:finish
-// debugger:print *self
-// check:$1 = {x = {8888, -8888}}
-// debugger:print arg1
-// check:$2 = -1
-// debugger:print/d arg2
-// check:$3 = -2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$1 = {x = {8888, -8888}}
+// gdb-command:print arg1
+// gdb-check:$2 = -1
+// gdb-command:print/d arg2
+// gdb-check:$3 = -2
+// gdb-command:continue
 
 // STACK BY VAL
-// debugger:finish
-// debugger:print self
-// check:$4 = {x = {8888, -8888}}
-// debugger:print arg1
-// check:$5 = -3
-// debugger:print arg2
-// check:$6 = -4
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$4 = {x = {8888, -8888}}
+// gdb-command:print arg1
+// gdb-check:$5 = -3
+// gdb-command:print arg2
+// gdb-check:$6 = -4
+// gdb-command:continue
 
 // OWNED BY REF
-// debugger:finish
-// debugger:print *self
-// check:$7 = {x = 1234.5}
-// debugger:print arg1
-// check:$8 = -5
-// debugger:print arg2
-// check:$9 = -6
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$7 = {x = 1234.5}
+// gdb-command:print arg1
+// gdb-check:$8 = -5
+// gdb-command:print arg2
+// gdb-check:$9 = -6
+// gdb-command:continue
 
 // OWNED BY VAL
-// debugger:finish
-// debugger:print self
-// check:$10 = {x = 1234.5}
-// debugger:print arg1
-// check:$11 = -7
-// debugger:print arg2
-// check:$12 = -8
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$10 = {x = 1234.5}
+// gdb-command:print arg1
+// gdb-check:$11 = -7
+// gdb-command:print arg2
+// gdb-check:$12 = -8
+// gdb-command:continue
 
 // OWNED MOVED
-// debugger:finish
-// debugger:print *self
-// check:$13 = {x = 1234.5}
-// debugger:print arg1
-// check:$14 = -9
-// debugger:print arg2
-// check:$15 = -10.5
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$13 = {x = 1234.5}
+// gdb-command:print arg1
+// gdb-check:$14 = -9
+// gdb-command:print arg2
+// gdb-check:$15 = -10.5
+// gdb-command:continue
 
 struct Struct<T> {
     x: T
diff --git a/src/test/debug-info/generic-static-method-on-struct-and-enum.rs b/src/test/debuginfo/generic-static-method-on-struct-and-enum.rs
index 224e7aaed21..82a9d708966 100644
--- a/src/test/debug-info/generic-static-method-on-struct-and-enum.rs
+++ b/src/test/debuginfo/generic-static-method-on-struct-and-enum.rs
@@ -11,26 +11,26 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STRUCT
-// debugger:finish
-// debugger:print arg1
-// check:$1 = 1
-// debugger:print arg2
-// check:$2 = 2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print arg1
+// gdb-check:$1 = 1
+// gdb-command:print arg2
+// gdb-check:$2 = 2
+// gdb-command:continue
 
 // ENUM
-// debugger:finish
-// debugger:print arg1
-// check:$3 = -3
-// debugger:print arg2
-// check:$4 = 4.5
-// debugger:print arg3
-// check:$5 = 5
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print arg1
+// gdb-check:$3 = -3
+// gdb-command:print arg2
+// gdb-check:$4 = 4.5
+// gdb-command:print arg3
+// gdb-check:$5 = 5
+// gdb-command:continue
 
 #![feature(struct_variant)]
 
diff --git a/src/test/debug-info/generic-struct-style-enum.rs b/src/test/debuginfo/generic-struct-style-enum.rs
index e32110a41f4..498d0981e35 100644
--- a/src/test/debug-info/generic-struct-style-enum.rs
+++ b/src/test/debuginfo/generic-struct-style-enum.rs
@@ -12,22 +12,22 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print union on
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print union on
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print case1
-// check:$1 = {{Case1, a = 0, b = 31868, c = 31868, d = 31868, e = 31868}, {Case1, a = 0, b = 2088533116, c = 2088533116}, {Case1, a = 0, b = 8970181431921507452}}
+// gdb-command:print case1
+// gdb-check:$1 = {{Case1, a = 0, b = 31868, c = 31868, d = 31868, e = 31868}, {Case1, a = 0, b = 2088533116, c = 2088533116}, {Case1, a = 0, b = 8970181431921507452}}
 
-// debugger:print case2
-// check:$2 = {{Case2, a = 0, b = 4369, c = 4369, d = 4369, e = 4369}, {Case2, a = 0, b = 286331153, c = 286331153}, {Case2, a = 0, b = 1229782938247303441}}
+// gdb-command:print case2
+// gdb-check:$2 = {{Case2, a = 0, b = 4369, c = 4369, d = 4369, e = 4369}, {Case2, a = 0, b = 286331153, c = 286331153}, {Case2, a = 0, b = 1229782938247303441}}
 
-// debugger:print case3
-// check:$3 = {{Case3, a = 0, b = 22873, c = 22873, d = 22873, e = 22873}, {Case3, a = 0, b = 1499027801, c = 1499027801}, {Case3, a = 0, b = 6438275382588823897}}
+// gdb-command:print case3
+// gdb-check:$3 = {{Case3, a = 0, b = 22873, c = 22873, d = 22873, e = 22873}, {Case3, a = 0, b = 1499027801, c = 1499027801}, {Case3, a = 0, b = 6438275382588823897}}
 
-// debugger:print univariant
-// check:$4 = {a = -1}
+// gdb-command:print univariant
+// gdb-check:$4 = {a = -1}
 
 #![feature(struct_variant)]
 
diff --git a/src/test/debug-info/generic-struct.rs b/src/test/debuginfo/generic-struct.rs
index 0fd491c55e2..69217f4b878 100644
--- a/src/test/debug-info/generic-struct.rs
+++ b/src/test/debuginfo/generic-struct.rs
@@ -11,18 +11,18 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print int_int
-// check:$1 = {key = 0, value = 1}
-// debugger:print int_float
-// check:$2 = {key = 2, value = 3.5}
-// debugger:print float_int
-// check:$3 = {key = 4.5, value = 5}
-// debugger:print float_int_float
-// check:$4 = {key = 6.5, value = {key = 7, value = 8.5}}
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print int_int
+// gdb-check:$1 = {key = 0, value = 1}
+// gdb-command:print int_float
+// gdb-check:$2 = {key = 2, value = 3.5}
+// gdb-command:print float_int
+// gdb-check:$3 = {key = 4.5, value = 5}
+// gdb-command:print float_int_float
+// gdb-check:$4 = {key = 6.5, value = {key = 7, value = 8.5}}
 
 struct AGenericStruct<TKey, TValue> {
     key: TKey,
diff --git a/src/test/debug-info/generic-trait-generic-static-default-method.rs b/src/test/debuginfo/generic-trait-generic-static-default-method.rs
index fbb1ef1a02a..904b22f5d49 100644
--- a/src/test/debug-info/generic-trait-generic-static-default-method.rs
+++ b/src/test/debuginfo/generic-trait-generic-static-default-method.rs
@@ -11,22 +11,22 @@
 // except according to those terms.
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print arg1
-// check:$1 = 1000
-// debugger:print *arg2
-// check:$2 = {1, 2.5}
-// debugger:continue
-
-// debugger:finish
-// debugger:print arg1
-// check:$3 = 2000
-// debugger:print *arg2
-// check:$4 = {3.5, {4, 5, 6}}
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print arg1
+// gdb-check:$1 = 1000
+// gdb-command:print *arg2
+// gdb-check:$2 = {1, 2.5}
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print arg1
+// gdb-check:$3 = 2000
+// gdb-command:print *arg2
+// gdb-check:$4 = {3.5, {4, 5, 6}}
+// gdb-command:continue
 
 
 struct Struct {
diff --git a/src/test/debug-info/generic-tuple-style-enum.rs b/src/test/debuginfo/generic-tuple-style-enum.rs
index 73a46c30b34..16a665ca8c6 100644
--- a/src/test/debug-info/generic-tuple-style-enum.rs
+++ b/src/test/debuginfo/generic-tuple-style-enum.rs
@@ -12,22 +12,22 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print union on
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print union on
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print case1
-// check:$1 = {{Case1, 0, 31868, 31868, 31868, 31868}, {Case1, 0, 2088533116, 2088533116}, {Case1, 0, 8970181431921507452}}
+// gdb-command:print case1
+// gdb-check:$1 = {{Case1, 0, 31868, 31868, 31868, 31868}, {Case1, 0, 2088533116, 2088533116}, {Case1, 0, 8970181431921507452}}
 
-// debugger:print case2
-// check:$2 = {{Case2, 0, 4369, 4369, 4369, 4369}, {Case2, 0, 286331153, 286331153}, {Case2, 0, 1229782938247303441}}
+// gdb-command:print case2
+// gdb-check:$2 = {{Case2, 0, 4369, 4369, 4369, 4369}, {Case2, 0, 286331153, 286331153}, {Case2, 0, 1229782938247303441}}
 
-// debugger:print case3
-// check:$3 = {{Case3, 0, 22873, 22873, 22873, 22873}, {Case3, 0, 1499027801, 1499027801}, {Case3, 0, 6438275382588823897}}
+// gdb-command:print case3
+// gdb-check:$3 = {{Case3, 0, 22873, 22873, 22873, 22873}, {Case3, 0, 1499027801, 1499027801}, {Case3, 0, 6438275382588823897}}
 
-// debugger:print univariant
-// check:$4 = {-1}
+// gdb-command:print univariant
+// gdb-check:$4 = {-1}
 
 
 // NOTE: This is a copy of the non-generic test case. The `Txx` type parameters have to be
diff --git a/src/test/debug-info/include_string.rs b/src/test/debuginfo/include_string.rs
index 6838af27728..1d544dd003b 100644
--- a/src/test/debug-info/include_string.rs
+++ b/src/test/debuginfo/include_string.rs
@@ -11,16 +11,16 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print string1.length
-// check:$1 = 48
-// debugger:print string2.length
-// check:$2 = 48
-// debugger:print string3.length
-// check:$3 = 48
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print string1.length
+// gdb-check:$1 = 48
+// gdb-command:print string2.length
+// gdb-check:$2 = 48
+// gdb-command:print string3.length
+// gdb-check:$3 = 48
+// gdb-command:continue
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/issue11600.rs b/src/test/debuginfo/issue11600.rs
index 83ad5c4c7fa..426a40bf8bd 100644
--- a/src/test/debug-info/issue11600.rs
+++ b/src/test/debuginfo/issue11600.rs
@@ -8,30 +8,23 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+// This test was actually never run before because commands were only parsed up to the first
+// function definition but the test relied on the function being above the commands. Ignore for now.
+// ignore-test
+
 fn main() {
     let args : ~[~str] = ::std::os::args();
     ::std::io::println(args[0]);
 }
 
-
 // ignore-android: FIXME(#10381)
 
 // This test case checks whether compile unit names are set correctly, so that the correct default
 // source file can be found.
 
 // compile-flags:-g
-// debugger:list
-// check:1[...]fn main() {
-// check:2[...]let args : ~[~str] = ::std::os::args();
-// check:3[...]::std::io::println(args[0]);
-// check:4[...]}
-
-// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
+// gdb-command:list
+// gdb-check:1[...]fn main() {
+// gdb-check:2[...]let args : ~[~str] = ::std::os::args();
+// gdb-check:3[...]::std::io::println(args[0]);
+// gdb-check:4[...]}
diff --git a/src/test/debug-info/issue12886.rs b/src/test/debuginfo/issue12886.rs
index 328ed54b5b2..3b152cd3c1a 100644
--- a/src/test/debug-info/issue12886.rs
+++ b/src/test/debuginfo/issue12886.rs
@@ -11,11 +11,11 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:break issue12886.rs:29
-// debugger:run
-// debugger:next
-// check:[...]30[...]s
-// debugger:continue
+// gdb-command:break issue12886.rs:29
+// gdb-command:run
+// gdb-command:next
+// gdb-check:[...]30[...]s
+// gdb-command:continue
 
 // IF YOU MODIFY THIS FILE, BE CAREFUL TO ADAPT THE LINE NUMBERS IN THE DEBUGGER COMMANDS
 
diff --git a/src/test/debug-info/issue13213.rs b/src/test/debuginfo/issue13213.rs
index a03b263a692..a03b263a692 100644
--- a/src/test/debug-info/issue13213.rs
+++ b/src/test/debuginfo/issue13213.rs
diff --git a/src/test/debug-info/issue7712.rs b/src/test/debuginfo/issue7712.rs
index 8308afce08e..8308afce08e 100644
--- a/src/test/debug-info/issue7712.rs
+++ b/src/test/debuginfo/issue7712.rs
diff --git a/src/test/debug-info/lexical-scope-in-for-loop.rs b/src/test/debuginfo/lexical-scope-in-for-loop.rs
index 75f1d779d01..0f6ac953179 100644
--- a/src/test/debug-info/lexical-scope-in-for-loop.rs
+++ b/src/test/debuginfo/lexical-scope-in-for-loop.rs
@@ -11,47 +11,47 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // FIRST ITERATION
-// debugger:finish
-// debugger:print x
-// check:$1 = 1
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = 1
+// gdb-command:continue
 
-// debugger:finish
-// debugger:print x
-// check:$2 = -1
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$2 = -1
+// gdb-command:continue
 
 // SECOND ITERATION
-// debugger:finish
-// debugger:print x
-// check:$3 = 2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 2
+// gdb-command:continue
 
-// debugger:finish
-// debugger:print x
-// check:$4 = -2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$4 = -2
+// gdb-command:continue
 
 // THIRD ITERATION
-// debugger:finish
-// debugger:print x
-// check:$5 = 3
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = 3
+// gdb-command:continue
 
-// debugger:finish
-// debugger:print x
-// check:$6 = -3
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$6 = -3
+// gdb-command:continue
 
 // AFTER LOOP
-// debugger:finish
-// debugger:print x
-// check:$7 = 1000000
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$7 = 1000000
+// gdb-command:continue
 
 fn main() {
 
diff --git a/src/test/debug-info/lexical-scope-in-if.rs b/src/test/debuginfo/lexical-scope-in-if.rs
index 712880d50f0..ef573735d0d 100644
--- a/src/test/debug-info/lexical-scope-in-if.rs
+++ b/src/test/debuginfo/lexical-scope-in-if.rs
@@ -11,72 +11,72 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // BEFORE if
-// debugger:finish
-// debugger:print x
-// check:$1 = 999
-// debugger:print y
-// check:$2 = -1
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = 999
+// gdb-command:print y
+// gdb-check:$2 = -1
+// gdb-command:continue
 
 // AT BEGINNING of 'then' block
-// debugger:finish
-// debugger:print x
-// check:$3 = 999
-// debugger:print y
-// check:$4 = -1
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 999
+// gdb-command:print y
+// gdb-check:$4 = -1
+// gdb-command:continue
 
 // AFTER 1st redeclaration of 'x'
-// debugger:finish
-// debugger:print x
-// check:$5 = 1001
-// debugger:print y
-// check:$6 = -1
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = 1001
+// gdb-command:print y
+// gdb-check:$6 = -1
+// gdb-command:continue
 
 // AFTER 2st redeclaration of 'x'
-// debugger:finish
-// debugger:print x
-// check:$7 = 1002
-// debugger:print y
-// check:$8 = 1003
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$7 = 1002
+// gdb-command:print y
+// gdb-check:$8 = 1003
+// gdb-command:continue
 
 // AFTER 1st if expression
-// debugger:finish
-// debugger:print x
-// check:$9 = 999
-// debugger:print y
-// check:$10 = -1
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$9 = 999
+// gdb-command:print y
+// gdb-check:$10 = -1
+// gdb-command:continue
 
 // BEGINNING of else branch
-// debugger:finish
-// debugger:print x
-// check:$11 = 999
-// debugger:print y
-// check:$12 = -1
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$11 = 999
+// gdb-command:print y
+// gdb-check:$12 = -1
+// gdb-command:continue
 
 // BEGINNING of else branch
-// debugger:finish
-// debugger:print x
-// check:$13 = 1004
-// debugger:print y
-// check:$14 = 1005
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$13 = 1004
+// gdb-command:print y
+// gdb-check:$14 = 1005
+// gdb-command:continue
 
 // BEGINNING of else branch
-// debugger:finish
-// debugger:print x
-// check:$15 = 999
-// debugger:print y
-// check:$16 = -1
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$15 = 999
+// gdb-command:print y
+// gdb-check:$16 = -1
+// gdb-command:continue
 
 fn main() {
 
diff --git a/src/test/debug-info/lexical-scope-in-match.rs b/src/test/debuginfo/lexical-scope-in-match.rs
index 041c8b5c13f..5f13c780ba8 100644
--- a/src/test/debug-info/lexical-scope-in-match.rs
+++ b/src/test/debuginfo/lexical-scope-in-match.rs
@@ -11,68 +11,68 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print shadowed
-// check:$1 = 231
-// debugger:print not_shadowed
-// check:$2 = 232
-// debugger:continue
-
-// debugger:finish
-// debugger:print shadowed
-// check:$3 = 233
-// debugger:print not_shadowed
-// check:$4 = 232
-// debugger:print local_to_arm
-// check:$5 = 234
-// debugger:continue
-
-// debugger:finish
-// debugger:print shadowed
-// check:$6 = 236
-// debugger:print not_shadowed
-// check:$7 = 232
-// debugger:continue
-
-// debugger:finish
-// debugger:print shadowed
-// check:$8 = 237
-// debugger:print not_shadowed
-// check:$9 = 232
-// debugger:print local_to_arm
-// check:$10 = 238
-// debugger:continue
-
-// debugger:finish
-// debugger:print shadowed
-// check:$11 = 239
-// debugger:print not_shadowed
-// check:$12 = 232
-// debugger:continue
-
-// debugger:finish
-// debugger:print shadowed
-// check:$13 = 241
-// debugger:print not_shadowed
-// check:$14 = 232
-// debugger:continue
-
-// debugger:finish
-// debugger:print shadowed
-// check:$15 = 243
-// debugger:print *local_to_arm
-// check:$16 = 244
-// debugger:continue
-
-// debugger:finish
-// debugger:print shadowed
-// check:$17 = 231
-// debugger:print not_shadowed
-// check:$18 = 232
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print shadowed
+// gdb-check:$1 = 231
+// gdb-command:print not_shadowed
+// gdb-check:$2 = 232
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print shadowed
+// gdb-check:$3 = 233
+// gdb-command:print not_shadowed
+// gdb-check:$4 = 232
+// gdb-command:print local_to_arm
+// gdb-check:$5 = 234
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print shadowed
+// gdb-check:$6 = 236
+// gdb-command:print not_shadowed
+// gdb-check:$7 = 232
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print shadowed
+// gdb-check:$8 = 237
+// gdb-command:print not_shadowed
+// gdb-check:$9 = 232
+// gdb-command:print local_to_arm
+// gdb-check:$10 = 238
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print shadowed
+// gdb-check:$11 = 239
+// gdb-command:print not_shadowed
+// gdb-check:$12 = 232
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print shadowed
+// gdb-check:$13 = 241
+// gdb-command:print not_shadowed
+// gdb-check:$14 = 232
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print shadowed
+// gdb-check:$15 = 243
+// gdb-command:print *local_to_arm
+// gdb-check:$16 = 244
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print shadowed
+// gdb-check:$17 = 231
+// gdb-command:print not_shadowed
+// gdb-check:$18 = 232
+// gdb-command:continue
 
 struct Struct {
     x: int,
diff --git a/src/test/debug-info/lexical-scope-in-parameterless-closure.rs b/src/test/debuginfo/lexical-scope-in-parameterless-closure.rs
index fd0a156b454..ad8f04d1fc7 100644
--- a/src/test/debug-info/lexical-scope-in-parameterless-closure.rs
+++ b/src/test/debuginfo/lexical-scope-in-parameterless-closure.rs
@@ -11,7 +11,7 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:--debuginfo=1
-// debugger:run
+// gdb-command:run
 
 // Nothing to do here really, just make sure it compiles. See issue #8513.
 fn main() {
diff --git a/src/test/debug-info/lexical-scope-in-stack-closure.rs b/src/test/debuginfo/lexical-scope-in-stack-closure.rs
index 41432c66386..c56cdbe0315 100644
--- a/src/test/debug-info/lexical-scope-in-stack-closure.rs
+++ b/src/test/debuginfo/lexical-scope-in-stack-closure.rs
@@ -11,38 +11,38 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print x
-// check:$1 = false
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$2 = false
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$3 = 1000
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$4 = 2.5
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$5 = true
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$6 = false
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = false
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$2 = false
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 1000
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$4 = 2.5
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = true
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$6 = false
+// gdb-command:continue
 
 fn main() {
 
diff --git a/src/test/debuginfo/lexical-scope-in-unconditional-loop.rs b/src/test/debuginfo/lexical-scope-in-unconditional-loop.rs
new file mode 100644
index 00000000000..12e95c4f9c7
--- /dev/null
+++ b/src/test/debuginfo/lexical-scope-in-unconditional-loop.rs
@@ -0,0 +1,127 @@
+// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// ignore-android: FIXME(#10381)
+
+// compile-flags:-g
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// FIRST ITERATION
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = 0
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$2 = 1
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 101
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$4 = 101
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = -987
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$6 = 101
+// gdb-command:continue
+
+
+// SECOND ITERATION
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$7 = 1
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$8 = 2
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$9 = 102
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$10 = 102
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$11 = -987
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$12 = 102
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$13 = 2
+// gdb-command:continue
+
+fn main() {
+
+    let mut x = 0;
+
+    loop {
+        if x >= 2 {
+            break;
+        }
+
+        zzz();
+        sentinel();
+
+        x += 1;
+        zzz();
+        sentinel();
+
+        // Shadow x
+        let x = x + 100;
+        zzz();
+        sentinel();
+
+        // open scope within loop's top level scope
+        {
+            zzz();
+            sentinel();
+
+            let x = -987;
+
+            zzz();
+            sentinel();
+        }
+
+        // Check that we get the x before the inner scope again
+        zzz();
+        sentinel();
+    }
+
+    zzz();
+    sentinel();
+}
+
+fn zzz() {()}
+fn sentinel() {()}
diff --git a/src/test/debug-info/lexical-scope-in-unique-closure.rs b/src/test/debuginfo/lexical-scope-in-unique-closure.rs
index e0ab21221e5..328910b0f13 100644
--- a/src/test/debug-info/lexical-scope-in-unique-closure.rs
+++ b/src/test/debuginfo/lexical-scope-in-unique-closure.rs
@@ -11,38 +11,38 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print x
-// check:$1 = false
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$2 = false
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$3 = 1000
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$4 = 2.5
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$5 = true
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$6 = false
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = false
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$2 = false
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 1000
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$4 = 2.5
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = true
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$6 = false
+// gdb-command:continue
 
 fn main() {
 
diff --git a/src/test/debuginfo/lexical-scope-in-while.rs b/src/test/debuginfo/lexical-scope-in-while.rs
new file mode 100644
index 00000000000..1b2a9f75182
--- /dev/null
+++ b/src/test/debuginfo/lexical-scope-in-while.rs
@@ -0,0 +1,123 @@
+// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// ignore-android: FIXME(#10381)
+
+// compile-flags:-g
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// FIRST ITERATION
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = 0
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$2 = 1
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 101
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$4 = 101
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = -987
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$6 = 101
+// gdb-command:continue
+
+
+// SECOND ITERATION
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$7 = 1
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$8 = 2
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$9 = 102
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$10 = 102
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$11 = -987
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$12 = 102
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$13 = 2
+// gdb-command:continue
+
+fn main() {
+
+    let mut x = 0;
+
+    while x < 2 {
+        zzz();
+        sentinel();
+
+        x += 1;
+        zzz();
+        sentinel();
+
+        // Shadow x
+        let x = x + 100;
+        zzz();
+        sentinel();
+
+        // open scope within loop's top level scope
+        {
+            zzz();
+            sentinel();
+
+            let x = -987;
+
+            zzz();
+            sentinel();
+        }
+
+        // Check that we get the x before the inner scope again
+        zzz();
+        sentinel();
+    }
+
+    zzz();
+    sentinel();
+}
+
+fn zzz() {()}
+fn sentinel() {()}
diff --git a/src/test/debug-info/lexical-scope-with-macro.rs b/src/test/debuginfo/lexical-scope-with-macro.rs
index 6cbaedfde65..3fb6f10fe33 100644
--- a/src/test/debug-info/lexical-scope-with-macro.rs
+++ b/src/test/debuginfo/lexical-scope-with-macro.rs
@@ -11,59 +11,59 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print a
-// check:$1 = 10
-// debugger:print b
-// check:$2 = 34
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$3 = 890242
-// debugger:print b
-// check:$4 = 34
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$5 = 10
-// debugger:print b
-// check:$6 = 34
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$7 = 102
-// debugger:print b
-// check:$8 = 34
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$9 = 110
-// debugger:print b
-// check:$10 = 34
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$11 = 10
-// debugger:print b
-// check:$12 = 34
-// debugger:continue
-
-// debugger:finish
-// debugger:print a
-// check:$13 = 10
-// debugger:print b
-// check:$14 = 34
-// debugger:print c
-// check:$15 = 400
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$1 = 10
+// gdb-command:print b
+// gdb-check:$2 = 34
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$3 = 890242
+// gdb-command:print b
+// gdb-check:$4 = 34
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$5 = 10
+// gdb-command:print b
+// gdb-check:$6 = 34
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$7 = 102
+// gdb-command:print b
+// gdb-check:$8 = 34
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$9 = 110
+// gdb-command:print b
+// gdb-check:$10 = 34
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$11 = 10
+// gdb-command:print b
+// gdb-check:$12 = 34
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$13 = 10
+// gdb-command:print b
+// gdb-check:$14 = 34
+// gdb-command:print c
+// gdb-check:$15 = 400
+// gdb-command:continue
 
 #![feature(macro_rules)]
 
diff --git a/src/test/debuginfo/lexical-scopes-in-block-expression.rs b/src/test/debuginfo/lexical-scopes-in-block-expression.rs
new file mode 100644
index 00000000000..41b88dc3e98
--- /dev/null
+++ b/src/test/debuginfo/lexical-scopes-in-block-expression.rs
@@ -0,0 +1,377 @@
+// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// ignore-win32: FIXME #13256
+// ignore-android: FIXME(#10381)
+
+// compile-flags:-g
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:print 'lexical-scopes-in-block-expression::MUT_INT'
+// gdb-check:$1 = 0
+
+// STRUCT EXPRESSION
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$2 = -1
+// gdb-command:print ten
+// gdb-check:$3 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$4 = 11
+// gdb-command:print 'lexical-scopes-in-block-expression::MUT_INT'
+// gdb-check:$5 = 1
+// gdb-command:print ten
+// gdb-check:$6 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$7 = -1
+// gdb-command:print ten
+// gdb-check:$8 = 10
+// gdb-command:continue
+
+// FUNCTION CALL
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$9 = -1
+// gdb-command:print ten
+// gdb-check:$10 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$11 = 12
+// gdb-command:print 'lexical-scopes-in-block-expression::MUT_INT'
+// gdb-check:$12 = 2
+// gdb-command:print ten
+// gdb-check:$13 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$14 = -1
+// gdb-command:print ten
+// gdb-check:$15 = 10
+// gdb-command:continue
+
+// TUPLE EXPRESSION
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$16 = -1
+// gdb-command:print ten
+// gdb-check:$17 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$18 = 13
+// gdb-command:print 'lexical-scopes-in-block-expression::MUT_INT'
+// gdb-check:$19 = 3
+// gdb-command:print ten
+// gdb-check:$20 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$21 = -1
+// gdb-command:print ten
+// gdb-check:$22 = 10
+// gdb-command:continue
+
+// VEC EXPRESSION
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$23 = -1
+// gdb-command:print ten
+// gdb-check:$24 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$25 = 14
+// gdb-command:print 'lexical-scopes-in-block-expression::MUT_INT'
+// gdb-check:$26 = 4
+// gdb-command:print ten
+// gdb-check:$27 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$28 = -1
+// gdb-command:print ten
+// gdb-check:$29 = 10
+// gdb-command:continue
+
+// REPEAT VEC EXPRESSION
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$30 = -1
+// gdb-command:print ten
+// gdb-check:$31 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$32 = 15
+// gdb-command:print 'lexical-scopes-in-block-expression::MUT_INT'
+// gdb-check:$33 = 5
+// gdb-command:print ten
+// gdb-check:$34 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$35 = -1
+// gdb-command:print ten
+// gdb-check:$36 = 10
+// gdb-command:continue
+
+// ASSIGNMENT EXPRESSION
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$37 = -1
+// gdb-command:print ten
+// gdb-check:$38 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$39 = 16
+// gdb-command:print 'lexical-scopes-in-block-expression::MUT_INT'
+// gdb-check:$40 = 6
+// gdb-command:print ten
+// gdb-check:$41 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$42 = -1
+// gdb-command:print ten
+// gdb-check:$43 = 10
+// gdb-command:continue
+
+
+// ARITHMETIC EXPRESSION
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$44 = -1
+// gdb-command:print ten
+// gdb-check:$45 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$46 = 17
+// gdb-command:print 'lexical-scopes-in-block-expression::MUT_INT'
+// gdb-check:$47 = 7
+// gdb-command:print ten
+// gdb-check:$48 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$49 = -1
+// gdb-command:print ten
+// gdb-check:$50 = 10
+// gdb-command:continue
+
+// INDEX EXPRESSION
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$51 = -1
+// gdb-command:print ten
+// gdb-check:$52 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$53 = 18
+// gdb-command:print 'lexical-scopes-in-block-expression::MUT_INT'
+// gdb-check:$54 = 8
+// gdb-command:print ten
+// gdb-check:$55 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print val
+// gdb-check:$56 = -1
+// gdb-command:print ten
+// gdb-check:$57 = 10
+// gdb-command:continue
+
+#![allow(unused_variable)]
+#![allow(dead_assignment)]
+
+static mut MUT_INT: int = 0;
+
+struct Point {
+    x: int,
+    y: int
+}
+
+fn a_function(x: int) -> int {
+    x + 1
+}
+
+fn main() {
+
+    let val = -1;
+    let ten = 10;
+
+    // surrounded by struct expression
+    let point = Point {
+        x: {
+            zzz();
+            sentinel();
+
+            let val = ten + 1;
+            unsafe {MUT_INT = 1;};
+
+            zzz();
+            sentinel();
+
+            val
+        },
+        y: 10
+    };
+
+    zzz();
+    sentinel();
+
+    // surrounded by function call
+    let _ = a_function({
+        zzz();
+        sentinel();
+
+        let val = ten + 2;
+        unsafe {MUT_INT = 2;};
+
+        zzz();
+        sentinel();
+
+        val
+    });
+
+    zzz();
+    sentinel();
+
+
+    // surrounded by tup
+    let _ = ({
+        zzz();
+        sentinel();
+
+        let val = ten + 3;
+        unsafe {MUT_INT = 3;};
+
+        zzz();
+        sentinel();
+
+        val
+    }, 0);
+
+    zzz();
+    sentinel();
+
+    // surrounded by vec
+    let _ = [{
+        zzz();
+        sentinel();
+
+        let val = ten + 4;
+        unsafe {MUT_INT = 4;};
+
+        zzz();
+        sentinel();
+
+        val
+    }, 0, 0];
+
+    zzz();
+    sentinel();
+
+    // surrounded by repeat vec
+    let _ = [{
+        zzz();
+        sentinel();
+
+        let val = ten + 5;
+        unsafe {MUT_INT = 5;};
+
+        zzz();
+        sentinel();
+
+        val
+    }, ..10];
+
+    zzz();
+    sentinel();
+
+    // assignment expression
+    let mut var = 0;
+    var = {
+        zzz();
+        sentinel();
+
+        let val = ten + 6;
+        unsafe {MUT_INT = 6;};
+
+        zzz();
+        sentinel();
+
+        val
+    };
+
+    zzz();
+    sentinel();
+
+    // arithmetic expression
+    var = 10 + -{
+        zzz();
+        sentinel();
+
+        let val = ten + 7;
+        unsafe {MUT_INT = 7;};
+
+        zzz();
+        sentinel();
+
+        val
+    } * 5;
+
+    zzz();
+    sentinel();
+
+    // index expression
+    let a_vector = [10, ..20];
+    let _ = a_vector[{
+        zzz();
+        sentinel();
+
+        let val = ten + 8;
+        unsafe {MUT_INT = 8;};
+
+        zzz();
+        sentinel();
+
+        val as uint
+    }];
+
+    zzz();
+    sentinel();
+}
+
+fn zzz() {()}
+fn sentinel() {()}
diff --git a/src/test/debug-info/limited-debuginfo.rs b/src/test/debuginfo/limited-debuginfo.rs
index 51d9aa75e07..616f312c078 100644
--- a/src/test/debug-info/limited-debuginfo.rs
+++ b/src/test/debuginfo/limited-debuginfo.rs
@@ -13,20 +13,20 @@
 // compile-flags:--debuginfo=1
 
 // Make sure functions have proper names
-// debugger:info functions
-// check:[...]void[...]main([...]);
-// check:[...]void[...]some_function([...]);
-// check:[...]void[...]some_other_function([...]);
-// check:[...]void[...]zzz([...]);
+// gdb-command:info functions
+// gdb-check:[...]void[...]main([...]);
+// gdb-check:[...]void[...]some_function([...]);
+// gdb-check:[...]void[...]some_other_function([...]);
+// gdb-check:[...]void[...]zzz([...]);
 
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // Make sure there is no information about locals
-// debugger:finish
-// debugger:info locals
-// check:No locals.
-// debugger:continue
+// gdb-command:finish
+// gdb-command:info locals
+// gdb-check:No locals.
+// gdb-command:continue
 
 
 #![allow(unused_variable)]
diff --git a/src/test/debug-info/managed-enum.rs b/src/test/debuginfo/managed-enum.rs
index a7fb3b3022e..7899e0c6a9b 100644
--- a/src/test/debug-info/managed-enum.rs
+++ b/src/test/debuginfo/managed-enum.rs
@@ -11,18 +11,18 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print the_a->val
-// check:$1 = {{TheA, x = 0, y = 8970181431921507452}, {TheA, 0, 2088533116, 2088533116}}
+// gdb-command:print the_a->val
+// gdb-check:$1 = {{TheA, x = 0, y = 8970181431921507452}, {TheA, 0, 2088533116, 2088533116}}
 
-// debugger:print the_b->val
-// check:$2 = {{TheB, x = 0, y = 1229782938247303441}, {TheB, 0, 286331153, 286331153}}
+// gdb-command:print the_b->val
+// gdb-check:$2 = {{TheB, x = 0, y = 1229782938247303441}, {TheB, 0, 286331153, 286331153}}
 
-// debugger:print univariant->val
-// check:$3 = {-9747455}
+// gdb-command:print univariant->val
+// gdb-check:$3 = {-9747455}
 
 #![allow(unused_variable)]
 #![feature(struct_variant, managed_boxes)]
diff --git a/src/test/debug-info/managed-pointer-within-unique-vec.rs b/src/test/debuginfo/managed-pointer-within-unique-vec.rs
index 45989fd0d2b..a2a0d171898 100644
--- a/src/test/debug-info/managed-pointer-within-unique-vec.rs
+++ b/src/test/debuginfo/managed-pointer-within-unique-vec.rs
@@ -13,21 +13,21 @@
 #![feature(managed_boxes)]
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print unique.ptr[0]->val
-// check:$1 = 10
+// gdb-command:print unique.ptr[0]->val
+// gdb-check:$1 = 10
 
-// debugger:print unique.ptr[1]->val
-// check:$2 = 11
+// gdb-command:print unique.ptr[1]->val
+// gdb-check:$2 = 11
 
-// debugger:print unique.ptr[2]->val
-// check:$3 = 12
+// gdb-command:print unique.ptr[2]->val
+// gdb-check:$3 = 12
 
-// debugger:print unique.ptr[3]->val
-// check:$4 = 13
+// gdb-command:print unique.ptr[3]->val
+// gdb-check:$4 = 13
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/managed-pointer-within-unique.rs b/src/test/debuginfo/managed-pointer-within-unique.rs
index 2207b3ef798..be2cc696d4f 100644
--- a/src/test/debug-info/managed-pointer-within-unique.rs
+++ b/src/test/debuginfo/managed-pointer-within-unique.rs
@@ -13,19 +13,19 @@
 #![feature(managed_boxes)]
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print *ordinary_unique
-// check:$1 = {-1, -2}
+// gdb-command:print *ordinary_unique
+// gdb-check:$1 = {-1, -2}
 
-// debugger:print managed_within_unique->x
-// check:$2 = -3
+// gdb-command:print managed_within_unique->x
+// gdb-check:$2 = -3
 
-// debugger:print managed_within_unique->y->val
-// check:$3 = -4
+// gdb-command:print managed_within_unique->y->val
+// gdb-check:$3 = -4
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/method-on-enum.rs b/src/test/debuginfo/method-on-enum.rs
index 9c8718a4295..1a5fac18a69 100644
--- a/src/test/debug-info/method-on-enum.rs
+++ b/src/test/debuginfo/method-on-enum.rs
@@ -11,58 +11,58 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STACK BY REF
-// debugger:finish
-// debugger:print *self
-// check:$1 = {{Variant2, [...]}, {Variant2, 117901063}}
-// debugger:print arg1
-// check:$2 = -1
-// debugger:print arg2
-// check:$3 = -2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$1 = {{Variant2, [...]}, {Variant2, 117901063}}
+// gdb-command:print arg1
+// gdb-check:$2 = -1
+// gdb-command:print arg2
+// gdb-check:$3 = -2
+// gdb-command:continue
 
 // STACK BY VAL
-// debugger:finish
-// debugger:print self
-// check:$4 = {{Variant2, [...]}, {Variant2, 117901063}}
-// debugger:print arg1
-// check:$5 = -3
-// debugger:print arg2
-// check:$6 = -4
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$4 = {{Variant2, [...]}, {Variant2, 117901063}}
+// gdb-command:print arg1
+// gdb-check:$5 = -3
+// gdb-command:print arg2
+// gdb-check:$6 = -4
+// gdb-command:continue
 
 // OWNED BY REF
-// debugger:finish
-// debugger:print *self
-// check:$7 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}}
-// debugger:print arg1
-// check:$8 = -5
-// debugger:print arg2
-// check:$9 = -6
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$7 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}}
+// gdb-command:print arg1
+// gdb-check:$8 = -5
+// gdb-command:print arg2
+// gdb-check:$9 = -6
+// gdb-command:continue
 
 // OWNED BY VAL
-// debugger:finish
-// debugger:print self
-// check:$10 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}}
-// debugger:print arg1
-// check:$11 = -7
-// debugger:print arg2
-// check:$12 = -8
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$10 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}}
+// gdb-command:print arg1
+// gdb-check:$11 = -7
+// gdb-command:print arg2
+// gdb-check:$12 = -8
+// gdb-command:continue
 
 // OWNED MOVED
-// debugger:finish
-// debugger:print *self
-// check:$13 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}}
-// debugger:print arg1
-// check:$14 = -9
-// debugger:print arg2
-// check:$15 = -10
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$13 = {{Variant1, x = 1799, y = 1799}, {Variant1, [...]}}
+// gdb-command:print arg1
+// gdb-check:$14 = -9
+// gdb-command:print arg2
+// gdb-check:$15 = -10
+// gdb-command:continue
 
 #![feature(struct_variant)]
 
diff --git a/src/test/debug-info/method-on-generic-struct.rs b/src/test/debuginfo/method-on-generic-struct.rs
index f2cdadd8aad..2f7b0c845ea 100644
--- a/src/test/debug-info/method-on-generic-struct.rs
+++ b/src/test/debuginfo/method-on-generic-struct.rs
@@ -11,58 +11,58 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STACK BY REF
-// debugger:finish
-// debugger:print *self
-// check:$1 = {x = {8888, -8888}}
-// debugger:print arg1
-// check:$2 = -1
-// debugger:print arg2
-// check:$3 = -2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$1 = {x = {8888, -8888}}
+// gdb-command:print arg1
+// gdb-check:$2 = -1
+// gdb-command:print arg2
+// gdb-check:$3 = -2
+// gdb-command:continue
 
 // STACK BY VAL
-// debugger:finish
-// debugger:print self
-// check:$4 = {x = {8888, -8888}}
-// debugger:print arg1
-// check:$5 = -3
-// debugger:print arg2
-// check:$6 = -4
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$4 = {x = {8888, -8888}}
+// gdb-command:print arg1
+// gdb-check:$5 = -3
+// gdb-command:print arg2
+// gdb-check:$6 = -4
+// gdb-command:continue
 
 // OWNED BY REF
-// debugger:finish
-// debugger:print *self
-// check:$7 = {x = 1234.5}
-// debugger:print arg1
-// check:$8 = -5
-// debugger:print arg2
-// check:$9 = -6
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$7 = {x = 1234.5}
+// gdb-command:print arg1
+// gdb-check:$8 = -5
+// gdb-command:print arg2
+// gdb-check:$9 = -6
+// gdb-command:continue
 
 // OWNED BY VAL
-// debugger:finish
-// debugger:print self
-// check:$10 = {x = 1234.5}
-// debugger:print arg1
-// check:$11 = -7
-// debugger:print arg2
-// check:$12 = -8
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$10 = {x = 1234.5}
+// gdb-command:print arg1
+// gdb-check:$11 = -7
+// gdb-command:print arg2
+// gdb-check:$12 = -8
+// gdb-command:continue
 
 // OWNED MOVED
-// debugger:finish
-// debugger:print *self
-// check:$13 = {x = 1234.5}
-// debugger:print arg1
-// check:$14 = -9
-// debugger:print arg2
-// check:$15 = -10
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$13 = {x = 1234.5}
+// gdb-command:print arg1
+// gdb-check:$14 = -9
+// gdb-command:print arg2
+// gdb-check:$15 = -10
+// gdb-command:continue
 
 struct Struct<T> {
     x: T
diff --git a/src/test/debug-info/method-on-struct.rs b/src/test/debuginfo/method-on-struct.rs
index dcd285b0a14..3d7cc96ca17 100644
--- a/src/test/debug-info/method-on-struct.rs
+++ b/src/test/debuginfo/method-on-struct.rs
@@ -11,58 +11,58 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STACK BY REF
-// debugger:finish
-// debugger:print *self
-// check:$1 = {x = 100}
-// debugger:print arg1
-// check:$2 = -1
-// debugger:print arg2
-// check:$3 = -2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$1 = {x = 100}
+// gdb-command:print arg1
+// gdb-check:$2 = -1
+// gdb-command:print arg2
+// gdb-check:$3 = -2
+// gdb-command:continue
 
 // STACK BY VAL
-// debugger:finish
-// debugger:print self
-// check:$4 = {x = 100}
-// debugger:print arg1
-// check:$5 = -3
-// debugger:print arg2
-// check:$6 = -4
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$4 = {x = 100}
+// gdb-command:print arg1
+// gdb-check:$5 = -3
+// gdb-command:print arg2
+// gdb-check:$6 = -4
+// gdb-command:continue
 
 // OWNED BY REF
-// debugger:finish
-// debugger:print *self
-// check:$7 = {x = 200}
-// debugger:print arg1
-// check:$8 = -5
-// debugger:print arg2
-// check:$9 = -6
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$7 = {x = 200}
+// gdb-command:print arg1
+// gdb-check:$8 = -5
+// gdb-command:print arg2
+// gdb-check:$9 = -6
+// gdb-command:continue
 
 // OWNED BY VAL
-// debugger:finish
-// debugger:print self
-// check:$10 = {x = 200}
-// debugger:print arg1
-// check:$11 = -7
-// debugger:print arg2
-// check:$12 = -8
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$10 = {x = 200}
+// gdb-command:print arg1
+// gdb-check:$11 = -7
+// gdb-command:print arg2
+// gdb-check:$12 = -8
+// gdb-command:continue
 
 // OWNED MOVED
-// debugger:finish
-// debugger:print *self
-// check:$13 = {x = 200}
-// debugger:print arg1
-// check:$14 = -9
-// debugger:print arg2
-// check:$15 = -10
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$13 = {x = 200}
+// gdb-command:print arg1
+// gdb-check:$14 = -9
+// gdb-command:print arg2
+// gdb-check:$15 = -10
+// gdb-command:continue
 
 struct Struct {
     x: int
diff --git a/src/test/debug-info/method-on-trait.rs b/src/test/debuginfo/method-on-trait.rs
index 6e1f8e6c72d..a2b73629a67 100644
--- a/src/test/debug-info/method-on-trait.rs
+++ b/src/test/debuginfo/method-on-trait.rs
@@ -11,58 +11,58 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STACK BY REF
-// debugger:finish
-// debugger:print *self
-// check:$1 = {x = 100}
-// debugger:print arg1
-// check:$2 = -1
-// debugger:print arg2
-// check:$3 = -2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$1 = {x = 100}
+// gdb-command:print arg1
+// gdb-check:$2 = -1
+// gdb-command:print arg2
+// gdb-check:$3 = -2
+// gdb-command:continue
 
 // STACK BY VAL
-// debugger:finish
-// debugger:print self
-// check:$4 = {x = 100}
-// debugger:print arg1
-// check:$5 = -3
-// debugger:print arg2
-// check:$6 = -4
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$4 = {x = 100}
+// gdb-command:print arg1
+// gdb-check:$5 = -3
+// gdb-command:print arg2
+// gdb-check:$6 = -4
+// gdb-command:continue
 
 // OWNED BY REF
-// debugger:finish
-// debugger:print *self
-// check:$7 = {x = 200}
-// debugger:print arg1
-// check:$8 = -5
-// debugger:print arg2
-// check:$9 = -6
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$7 = {x = 200}
+// gdb-command:print arg1
+// gdb-check:$8 = -5
+// gdb-command:print arg2
+// gdb-check:$9 = -6
+// gdb-command:continue
 
 // OWNED BY VAL
-// debugger:finish
-// debugger:print self
-// check:$10 = {x = 200}
-// debugger:print arg1
-// check:$11 = -7
-// debugger:print arg2
-// check:$12 = -8
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$10 = {x = 200}
+// gdb-command:print arg1
+// gdb-check:$11 = -7
+// gdb-command:print arg2
+// gdb-check:$12 = -8
+// gdb-command:continue
 
 // OWNED MOVED
-// debugger:finish
-// debugger:print *self
-// check:$13 = {x = 200}
-// debugger:print arg1
-// check:$14 = -9
-// debugger:print arg2
-// check:$15 = -10
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$13 = {x = 200}
+// gdb-command:print arg1
+// gdb-check:$14 = -9
+// gdb-command:print arg2
+// gdb-check:$15 = -10
+// gdb-command:continue
 
 struct Struct {
     x: int
diff --git a/src/test/debug-info/method-on-tuple-struct.rs b/src/test/debuginfo/method-on-tuple-struct.rs
index 184bee99d87..fe7271716bb 100644
--- a/src/test/debug-info/method-on-tuple-struct.rs
+++ b/src/test/debuginfo/method-on-tuple-struct.rs
@@ -11,58 +11,58 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STACK BY REF
-// debugger:finish
-// debugger:print *self
-// check:$1 = {100, -100.5}
-// debugger:print arg1
-// check:$2 = -1
-// debugger:print arg2
-// check:$3 = -2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$1 = {100, -100.5}
+// gdb-command:print arg1
+// gdb-check:$2 = -1
+// gdb-command:print arg2
+// gdb-check:$3 = -2
+// gdb-command:continue
 
 // STACK BY VAL
-// debugger:finish
-// debugger:print self
-// check:$4 = {100, -100.5}
-// debugger:print arg1
-// check:$5 = -3
-// debugger:print arg2
-// check:$6 = -4
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$4 = {100, -100.5}
+// gdb-command:print arg1
+// gdb-check:$5 = -3
+// gdb-command:print arg2
+// gdb-check:$6 = -4
+// gdb-command:continue
 
 // OWNED BY REF
-// debugger:finish
-// debugger:print *self
-// check:$7 = {200, -200.5}
-// debugger:print arg1
-// check:$8 = -5
-// debugger:print arg2
-// check:$9 = -6
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$7 = {200, -200.5}
+// gdb-command:print arg1
+// gdb-check:$8 = -5
+// gdb-command:print arg2
+// gdb-check:$9 = -6
+// gdb-command:continue
 
 // OWNED BY VAL
-// debugger:finish
-// debugger:print self
-// check:$10 = {200, -200.5}
-// debugger:print arg1
-// check:$11 = -7
-// debugger:print arg2
-// check:$12 = -8
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$10 = {200, -200.5}
+// gdb-command:print arg1
+// gdb-check:$11 = -7
+// gdb-command:print arg2
+// gdb-check:$12 = -8
+// gdb-command:continue
 
 // OWNED MOVED
-// debugger:finish
-// debugger:print *self
-// check:$13 = {200, -200.5}
-// debugger:print arg1
-// check:$14 = -9
-// debugger:print arg2
-// check:$15 = -10
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$13 = {200, -200.5}
+// gdb-command:print arg1
+// gdb-check:$14 = -9
+// gdb-command:print arg2
+// gdb-check:$15 = -10
+// gdb-command:continue
 
 struct TupleStruct(int, f64);
 
diff --git a/src/test/debug-info/multiple-functions-equal-var-names.rs b/src/test/debuginfo/multiple-functions-equal-var-names.rs
index 524974a0001..510718254d9 100644
--- a/src/test/debug-info/multiple-functions-equal-var-names.rs
+++ b/src/test/debuginfo/multiple-functions-equal-var-names.rs
@@ -11,22 +11,22 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// debugger:print abc
-// check:$1 = 10101
-// debugger:continue
-
-// debugger:finish
-// debugger:print abc
-// check:$2 = 20202
-// debugger:continue
-
-// debugger:finish
-// debugger:print abc
-// check:$3 = 30303
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print abc
+// gdb-check:$1 = 10101
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print abc
+// gdb-check:$2 = 20202
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print abc
+// gdb-check:$3 = 30303
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/multiple-functions.rs b/src/test/debuginfo/multiple-functions.rs
index c93fc8b9cf2..362a8a93dd1 100644
--- a/src/test/debug-info/multiple-functions.rs
+++ b/src/test/debuginfo/multiple-functions.rs
@@ -11,22 +11,22 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// debugger:print a
-// check:$1 = 10101
-// debugger:continue
-
-// debugger:finish
-// debugger:print b
-// check:$2 = 20202
-// debugger:continue
-
-// debugger:finish
-// debugger:print c
-// check:$3 = 30303
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print a
+// gdb-check:$1 = 10101
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print b
+// gdb-check:$2 = 20202
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print c
+// gdb-check:$3 = 30303
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/name-shadowing-and-scope-nesting.rs b/src/test/debuginfo/name-shadowing-and-scope-nesting.rs
index 97849bc438d..f967ced38ec 100644
--- a/src/test/debug-info/name-shadowing-and-scope-nesting.rs
+++ b/src/test/debuginfo/name-shadowing-and-scope-nesting.rs
@@ -11,50 +11,50 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print x
-// check:$1 = false
-// debugger:print y
-// check:$2 = true
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$3 = 10
-// debugger:print y
-// check:$4 = true
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$5 = 10.5
-// debugger:print y
-// check:$6 = 20
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$7 = true
-// debugger:print y
-// check:$8 = 2220
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$9 = 203203.5
-// debugger:print y
-// check:$10 = 2220
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$11 = 10.5
-// debugger:print y
-// check:$12 = 20
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = false
+// gdb-command:print y
+// gdb-check:$2 = true
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 10
+// gdb-command:print y
+// gdb-check:$4 = true
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = 10.5
+// gdb-command:print y
+// gdb-check:$6 = 20
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$7 = true
+// gdb-command:print y
+// gdb-check:$8 = 2220
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$9 = 203203.5
+// gdb-command:print y
+// gdb-check:$10 = 2220
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$11 = 10.5
+// gdb-command:print y
+// gdb-check:$12 = 20
+// gdb-command:continue
 
 fn main() {
     let x = false;
diff --git a/src/test/debug-info/nil-enum.rs b/src/test/debuginfo/nil-enum.rs
index 31bfaded88a..67c7eb30da6 100644
--- a/src/test/debug-info/nil-enum.rs
+++ b/src/test/debuginfo/nil-enum.rs
@@ -11,15 +11,15 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print first
-// check:$1 = {<No data fields>}
+// gdb-command:print first
+// gdb-check:$1 = {<No data fields>}
 
-// debugger:print second
-// check:$2 = {<No data fields>}
+// gdb-command:print second
+// gdb-check:$2 = {<No data fields>}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/option-like-enum.rs b/src/test/debuginfo/option-like-enum.rs
index b025b3a4a55..b60c9c4a4b9 100644
--- a/src/test/debug-info/option-like-enum.rs
+++ b/src/test/debuginfo/option-like-enum.rs
@@ -11,29 +11,29 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print some
-// check:$1 = {0x12345678}
+// gdb-command:print some
+// gdb-check:$1 = {0x12345678}
 
-// debugger:print none
-// check:$2 = {0x0}
+// gdb-command:print none
+// gdb-check:$2 = {0x0}
 
-// debugger:print full
-// check:$3 = {454545, 0x87654321, 9988}
+// gdb-command:print full
+// gdb-check:$3 = {454545, 0x87654321, 9988}
 
-// debugger:print empty->discr
-// check:$4 = (int *) 0x0
+// gdb-command:print empty->discr
+// gdb-check:$4 = (int *) 0x0
 
-// debugger:print droid
-// check:$5 = {id = 675675, range = 10000001, internals = 0x43218765}
+// gdb-command:print droid
+// gdb-check:$5 = {id = 675675, range = 10000001, internals = 0x43218765}
 
-// debugger:print void_droid->internals
-// check:$6 = (int *) 0x0
+// gdb-command:print void_droid->internals
+// gdb-check:$6 = (int *) 0x0
 
-// debugger:continue
+// gdb-command:continue
 
 #![feature(struct_variant)]
 
diff --git a/src/test/debug-info/packed-struct-with-destructor.rs b/src/test/debuginfo/packed-struct-with-destructor.rs
index 24216929101..29087b18d5a 100644
--- a/src/test/debug-info/packed-struct-with-destructor.rs
+++ b/src/test/debuginfo/packed-struct-with-destructor.rs
@@ -12,35 +12,35 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print packed
-// check:$1 = {x = 123, y = 234, z = 345}
+// gdb-command:print packed
+// gdb-check:$1 = {x = 123, y = 234, z = 345}
 
-// debugger:print packedInPacked
-// check:$2 = {a = 1111, b = {x = 2222, y = 3333, z = 4444}, c = 5555, d = {x = 6666, y = 7777, z = 8888}}
+// gdb-command:print packedInPacked
+// gdb-check:$2 = {a = 1111, b = {x = 2222, y = 3333, z = 4444}, c = 5555, d = {x = 6666, y = 7777, z = 8888}}
 
-// debugger:print packedInUnpacked
-// check:$3 = {a = -1111, b = {x = -2222, y = -3333, z = -4444}, c = -5555, d = {x = -6666, y = -7777, z = -8888}}
+// gdb-command:print packedInUnpacked
+// gdb-check:$3 = {a = -1111, b = {x = -2222, y = -3333, z = -4444}, c = -5555, d = {x = -6666, y = -7777, z = -8888}}
 
-// debugger:print unpackedInPacked
-// check:$4 = {a = 987, b = {x = 876, y = 765, z = 654}, c = {x = 543, y = 432, z = 321}, d = 210}
+// gdb-command:print unpackedInPacked
+// gdb-check:$4 = {a = 987, b = {x = 876, y = 765, z = 654}, c = {x = 543, y = 432, z = 321}, d = 210}
 
 
-// debugger:print packedInPackedWithDrop
-// check:$5 = {a = 11, b = {x = 22, y = 33, z = 44}, c = 55, d = {x = 66, y = 77, z = 88}}
+// gdb-command:print packedInPackedWithDrop
+// gdb-check:$5 = {a = 11, b = {x = 22, y = 33, z = 44}, c = 55, d = {x = 66, y = 77, z = 88}}
 
-// debugger:print packedInUnpackedWithDrop
-// check:$6 = {a = -11, b = {x = -22, y = -33, z = -44}, c = -55, d = {x = -66, y = -77, z = -88}}
+// gdb-command:print packedInUnpackedWithDrop
+// gdb-check:$6 = {a = -11, b = {x = -22, y = -33, z = -44}, c = -55, d = {x = -66, y = -77, z = -88}}
 
-// debugger:print unpackedInPackedWithDrop
-// check:$7 = {a = 98, b = {x = 87, y = 76, z = 65}, c = {x = 54, y = 43, z = 32}, d = 21}
+// gdb-command:print unpackedInPackedWithDrop
+// gdb-check:$7 = {a = 98, b = {x = 87, y = 76, z = 65}, c = {x = 54, y = 43, z = 32}, d = 21}
 
-// debugger:print deeplyNested
-// check:$8 = {a = {a = 1, b = {x = 2, y = 3, z = 4}, c = 5, d = {x = 6, y = 7, z = 8}}, b = {a = 9, b = {x = 10, y = 11, z = 12}, c = {x = 13, y = 14, z = 15}, d = 16}, c = {a = 17, b = {x = 18, y = 19, z = 20}, c = 21, d = {x = 22, y = 23, z = 24}}, d = {a = 25, b = {x = 26, y = 27, z = 28}, c = 29, d = {x = 30, y = 31, z = 32}}, e = {a = 33, b = {x = 34, y = 35, z = 36}, c = {x = 37, y = 38, z = 39}, d = 40}, f = {a = 41, b = {x = 42, y = 43, z = 44}, c = 45, d = {x = 46, y = 47, z = 48}}}
+// gdb-command:print deeplyNested
+// gdb-check:$8 = {a = {a = 1, b = {x = 2, y = 3, z = 4}, c = 5, d = {x = 6, y = 7, z = 8}}, b = {a = 9, b = {x = 10, y = 11, z = 12}, c = {x = 13, y = 14, z = 15}, d = 16}, c = {a = 17, b = {x = 18, y = 19, z = 20}, c = 21, d = {x = 22, y = 23, z = 24}}, d = {a = 25, b = {x = 26, y = 27, z = 28}, c = 29, d = {x = 30, y = 31, z = 32}}, e = {a = 33, b = {x = 34, y = 35, z = 36}, c = {x = 37, y = 38, z = 39}, d = 40}, f = {a = 41, b = {x = 42, y = 43, z = 44}, c = 45, d = {x = 46, y = 47, z = 48}}}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/packed-struct.rs b/src/test/debuginfo/packed-struct.rs
index 2b7df0083d6..bc8156c7385 100644
--- a/src/test/debug-info/packed-struct.rs
+++ b/src/test/debuginfo/packed-struct.rs
@@ -12,28 +12,28 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print packed
-// check:$1 = {x = 123, y = 234, z = 345}
+// gdb-command:print packed
+// gdb-check:$1 = {x = 123, y = 234, z = 345}
 
-// debugger:print packedInPacked
-// check:$2 = {a = 1111, b = {x = 2222, y = 3333, z = 4444}, c = 5555, d = {x = 6666, y = 7777, z = 8888}}
+// gdb-command:print packedInPacked
+// gdb-check:$2 = {a = 1111, b = {x = 2222, y = 3333, z = 4444}, c = 5555, d = {x = 6666, y = 7777, z = 8888}}
 
-// debugger:print packedInUnpacked
-// check:$3 = {a = -1111, b = {x = -2222, y = -3333, z = -4444}, c = -5555, d = {x = -6666, y = -7777, z = -8888}}
+// gdb-command:print packedInUnpacked
+// gdb-check:$3 = {a = -1111, b = {x = -2222, y = -3333, z = -4444}, c = -5555, d = {x = -6666, y = -7777, z = -8888}}
 
-// debugger:print unpackedInPacked
-// check:$4 = {a = 987, b = {x = 876, y = 765, z = 654, w = 543}, c = {x = 432, y = 321, z = 210, w = 109}, d = -98}
+// gdb-command:print unpackedInPacked
+// gdb-check:$4 = {a = 987, b = {x = 876, y = 765, z = 654, w = 543}, c = {x = 432, y = 321, z = 210, w = 109}, d = -98}
 
-// debugger:print sizeof(packed)
-// check:$5 = 14
+// gdb-command:print sizeof(packed)
+// gdb-check:$5 = 14
 
-// debugger:print sizeof(packedInPacked)
-// check:$6 = 40
+// gdb-command:print sizeof(packedInPacked)
+// gdb-check:$6 = 40
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/recursive-enum.rs b/src/test/debuginfo/recursive-enum.rs
index aea8ab1b2b8..68b6764a5a1 100644
--- a/src/test/debug-info/recursive-enum.rs
+++ b/src/test/debuginfo/recursive-enum.rs
@@ -11,7 +11,7 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:run
+// gdb-command:run
 
 // Test whether compiling a recursive enum definition crashes debug info generation. The test case
 // is taken from issue #11083.
diff --git a/src/test/debug-info/recursive-struct.rs b/src/test/debuginfo/recursive-struct.rs
index a46a1c248ff..8c2edbea0d4 100644
--- a/src/test/debug-info/recursive-struct.rs
+++ b/src/test/debuginfo/recursive-struct.rs
@@ -13,94 +13,94 @@
 #![feature(managed_boxes)]
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// debugger:print stack_unique.value
-// check:$1 = 0
-// debugger:print stack_unique.next.val->value
-// check:$2 = 1
-
-// debugger:print unique_unique->value
-// check:$3 = 2
-// debugger:print unique_unique->next.val->value
-// check:$4 = 3
-
-// debugger:print box_unique->val.value
-// check:$5 = 4
-// debugger:print box_unique->val.next.val->value
-// check:$6 = 5
-
-// debugger:print vec_unique[0].value
-// check:$7 = 6.5
-// debugger:print vec_unique[0].next.val->value
-// check:$8 = 7.5
-
-// debugger:print borrowed_unique->value
-// check:$9 = 8.5
-// debugger:print borrowed_unique->next.val->value
-// check:$10 = 9.5
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print stack_unique.value
+// gdb-check:$1 = 0
+// gdb-command:print stack_unique.next.val->value
+// gdb-check:$2 = 1
+
+// gdb-command:print unique_unique->value
+// gdb-check:$3 = 2
+// gdb-command:print unique_unique->next.val->value
+// gdb-check:$4 = 3
+
+// gdb-command:print box_unique->val.value
+// gdb-check:$5 = 4
+// gdb-command:print box_unique->val.next.val->value
+// gdb-check:$6 = 5
+
+// gdb-command:print vec_unique[0].value
+// gdb-check:$7 = 6.5
+// gdb-command:print vec_unique[0].next.val->value
+// gdb-check:$8 = 7.5
+
+// gdb-command:print borrowed_unique->value
+// gdb-check:$9 = 8.5
+// gdb-command:print borrowed_unique->next.val->value
+// gdb-check:$10 = 9.5
 
 // MANAGED
-// debugger:print stack_managed.value
-// check:$11 = 10
-// debugger:print stack_managed.next.val->val.value
-// check:$12 = 11
-
-// debugger:print unique_managed->value
-// check:$13 = 12
-// debugger:print unique_managed->next.val->val.value
-// check:$14 = 13
-
-// debugger:print box_managed->val.value
-// check:$15 = 14
-// debugger:print box_managed->val.next.val->val.value
-// check:$16 = 15
-
-// debugger:print vec_managed[0].value
-// check:$17 = 16.5
-// debugger:print vec_managed[0].next.val->val.value
-// check:$18 = 17.5
-
-// debugger:print borrowed_managed->value
-// check:$19 = 18.5
-// debugger:print borrowed_managed->next.val->val.value
-// check:$20 = 19.5
+// gdb-command:print stack_managed.value
+// gdb-check:$11 = 10
+// gdb-command:print stack_managed.next.val->val.value
+// gdb-check:$12 = 11
+
+// gdb-command:print unique_managed->value
+// gdb-check:$13 = 12
+// gdb-command:print unique_managed->next.val->val.value
+// gdb-check:$14 = 13
+
+// gdb-command:print box_managed->val.value
+// gdb-check:$15 = 14
+// gdb-command:print box_managed->val.next.val->val.value
+// gdb-check:$16 = 15
+
+// gdb-command:print vec_managed[0].value
+// gdb-check:$17 = 16.5
+// gdb-command:print vec_managed[0].next.val->val.value
+// gdb-check:$18 = 17.5
+
+// gdb-command:print borrowed_managed->value
+// gdb-check:$19 = 18.5
+// gdb-command:print borrowed_managed->next.val->val.value
+// gdb-check:$20 = 19.5
 
 // LONG CYCLE
-// debugger:print long_cycle1.value
-// check:$21 = 20
-// debugger:print long_cycle1.next->value
-// check:$22 = 21
-// debugger:print long_cycle1.next->next->value
-// check:$23 = 22
-// debugger:print long_cycle1.next->next->next->value
-// check:$24 = 23
-
-// debugger:print long_cycle2.value
-// check:$25 = 24
-// debugger:print long_cycle2.next->value
-// check:$26 = 25
-// debugger:print long_cycle2.next->next->value
-// check:$27 = 26
-
-// debugger:print long_cycle3.value
-// check:$28 = 27
-// debugger:print long_cycle3.next->value
-// check:$29 = 28
-
-// debugger:print long_cycle4.value
-// check:$30 = 29.5
-
-// debugger:print (*****long_cycle_w_anonymous_types).value
-// check:$31 = 30
-
-// debugger:print (*****((*****long_cycle_w_anonymous_types).next.val)).value
-// check:$32 = 31
-
-// debugger:continue
+// gdb-command:print long_cycle1.value
+// gdb-check:$21 = 20
+// gdb-command:print long_cycle1.next->value
+// gdb-check:$22 = 21
+// gdb-command:print long_cycle1.next->next->value
+// gdb-check:$23 = 22
+// gdb-command:print long_cycle1.next->next->next->value
+// gdb-check:$24 = 23
+
+// gdb-command:print long_cycle2.value
+// gdb-check:$25 = 24
+// gdb-command:print long_cycle2.next->value
+// gdb-check:$26 = 25
+// gdb-command:print long_cycle2.next->next->value
+// gdb-check:$27 = 26
+
+// gdb-command:print long_cycle3.value
+// gdb-check:$28 = 27
+// gdb-command:print long_cycle3.next->value
+// gdb-check:$29 = 28
+
+// gdb-command:print long_cycle4.value
+// gdb-check:$30 = 29.5
+
+// gdb-command:print (*****long_cycle_w_anonymous_types).value
+// gdb-check:$31 = 30
+
+// gdb-command:print (*****((*****long_cycle_w_anonymous_types).next.val)).value
+// gdb-check:$32 = 31
+
+// gdb-command:continue
 
 #![allow(unused_variable)]
 #![feature(struct_variant)]
diff --git a/src/test/debug-info/self-in-default-method.rs b/src/test/debuginfo/self-in-default-method.rs
index 194cfc77bf3..45cbcf094f4 100644
--- a/src/test/debug-info/self-in-default-method.rs
+++ b/src/test/debuginfo/self-in-default-method.rs
@@ -11,58 +11,58 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STACK BY REF
-// debugger:finish
-// debugger:print *self
-// check:$1 = {x = 100}
-// debugger:print arg1
-// check:$2 = -1
-// debugger:print arg2
-// check:$3 = -2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$1 = {x = 100}
+// gdb-command:print arg1
+// gdb-check:$2 = -1
+// gdb-command:print arg2
+// gdb-check:$3 = -2
+// gdb-command:continue
 
 // STACK BY VAL
-// debugger:finish
-// debugger:print self
-// check:$4 = {x = 100}
-// debugger:print arg1
-// check:$5 = -3
-// debugger:print arg2
-// check:$6 = -4
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$4 = {x = 100}
+// gdb-command:print arg1
+// gdb-check:$5 = -3
+// gdb-command:print arg2
+// gdb-check:$6 = -4
+// gdb-command:continue
 
 // OWNED BY REF
-// debugger:finish
-// debugger:print *self
-// check:$7 = {x = 200}
-// debugger:print arg1
-// check:$8 = -5
-// debugger:print arg2
-// check:$9 = -6
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$7 = {x = 200}
+// gdb-command:print arg1
+// gdb-check:$8 = -5
+// gdb-command:print arg2
+// gdb-check:$9 = -6
+// gdb-command:continue
 
 // OWNED BY VAL
-// debugger:finish
-// debugger:print self
-// check:$10 = {x = 200}
-// debugger:print arg1
-// check:$11 = -7
-// debugger:print arg2
-// check:$12 = -8
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$10 = {x = 200}
+// gdb-command:print arg1
+// gdb-check:$11 = -7
+// gdb-command:print arg2
+// gdb-check:$12 = -8
+// gdb-command:continue
 
 // OWNED MOVED
-// debugger:finish
-// debugger:print *self
-// check:$13 = {x = 200}
-// debugger:print arg1
-// check:$14 = -9
-// debugger:print arg2
-// check:$15 = -10
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$13 = {x = 200}
+// gdb-command:print arg1
+// gdb-check:$14 = -9
+// gdb-command:print arg2
+// gdb-check:$15 = -10
+// gdb-command:continue
 
 struct Struct {
     x: int
diff --git a/src/test/debug-info/self-in-generic-default-method.rs b/src/test/debuginfo/self-in-generic-default-method.rs
index 9e7504be15b..8ab3fd44203 100644
--- a/src/test/debug-info/self-in-generic-default-method.rs
+++ b/src/test/debuginfo/self-in-generic-default-method.rs
@@ -11,58 +11,58 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STACK BY REF
-// debugger:finish
-// debugger:print *self
-// check:$1 = {x = 987}
-// debugger:print arg1
-// check:$2 = -1
-// debugger:print/d arg2
-// check:$3 = -2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$1 = {x = 987}
+// gdb-command:print arg1
+// gdb-check:$2 = -1
+// gdb-command:print/d arg2
+// gdb-check:$3 = -2
+// gdb-command:continue
 
 // STACK BY VAL
-// debugger:finish
-// debugger:print self
-// check:$4 = {x = 987}
-// debugger:print arg1
-// check:$5 = -3
-// debugger:print arg2
-// check:$6 = -4
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$4 = {x = 987}
+// gdb-command:print arg1
+// gdb-check:$5 = -3
+// gdb-command:print arg2
+// gdb-check:$6 = -4
+// gdb-command:continue
 
 // OWNED BY REF
-// debugger:finish
-// debugger:print *self
-// check:$7 = {x = 879}
-// debugger:print arg1
-// check:$8 = -5
-// debugger:print arg2
-// check:$9 = -6
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$7 = {x = 879}
+// gdb-command:print arg1
+// gdb-check:$8 = -5
+// gdb-command:print arg2
+// gdb-check:$9 = -6
+// gdb-command:continue
 
 // OWNED BY VAL
-// debugger:finish
-// debugger:print self
-// check:$10 = {x = 879}
-// debugger:print arg1
-// check:$11 = -7
-// debugger:print arg2
-// check:$12 = -8
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print self
+// gdb-check:$10 = {x = 879}
+// gdb-command:print arg1
+// gdb-check:$11 = -7
+// gdb-command:print arg2
+// gdb-check:$12 = -8
+// gdb-command:continue
 
 // OWNED MOVED
-// debugger:finish
-// debugger:print *self
-// check:$13 = {x = 879}
-// debugger:print arg1
-// check:$14 = -9
-// debugger:print arg2
-// check:$15 = -10.5
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print *self
+// gdb-check:$13 = {x = 879}
+// gdb-command:print arg1
+// gdb-check:$14 = -9
+// gdb-command:print arg2
+// gdb-check:$15 = -10.5
+// gdb-command:continue
 
 struct Struct {
     x: int
diff --git a/src/test/debug-info/shadowed-argument.rs b/src/test/debuginfo/shadowed-argument.rs
index cd3934e2a29..129263c0f76 100644
--- a/src/test/debug-info/shadowed-argument.rs
+++ b/src/test/debuginfo/shadowed-argument.rs
@@ -11,29 +11,29 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print x
-// check:$1 = false
-// debugger:print y
-// check:$2 = true
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$3 = 10
-// debugger:print y
-// check:$4 = true
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$5 = 10.5
-// debugger:print y
-// check:$6 = 20
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = false
+// gdb-command:print y
+// gdb-check:$2 = true
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 10
+// gdb-command:print y
+// gdb-check:$4 = true
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = 10.5
+// gdb-command:print y
+// gdb-check:$6 = 20
+// gdb-command:continue
 
 fn a_function(x: bool, y: bool) {
     zzz();
diff --git a/src/test/debug-info/shadowed-variable.rs b/src/test/debuginfo/shadowed-variable.rs
index 99edb7001ed..825ecb9c0ca 100644
--- a/src/test/debug-info/shadowed-variable.rs
+++ b/src/test/debuginfo/shadowed-variable.rs
@@ -11,29 +11,29 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print x
-// check:$1 = false
-// debugger:print y
-// check:$2 = true
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$3 = 10
-// debugger:print y
-// check:$4 = true
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$5 = 10.5
-// debugger:print y
-// check:$6 = 20
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = false
+// gdb-command:print y
+// gdb-check:$2 = true
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 10
+// gdb-command:print y
+// gdb-check:$4 = true
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = 10.5
+// gdb-command:print y
+// gdb-check:$6 = 20
+// gdb-command:continue
 
 fn main() {
     let x = false;
diff --git a/src/test/debug-info/simd.rs b/src/test/debuginfo/simd.rs
index 98397277416..ff9618aa1f1 100644
--- a/src/test/debug-info/simd.rs
+++ b/src/test/debuginfo/simd.rs
@@ -11,34 +11,34 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
-// debugger:finish
-// debugger:print/d i8x16
-// check:$1 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
-// debugger:print/d i16x8
-// check:$2 = {16, 17, 18, 19, 20, 21, 22, 23}
-// debugger:print/d i32x4
-// check:$3 = {24, 25, 26, 27}
-// debugger:print/d i64x2
-// check:$4 = {28, 29}
+// gdb-command:finish
+// gdb-command:print/d i8x16
+// gdb-check:$1 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
+// gdb-command:print/d i16x8
+// gdb-check:$2 = {16, 17, 18, 19, 20, 21, 22, 23}
+// gdb-command:print/d i32x4
+// gdb-check:$3 = {24, 25, 26, 27}
+// gdb-command:print/d i64x2
+// gdb-check:$4 = {28, 29}
 
-// debugger:print/d u8x16
-// check:$5 = {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45}
-// debugger:print/d u16x8
-// check:$6 = {46, 47, 48, 49, 50, 51, 52, 53}
-// debugger:print/d u32x4
-// check:$7 = {54, 55, 56, 57}
-// debugger:print/d u64x2
-// check:$8 = {58, 59}
+// gdb-command:print/d u8x16
+// gdb-check:$5 = {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45}
+// gdb-command:print/d u16x8
+// gdb-check:$6 = {46, 47, 48, 49, 50, 51, 52, 53}
+// gdb-command:print/d u32x4
+// gdb-check:$7 = {54, 55, 56, 57}
+// gdb-command:print/d u64x2
+// gdb-check:$8 = {58, 59}
 
-// debugger:print f32x4
-// check:$9 = {60.5, 61.5, 62.5, 63.5}
-// debugger:print f64x2
-// check:$10 = {64.5, 65.5}
+// gdb-command:print f32x4
+// gdb-check:$9 = {60.5, 61.5, 62.5, 63.5}
+// gdb-command:print f64x2
+// gdb-check:$10 = {64.5, 65.5}
 
-// debugger:continue
+// gdb-command:continue
 
 #![allow(experimental)]
 #![allow(unused_variable)]
diff --git a/src/test/debug-info/simple-lexical-scope.rs b/src/test/debuginfo/simple-lexical-scope.rs
index 21ce21efc22..171e3eae659 100644
--- a/src/test/debug-info/simple-lexical-scope.rs
+++ b/src/test/debuginfo/simple-lexical-scope.rs
@@ -11,43 +11,43 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print x
-// check:$1 = false
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$2 = false
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$3 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$4 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$5 = 10.5
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$6 = 10
-// debugger:continue
-
-// debugger:finish
-// debugger:print x
-// check:$7 = false
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$1 = false
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$2 = false
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$3 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$4 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$5 = 10.5
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$6 = 10
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print x
+// gdb-check:$7 = false
+// gdb-command:continue
 
 
 fn main() {
diff --git a/src/test/debug-info/simple-struct.rs b/src/test/debuginfo/simple-struct.rs
index 2ac3b48f682..c1f0e2c1f9e 100644
--- a/src/test/debug-info/simple-struct.rs
+++ b/src/test/debuginfo/simple-struct.rs
@@ -12,68 +12,68 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
 
-// debugger:print 'simple-struct::NO_PADDING_16'
-// check:$1 = {x = 1000, y = -1001}
+// gdb-command:print 'simple-struct::NO_PADDING_16'
+// gdb-check:$1 = {x = 1000, y = -1001}
 
-// debugger:print 'simple-struct::NO_PADDING_32'
-// check:$2 = {x = 1, y = 2, z = 3}
+// gdb-command:print 'simple-struct::NO_PADDING_32'
+// gdb-check:$2 = {x = 1, y = 2, z = 3}
 
-// debugger:print 'simple-struct::NO_PADDING_64'
-// check:$3 = {x = 4, y = 5, z = 6}
+// gdb-command:print 'simple-struct::NO_PADDING_64'
+// gdb-check:$3 = {x = 4, y = 5, z = 6}
 
-// debugger:print 'simple-struct::NO_PADDING_163264'
-// check:$4 = {a = 7, b = 8, c = 9, d = 10}
+// gdb-command:print 'simple-struct::NO_PADDING_163264'
+// gdb-check:$4 = {a = 7, b = 8, c = 9, d = 10}
 
-// debugger:print 'simple-struct::INTERNAL_PADDING'
-// check:$5 = {x = 11, y = 12}
+// gdb-command:print 'simple-struct::INTERNAL_PADDING'
+// gdb-check:$5 = {x = 11, y = 12}
 
-// debugger:print 'simple-struct::PADDING_AT_END'
-// check:$6 = {x = 13, y = 14}
+// gdb-command:print 'simple-struct::PADDING_AT_END'
+// gdb-check:$6 = {x = 13, y = 14}
 
-// debugger:run
-// debugger:finish
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print no_padding16
-// check:$7 = {x = 10000, y = -10001}
+// gdb-command:print no_padding16
+// gdb-check:$7 = {x = 10000, y = -10001}
 
-// debugger:print no_padding32
-// check:$8 = {x = -10002, y = -10003.5, z = 10004}
+// gdb-command:print no_padding32
+// gdb-check:$8 = {x = -10002, y = -10003.5, z = 10004}
 
-// debugger:print no_padding64
-// check:$9 = {x = -10005.5, y = 10006, z = 10007}
+// gdb-command:print no_padding64
+// gdb-check:$9 = {x = -10005.5, y = 10006, z = 10007}
 
-// debugger:print no_padding163264
-// check:$10 = {a = -10008, b = 10009, c = 10010, d = 10011}
+// gdb-command:print no_padding163264
+// gdb-check:$10 = {a = -10008, b = 10009, c = 10010, d = 10011}
 
-// debugger:print internal_padding
-// check:$11 = {x = 10012, y = -10013}
+// gdb-command:print internal_padding
+// gdb-check:$11 = {x = 10012, y = -10013}
 
-// debugger:print padding_at_end
-// check:$12 = {x = -10014, y = 10015}
+// gdb-command:print padding_at_end
+// gdb-check:$12 = {x = -10014, y = 10015}
 
-// debugger:print 'simple-struct::NO_PADDING_16'
-// check:$13 = {x = 100, y = -101}
+// gdb-command:print 'simple-struct::NO_PADDING_16'
+// gdb-check:$13 = {x = 100, y = -101}
 
-// debugger:print 'simple-struct::NO_PADDING_32'
-// check:$14 = {x = -15, y = -16, z = 17}
+// gdb-command:print 'simple-struct::NO_PADDING_32'
+// gdb-check:$14 = {x = -15, y = -16, z = 17}
 
-// debugger:print 'simple-struct::NO_PADDING_64'
-// check:$15 = {x = -18, y = 19, z = 20}
+// gdb-command:print 'simple-struct::NO_PADDING_64'
+// gdb-check:$15 = {x = -18, y = 19, z = 20}
 
-// debugger:print 'simple-struct::NO_PADDING_163264'
-// check:$16 = {a = -21, b = 22, c = 23, d = 24}
+// gdb-command:print 'simple-struct::NO_PADDING_163264'
+// gdb-check:$16 = {a = -21, b = 22, c = 23, d = 24}
 
-// debugger:print 'simple-struct::INTERNAL_PADDING'
-// check:$17 = {x = 25, y = -26}
+// gdb-command:print 'simple-struct::INTERNAL_PADDING'
+// gdb-check:$17 = {x = 25, y = -26}
 
-// debugger:print 'simple-struct::PADDING_AT_END'
-// check:$18 = {x = -27, y = 28}
+// gdb-command:print 'simple-struct::PADDING_AT_END'
+// gdb-check:$18 = {x = -27, y = 28}
 
-// debugger:print inheriting
-// check:$19 = {a = 10019, b = -10020, x = -10016, y = -10017.5, z = 10018}
+// gdb-command:print inheriting
+// gdb-check:$19 = {a = 10019, b = -10020, x = -10016, y = -10017.5, z = 10018}
 
 
 #![feature(struct_inherit)];
diff --git a/src/test/debuginfo/simple-tuple.rs b/src/test/debuginfo/simple-tuple.rs
new file mode 100644
index 00000000000..9486ab2474e
--- /dev/null
+++ b/src/test/debuginfo/simple-tuple.rs
@@ -0,0 +1,113 @@
+// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// ignore-win32: FIXME #13256
+// ignore-android: FIXME(#10381)
+
+// compile-flags:-g
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+
+// gdb-command:print/d 'simple-tuple::NO_PADDING_8'
+// gdb-check:$1 = {-50, 50}
+// gdb-command:print 'simple-tuple::NO_PADDING_16'
+// gdb-check:$2 = {-1, 2, 3}
+// gdb-command:print 'simple-tuple::NO_PADDING_32'
+// gdb-check:$3 = {4, 5, 6}
+// gdb-command:print 'simple-tuple::NO_PADDING_64'
+// gdb-check:$4 = {7, 8, 9}
+
+// gdb-command:print 'simple-tuple::INTERNAL_PADDING_1'
+// gdb-check:$5 = {10, 11}
+// gdb-command:print 'simple-tuple::INTERNAL_PADDING_2'
+// gdb-check:$6 = {12, 13, 14, 15}
+
+// gdb-command:print 'simple-tuple::PADDING_AT_END'
+// gdb-check:$7 = {16, 17}
+
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print/d noPadding8
+// gdb-check:$8 = {-100, 100}
+// gdb-command:print noPadding16
+// gdb-check:$9 = {0, 1, 2}
+// gdb-command:print noPadding32
+// gdb-check:$10 = {3, 4.5, 5}
+// gdb-command:print noPadding64
+// gdb-check:$11 = {6, 7.5, 8}
+
+// gdb-command:print internalPadding1
+// gdb-check:$12 = {9, 10}
+// gdb-command:print internalPadding2
+// gdb-check:$13 = {11, 12, 13, 14}
+
+// gdb-command:print paddingAtEnd
+// gdb-check:$14 = {15, 16}
+
+// gdb-command:print/d 'simple-tuple::NO_PADDING_8'
+// gdb-check:$15 = {-127, 127}
+// gdb-command:print 'simple-tuple::NO_PADDING_16'
+// gdb-check:$16 = {-10, 10, 9}
+// gdb-command:print 'simple-tuple::NO_PADDING_32'
+// gdb-check:$17 = {14, 15, 16}
+// gdb-command:print 'simple-tuple::NO_PADDING_64'
+// gdb-check:$18 = {17, 18, 19}
+
+// gdb-command:print 'simple-tuple::INTERNAL_PADDING_1'
+// gdb-check:$19 = {110, 111}
+// gdb-command:print 'simple-tuple::INTERNAL_PADDING_2'
+// gdb-check:$20 = {112, 113, 114, 115}
+
+// gdb-command:print 'simple-tuple::PADDING_AT_END'
+// gdb-check:$21 = {116, 117}
+
+#![allow(unused_variable)]
+#![allow(dead_code)]
+
+static mut NO_PADDING_8: (i8, u8) = (-50, 50);
+static mut NO_PADDING_16: (i16, i16, u16) = (-1, 2, 3);
+
+static mut NO_PADDING_32: (i32, f32, u32) = (4, 5.0, 6);
+static mut NO_PADDING_64: (i64, f64, u64) = (7, 8.0, 9);
+
+static mut INTERNAL_PADDING_1: (i16, i32) = (10, 11);
+static mut INTERNAL_PADDING_2: (i16, i32, u32, u64) = (12, 13, 14, 15);
+
+static mut PADDING_AT_END: (i32, i16) = (16, 17);
+
+fn main() {
+    let noPadding8: (i8, u8) = (-100, 100);
+    let noPadding16: (i16, i16, u16) = (0, 1, 2);
+    let noPadding32: (i32, f32, u32) = (3, 4.5, 5);
+    let noPadding64: (i64, f64, u64) = (6, 7.5, 8);
+
+    let internalPadding1: (i16, i32) = (9, 10);
+    let internalPadding2: (i16, i32, u32, u64) = (11, 12, 13, 14);
+
+    let paddingAtEnd: (i32, i16) = (15, 16);
+
+    unsafe {
+        NO_PADDING_8 = (-127, 127);
+        NO_PADDING_16 = (-10, 10, 9);
+
+        NO_PADDING_32 = (14, 15.0, 16);
+        NO_PADDING_64 = (17, 18.0, 19);
+
+        INTERNAL_PADDING_1 = (110, 111);
+        INTERNAL_PADDING_2 = (112, 113, 114, 115);
+
+        PADDING_AT_END = (116, 117);
+    }
+
+    zzz();
+}
+
+fn zzz() {()}
diff --git a/src/test/debug-info/static-method-on-struct-and-enum.rs b/src/test/debuginfo/static-method-on-struct-and-enum.rs
index 68bc470e6b1..d7d962c07d6 100644
--- a/src/test/debug-info/static-method-on-struct-and-enum.rs
+++ b/src/test/debuginfo/static-method-on-struct-and-enum.rs
@@ -11,26 +11,26 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
+// gdb-command:rbreak zzz
+// gdb-command:run
 
 // STRUCT
-// debugger:finish
-// debugger:print arg1
-// check:$1 = 1
-// debugger:print arg2
-// check:$2 = 2
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print arg1
+// gdb-check:$1 = 1
+// gdb-command:print arg2
+// gdb-check:$2 = 2
+// gdb-command:continue
 
 // ENUM
-// debugger:finish
-// debugger:print arg1
-// check:$3 = -3
-// debugger:print arg2
-// check:$4 = 4.5
-// debugger:print arg3
-// check:$5 = 5
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print arg1
+// gdb-check:$3 = -3
+// gdb-command:print arg2
+// gdb-check:$4 = 4.5
+// gdb-command:print arg3
+// gdb-check:$5 = 5
+// gdb-command:continue
 
 #![feature(struct_variant)]
 
diff --git a/src/test/debug-info/struct-in-enum.rs b/src/test/debuginfo/struct-in-enum.rs
index 9b3931428bb..ee971d71cfc 100644
--- a/src/test/debug-info/struct-in-enum.rs
+++ b/src/test/debuginfo/struct-in-enum.rs
@@ -12,19 +12,19 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print union on
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print union on
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print case1
-// check:$1 = {{Case1, 0, {x = 2088533116, y = 2088533116, z = 31868}}, {Case1, 0, 8970181431921507452, 31868}}
+// gdb-command:print case1
+// gdb-check:$1 = {{Case1, 0, {x = 2088533116, y = 2088533116, z = 31868}}, {Case1, 0, 8970181431921507452, 31868}}
 
-// debugger:print case2
-// check:$2 = {{Case2, 0, {x = 286331153, y = 286331153, z = 4369}}, {Case2, 0, 1229782938247303441, 4369}}
+// gdb-command:print case2
+// gdb-check:$2 = {{Case2, 0, {x = 286331153, y = 286331153, z = 4369}}, {Case2, 0, 1229782938247303441, 4369}}
 
-// debugger:print univariant
-// check:$3 = {{x = 123, y = 456, z = 789}}
+// gdb-command:print univariant
+// gdb-check:$3 = {{x = 123, y = 456, z = 789}}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/struct-in-struct.rs b/src/test/debuginfo/struct-in-struct.rs
index 182fb3d0965..e4c3f471880 100644
--- a/src/test/debug-info/struct-in-struct.rs
+++ b/src/test/debuginfo/struct-in-struct.rs
@@ -11,19 +11,19 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print three_simple_structs
-// check:$1 = {x = {x = 1}, y = {x = 2}, z = {x = 3}}
+// gdb-command:print three_simple_structs
+// gdb-check:$1 = {x = {x = 1}, y = {x = 2}, z = {x = 3}}
 
-// debugger:print internal_padding_parent
-// check:$2 = {x = {x = 4, y = 5}, y = {x = 6, y = 7}, z = {x = 8, y = 9}}
+// gdb-command:print internal_padding_parent
+// gdb-check:$2 = {x = {x = 4, y = 5}, y = {x = 6, y = 7}, z = {x = 8, y = 9}}
 
-// debugger:print padding_at_end_parent
-// check:$3 = {x = {x = 10, y = 11}, y = {x = 12, y = 13}, z = {x = 14, y = 15}}
+// gdb-command:print padding_at_end_parent
+// gdb-check:$3 = {x = {x = 10, y = 11}, y = {x = 12, y = 13}, z = {x = 14, y = 15}}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/struct-style-enum.rs b/src/test/debuginfo/struct-style-enum.rs
index cb68245a48e..1a51db1a005 100644
--- a/src/test/debug-info/struct-style-enum.rs
+++ b/src/test/debuginfo/struct-style-enum.rs
@@ -12,22 +12,22 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print union on
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print union on
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print case1
-// check:$1 = {{Case1, a = 0, b = 31868, c = 31868, d = 31868, e = 31868}, {Case1, a = 0, b = 2088533116, c = 2088533116}, {Case1, a = 0, b = 8970181431921507452}}
+// gdb-command:print case1
+// gdb-check:$1 = {{Case1, a = 0, b = 31868, c = 31868, d = 31868, e = 31868}, {Case1, a = 0, b = 2088533116, c = 2088533116}, {Case1, a = 0, b = 8970181431921507452}}
 
-// debugger:print case2
-// check:$2 = {{Case2, a = 0, b = 4369, c = 4369, d = 4369, e = 4369}, {Case2, a = 0, b = 286331153, c = 286331153}, {Case2, a = 0, b = 1229782938247303441}}
+// gdb-command:print case2
+// gdb-check:$2 = {{Case2, a = 0, b = 4369, c = 4369, d = 4369, e = 4369}, {Case2, a = 0, b = 286331153, c = 286331153}, {Case2, a = 0, b = 1229782938247303441}}
 
-// debugger:print case3
-// check:$3 = {{Case3, a = 0, b = 22873, c = 22873, d = 22873, e = 22873}, {Case3, a = 0, b = 1499027801, c = 1499027801}, {Case3, a = 0, b = 6438275382588823897}}
+// gdb-command:print case3
+// gdb-check:$3 = {{Case3, a = 0, b = 22873, c = 22873, d = 22873, e = 22873}, {Case3, a = 0, b = 1499027801, c = 1499027801}, {Case3, a = 0, b = 6438275382588823897}}
 
-// debugger:print univariant
-// check:$4 = {a = -1}
+// gdb-command:print univariant
+// gdb-check:$4 = {a = -1}
 
 #![allow(unused_variable)]
 #![feature(struct_variant)]
diff --git a/src/test/debug-info/struct-with-destructor.rs b/src/test/debuginfo/struct-with-destructor.rs
index ae439611c40..16fbfc49d08 100644
--- a/src/test/debug-info/struct-with-destructor.rs
+++ b/src/test/debuginfo/struct-with-destructor.rs
@@ -11,20 +11,20 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print simple
-// check:$1 = {x = 10, y = 20}
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print simple
+// gdb-check:$1 = {x = 10, y = 20}
 
-// debugger:print noDestructor
-// check:$2 = {a = {x = 10, y = 20}, guard = -1}
+// gdb-command:print noDestructor
+// gdb-check:$2 = {a = {x = 10, y = 20}, guard = -1}
 
-// debugger:print withDestructor
-// check:$3 = {a = {x = 10, y = 20}, guard = -1}
+// gdb-command:print withDestructor
+// gdb-check:$3 = {a = {x = 10, y = 20}, guard = -1}
 
-// debugger:print nested
-// check:$4 = {a = {a = {x = 7890, y = 9870}}}
+// gdb-command:print nested
+// gdb-check:$4 = {a = {a = {x = 7890, y = 9870}}}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/text-to-include-1.txt b/src/test/debuginfo/text-to-include-1.txt
index ba055272a3f..ba055272a3f 100644
--- a/src/test/debug-info/text-to-include-1.txt
+++ b/src/test/debuginfo/text-to-include-1.txt
diff --git a/src/test/debug-info/text-to-include-2.txt b/src/test/debuginfo/text-to-include-2.txt
index a2caa5e7141..a2caa5e7141 100644
--- a/src/test/debug-info/text-to-include-2.txt
+++ b/src/test/debuginfo/text-to-include-2.txt
diff --git a/src/test/debug-info/text-to-include-3.txt b/src/test/debuginfo/text-to-include-3.txt
index 9933e6c1b0b..9933e6c1b0b 100644
--- a/src/test/debug-info/text-to-include-3.txt
+++ b/src/test/debuginfo/text-to-include-3.txt
diff --git a/src/test/debug-info/trait-generic-static-default-method.rs b/src/test/debuginfo/trait-generic-static-default-method.rs
index 169c84ef28f..e91cd2f02d4 100644
--- a/src/test/debug-info/trait-generic-static-default-method.rs
+++ b/src/test/debuginfo/trait-generic-static-default-method.rs
@@ -11,22 +11,22 @@
 // except according to those terms.
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-
-// debugger:finish
-// debugger:print arg1
-// check:$1 = 1000
-// debugger:print arg2
-// check:$2 = 0.5
-// debugger:continue
-
-// debugger:finish
-// debugger:print arg1
-// check:$3 = 2000
-// debugger:print *arg2
-// check:$4 = {1, 2, 3}
-// debugger:continue
+// gdb-command:rbreak zzz
+// gdb-command:run
+
+// gdb-command:finish
+// gdb-command:print arg1
+// gdb-check:$1 = 1000
+// gdb-command:print arg2
+// gdb-check:$2 = 0.5
+// gdb-command:continue
+
+// gdb-command:finish
+// gdb-command:print arg1
+// gdb-check:$3 = 2000
+// gdb-command:print *arg2
+// gdb-check:$4 = {1, 2, 3}
+// gdb-command:continue
 
 
 struct Struct {
diff --git a/src/test/debug-info/trait-pointers.rs b/src/test/debuginfo/trait-pointers.rs
index fcb0f6082a3..e58ed4cea29 100644
--- a/src/test/debug-info/trait-pointers.rs
+++ b/src/test/debuginfo/trait-pointers.rs
@@ -11,7 +11,7 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:run
+// gdb-command:run
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/tuple-in-struct.rs b/src/test/debuginfo/tuple-in-struct.rs
index 242f59ad4de..b38d3547f8c 100644
--- a/src/test/debug-info/tuple-in-struct.rs
+++ b/src/test/debuginfo/tuple-in-struct.rs
@@ -11,35 +11,35 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// debugger:print no_padding1
-// check:$1 = {x = {0, 1}, y = 2, z = {3, 4, 5}}
-// debugger:print no_padding2
-// check:$2 = {x = {6, 7}, y = {{8, 9}, 10}}
-
-// debugger:print tuple_internal_padding
-// check:$3 = {x = {11, 12}, y = {13, 14}}
-// debugger:print struct_internal_padding
-// check:$4 = {x = {15, 16}, y = {17, 18}}
-// debugger:print both_internally_padded
-// check:$5 = {x = {19, 20, 21}, y = {22, 23}}
-
-// debugger:print single_tuple
-// check:$6 = {x = {24, 25, 26}}
-
-// debugger:print tuple_padded_at_end
-// check:$7 = {x = {27, 28}, y = {29, 30}}
-// debugger:print struct_padded_at_end
-// check:$8 = {x = {31, 32}, y = {33, 34}}
-// debugger:print both_padded_at_end
-// check:$9 = {x = {35, 36, 37}, y = {38, 39}}
-
-// debugger:print mixed_padding
-// check:$10 = {x = {{40, 41, 42}, {43, 44}}, y = {45, 46, 47, 48}}
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print no_padding1
+// gdb-check:$1 = {x = {0, 1}, y = 2, z = {3, 4, 5}}
+// gdb-command:print no_padding2
+// gdb-check:$2 = {x = {6, 7}, y = {{8, 9}, 10}}
+
+// gdb-command:print tuple_internal_padding
+// gdb-check:$3 = {x = {11, 12}, y = {13, 14}}
+// gdb-command:print struct_internal_padding
+// gdb-check:$4 = {x = {15, 16}, y = {17, 18}}
+// gdb-command:print both_internally_padded
+// gdb-check:$5 = {x = {19, 20, 21}, y = {22, 23}}
+
+// gdb-command:print single_tuple
+// gdb-check:$6 = {x = {24, 25, 26}}
+
+// gdb-command:print tuple_padded_at_end
+// gdb-check:$7 = {x = {27, 28}, y = {29, 30}}
+// gdb-command:print struct_padded_at_end
+// gdb-check:$8 = {x = {31, 32}, y = {33, 34}}
+// gdb-command:print both_padded_at_end
+// gdb-check:$9 = {x = {35, 36, 37}, y = {38, 39}}
+
+// gdb-command:print mixed_padding
+// gdb-check:$10 = {x = {{40, 41, 42}, {43, 44}}, y = {45, 46, 47, 48}}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/tuple-in-tuple.rs b/src/test/debuginfo/tuple-in-tuple.rs
index 1008af246a0..3cc8b4e6486 100644
--- a/src/test/debug-info/tuple-in-tuple.rs
+++ b/src/test/debuginfo/tuple-in-tuple.rs
@@ -11,27 +11,27 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// debugger:print no_padding1
-// check:$1 = {{0, 1}, 2, 3}
-// debugger:print no_padding2
-// check:$2 = {4, {5, 6}, 7}
-// debugger:print no_padding3
-// check:$3 = {8, 9, {10, 11}}
-
-// debugger:print internal_padding1
-// check:$4 = {12, {13, 14}}
-// debugger:print internal_padding2
-// check:$5 = {15, {16, 17}}
-
-// debugger:print padding_at_end1
-// check:$6 = {18, {19, 20}}
-// debugger:print padding_at_end2
-// check:$7 = {{21, 22}, 23}
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print no_padding1
+// gdb-check:$1 = {{0, 1}, 2, 3}
+// gdb-command:print no_padding2
+// gdb-check:$2 = {4, {5, 6}, 7}
+// gdb-command:print no_padding3
+// gdb-check:$3 = {8, 9, {10, 11}}
+
+// gdb-command:print internal_padding1
+// gdb-check:$4 = {12, {13, 14}}
+// gdb-command:print internal_padding2
+// gdb-check:$5 = {15, {16, 17}}
+
+// gdb-command:print padding_at_end1
+// gdb-check:$6 = {18, {19, 20}}
+// gdb-command:print padding_at_end2
+// gdb-check:$7 = {{21, 22}, 23}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/tuple-struct.rs b/src/test/debuginfo/tuple-struct.rs
index eae0d0be608..cea063820b8 100644
--- a/src/test/debug-info/tuple-struct.rs
+++ b/src/test/debuginfo/tuple-struct.rs
@@ -11,28 +11,28 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print no_padding16
-// check:$1 = {10000, -10001}
+// gdb-command:print no_padding16
+// gdb-check:$1 = {10000, -10001}
 
-// debugger:print no_padding32
-// check:$2 = {-10002, -10003.5, 10004}
+// gdb-command:print no_padding32
+// gdb-check:$2 = {-10002, -10003.5, 10004}
 
-// debugger:print no_padding64
-// check:$3 = {-10005.5, 10006, 10007}
+// gdb-command:print no_padding64
+// gdb-check:$3 = {-10005.5, 10006, 10007}
 
-// debugger:print no_padding163264
-// check:$4 = {-10008, 10009, 10010, 10011}
+// gdb-command:print no_padding163264
+// gdb-check:$4 = {-10008, 10009, 10010, 10011}
 
-// debugger:print internal_padding
-// check:$5 = {10012, -10013}
+// gdb-command:print internal_padding
+// gdb-check:$5 = {10012, -10013}
 
-// debugger:print padding_at_end
-// check:$6 = {-10014, 10015}
+// gdb-command:print padding_at_end
+// gdb-check:$6 = {-10014, 10015}
 
 
 // This test case mainly makes sure that no field names are generated for tuple structs (as opposed
diff --git a/src/test/debug-info/tuple-style-enum.rs b/src/test/debuginfo/tuple-style-enum.rs
index 176e4b0a69f..dc922b45005 100644
--- a/src/test/debug-info/tuple-style-enum.rs
+++ b/src/test/debuginfo/tuple-style-enum.rs
@@ -12,22 +12,22 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print union on
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:set print union on
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print case1
-// check:$1 = {{Case1, 0, 31868, 31868, 31868, 31868}, {Case1, 0, 2088533116, 2088533116}, {Case1, 0, 8970181431921507452}}
+// gdb-command:print case1
+// gdb-check:$1 = {{Case1, 0, 31868, 31868, 31868, 31868}, {Case1, 0, 2088533116, 2088533116}, {Case1, 0, 8970181431921507452}}
 
-// debugger:print case2
-// check:$2 = {{Case2, 0, 4369, 4369, 4369, 4369}, {Case2, 0, 286331153, 286331153}, {Case2, 0, 1229782938247303441}}
+// gdb-command:print case2
+// gdb-check:$2 = {{Case2, 0, 4369, 4369, 4369, 4369}, {Case2, 0, 286331153, 286331153}, {Case2, 0, 1229782938247303441}}
 
-// debugger:print case3
-// check:$3 = {{Case3, 0, 22873, 22873, 22873, 22873}, {Case3, 0, 1499027801, 1499027801}, {Case3, 0, 6438275382588823897}}
+// gdb-command:print case3
+// gdb-check:$3 = {{Case3, 0, 22873, 22873, 22873, 22873}, {Case3, 0, 1499027801, 1499027801}, {Case3, 0, 6438275382588823897}}
 
-// debugger:print univariant
-// check:$4 = {-1}
+// gdb-command:print univariant
+// gdb-check:$4 = {-1}
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/unique-enum.rs b/src/test/debuginfo/unique-enum.rs
index 45f0213bf8c..f85ec6a8da3 100644
--- a/src/test/debug-info/unique-enum.rs
+++ b/src/test/debuginfo/unique-enum.rs
@@ -11,18 +11,18 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print *the_a
-// check:$1 = {{TheA, x = 0, y = 8970181431921507452}, {TheA, 0, 2088533116, 2088533116}}
+// gdb-command:print *the_a
+// gdb-check:$1 = {{TheA, x = 0, y = 8970181431921507452}, {TheA, 0, 2088533116, 2088533116}}
 
-// debugger:print *the_b
-// check:$2 = {{TheB, x = 0, y = 1229782938247303441}, {TheB, 0, 286331153, 286331153}}
+// gdb-command:print *the_b
+// gdb-check:$2 = {{TheB, x = 0, y = 1229782938247303441}, {TheB, 0, 286331153, 286331153}}
 
-// debugger:print *univariant
-// check:$3 = {123234}
+// gdb-command:print *univariant
+// gdb-check:$3 = {123234}
 
 #![allow(unused_variable)]
 #![feature(struct_variant)]
diff --git a/src/test/debug-info/var-captured-in-nested-closure.rs b/src/test/debuginfo/var-captured-in-nested-closure.rs
index 7677c9e9235..787c1cdea80 100644
--- a/src/test/debug-info/var-captured-in-nested-closure.rs
+++ b/src/test/debuginfo/var-captured-in-nested-closure.rs
@@ -11,42 +11,42 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
 
-// debugger:print variable
-// check:$1 = 1
-// debugger:print constant
-// check:$2 = 2
-// debugger:print a_struct
-// check:$3 = {a = -3, b = 4.5, c = 5}
-// debugger:print *struct_ref
-// check:$4 = {a = -3, b = 4.5, c = 5}
-// debugger:print *owned
-// check:$5 = 6
-// debugger:print managed->val
-// check:$6 = 7
-// debugger:print closure_local
-// check:$7 = 8
-// debugger:continue
+// gdb-command:print variable
+// gdb-check:$1 = 1
+// gdb-command:print constant
+// gdb-check:$2 = 2
+// gdb-command:print a_struct
+// gdb-check:$3 = {a = -3, b = 4.5, c = 5}
+// gdb-command:print *struct_ref
+// gdb-check:$4 = {a = -3, b = 4.5, c = 5}
+// gdb-command:print *owned
+// gdb-check:$5 = 6
+// gdb-command:print managed->val
+// gdb-check:$6 = 7
+// gdb-command:print closure_local
+// gdb-check:$7 = 8
+// gdb-command:continue
 
-// debugger:finish
-// debugger:print variable
-// check:$8 = 1
-// debugger:print constant
-// check:$9 = 2
-// debugger:print a_struct
-// check:$10 = {a = -3, b = 4.5, c = 5}
-// debugger:print *struct_ref
-// check:$11 = {a = -3, b = 4.5, c = 5}
-// debugger:print *owned
-// check:$12 = 6
-// debugger:print managed->val
-// check:$13 = 7
-// debugger:print closure_local
-// check:$14 = 8
-// debugger:continue
+// gdb-command:finish
+// gdb-command:print variable
+// gdb-check:$8 = 1
+// gdb-command:print constant
+// gdb-check:$9 = 2
+// gdb-command:print a_struct
+// gdb-check:$10 = {a = -3, b = 4.5, c = 5}
+// gdb-command:print *struct_ref
+// gdb-check:$11 = {a = -3, b = 4.5, c = 5}
+// gdb-command:print *owned
+// gdb-check:$12 = 6
+// gdb-command:print managed->val
+// gdb-check:$13 = 7
+// gdb-command:print closure_local
+// gdb-check:$14 = 8
+// gdb-command:continue
 
 #![feature(managed_boxes)]
 #![allow(unused_variable)]
diff --git a/src/test/debug-info/var-captured-in-sendable-closure.rs b/src/test/debuginfo/var-captured-in-sendable-closure.rs
index 4316e503a51..03525a3a034 100644
--- a/src/test/debug-info/var-captured-in-sendable-closure.rs
+++ b/src/test/debuginfo/var-captured-in-sendable-closure.rs
@@ -11,16 +11,16 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// debugger:print constant
-// check:$1 = 1
-// debugger:print a_struct
-// check:$2 = {a = -2, b = 3.5, c = 4}
-// debugger:print *owned
-// check:$3 = 5
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print constant
+// gdb-check:$1 = 1
+// gdb-command:print a_struct
+// gdb-check:$2 = {a = -2, b = 3.5, c = 4}
+// gdb-command:print *owned
+// gdb-check:$3 = 5
 
 #![allow(unused_variable)]
 
diff --git a/src/test/debug-info/var-captured-in-stack-closure.rs b/src/test/debuginfo/var-captured-in-stack-closure.rs
index 57dcabe90b6..fc8093304db 100644
--- a/src/test/debug-info/var-captured-in-stack-closure.rs
+++ b/src/test/debuginfo/var-captured-in-stack-closure.rs
@@ -11,22 +11,22 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-
-// debugger:print variable
-// check:$1 = 1
-// debugger:print constant
-// check:$2 = 2
-// debugger:print a_struct
-// check:$3 = {a = -3, b = 4.5, c = 5}
-// debugger:print *struct_ref
-// check:$4 = {a = -3, b = 4.5, c = 5}
-// debugger:print *owned
-// check:$5 = 6
-// debugger:print managed->val
-// check:$6 = 7
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+
+// gdb-command:print variable
+// gdb-check:$1 = 1
+// gdb-command:print constant
+// gdb-check:$2 = 2
+// gdb-command:print a_struct
+// gdb-check:$3 = {a = -3, b = 4.5, c = 5}
+// gdb-command:print *struct_ref
+// gdb-check:$4 = {a = -3, b = 4.5, c = 5}
+// gdb-command:print *owned
+// gdb-check:$5 = 6
+// gdb-command:print managed->val
+// gdb-check:$6 = 7
 
 #![feature(managed_boxes)]
 #![allow(unused_variable)]
diff --git a/src/test/debuginfo/vec-slices.rs b/src/test/debuginfo/vec-slices.rs
new file mode 100644
index 00000000000..783b1983953
--- /dev/null
+++ b/src/test/debuginfo/vec-slices.rs
@@ -0,0 +1,87 @@
+// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// ignore-win32: FIXME #13256
+// ignore-android: FIXME(#10381)
+
+// compile-flags:-g
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print empty.length
+// gdb-check:$1 = 0
+
+// gdb-command:print singleton.length
+// gdb-check:$2 = 1
+// gdb-command:print *((int64_t[1]*)(singleton.data_ptr))
+// gdb-check:$3 = {1}
+
+// gdb-command:print multiple.length
+// gdb-check:$4 = 4
+// gdb-command:print *((int64_t[4]*)(multiple.data_ptr))
+// gdb-check:$5 = {2, 3, 4, 5}
+
+// gdb-command:print slice_of_slice.length
+// gdb-check:$6 = 2
+// gdb-command:print *((int64_t[2]*)(slice_of_slice.data_ptr))
+// gdb-check:$7 = {3, 4}
+
+// gdb-command:print padded_tuple.length
+// gdb-check:$8 = 2
+// gdb-command:print padded_tuple.data_ptr[0]
+// gdb-check:$9 = {6, 7}
+// gdb-command:print padded_tuple.data_ptr[1]
+// gdb-check:$10 = {8, 9}
+
+// gdb-command:print padded_struct.length
+// gdb-check:$11 = 2
+// gdb-command:print padded_struct.data_ptr[0]
+// gdb-check:$12 = {x = 10, y = 11, z = 12}
+// gdb-command:print padded_struct.data_ptr[1]
+// gdb-check:$13 = {x = 13, y = 14, z = 15}
+
+// gdb-command:print 'vec-slices::MUT_VECT_SLICE'.length
+// gdb-check:$14 = 2
+// gdb-command:print *((int64_t[2]*)('vec-slices::MUT_VECT_SLICE'.data_ptr))
+// gdb-check:$15 = {64, 65}
+
+#![allow(unused_variable)]
+
+struct AStruct {
+    x: i16,
+    y: i32,
+    z: i16
+}
+
+static VECT_SLICE: &'static [i64] = &[64, 65];
+static mut MUT_VECT_SLICE: &'static [i64] = &[32];
+
+fn main() {
+    let empty: &[i64] = &[];
+    let singleton: &[i64] = &[1];
+    let multiple: &[i64] = &[2, 3, 4, 5];
+    let slice_of_slice = multiple.slice(1,3);
+
+    let padded_tuple: &[(i32, i16)] = &[(6, 7), (8, 9)];
+
+    let padded_struct: &[AStruct] = &[
+        AStruct { x: 10, y: 11, z: 12 },
+        AStruct { x: 13, y: 14, z: 15 }
+    ];
+
+    unsafe {
+        MUT_VECT_SLICE = VECT_SLICE;
+    }
+
+    zzz();
+}
+
+fn zzz() {()}
diff --git a/src/test/debug-info/vec.rs b/src/test/debuginfo/vec.rs
index e1ee1ae0212..11f317469a2 100644
--- a/src/test/debug-info/vec.rs
+++ b/src/test/debuginfo/vec.rs
@@ -12,14 +12,14 @@
 // ignore-android: FIXME(#10381)
 
 // compile-flags:-g
-// debugger:set print pretty off
-// debugger:rbreak zzz
-// debugger:run
-// debugger:finish
-// debugger:print a
-// check:$1 = {1, 2, 3}
-// debugger:print vec::VECT
-// check:$2 = {4, 5, 6}
+// gdb-command:set print pretty off
+// gdb-command:rbreak zzz
+// gdb-command:run
+// gdb-command:finish
+// gdb-command:print a
+// gdb-check:$1 = {1, 2, 3}
+// gdb-command:print vec::VECT
+// gdb-check:$2 = {4, 5, 6}
 
 #![allow(unused_variable)]