about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile20
1 files changed, 20 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index fae71aa287..924fdb6c0f 100644
--- a/Makefile
+++ b/Makefile
@@ -181,6 +181,11 @@ case "$$toolname" in
   valgrind)
     exec env $(run-program-env) valgrind $(test-via-rtld-prefix) $${1+"$$@"}
     ;;
+  container)
+    exec env $(run-program-env) $(test-via-rtld-prefix) \
+      $(common-objdir)/support/test-container \
+      env $(run-program-env) $(test-via-rtld-prefix) $${1+"$$@"}
+    ;;
   *)
     usage
     ;;
@@ -202,6 +207,7 @@ define debugglibc
 SOURCE_DIR="$(CURDIR)"
 BUILD_DIR="$(common-objpfx)"
 CMD_FILE="$(common-objpfx)debugglibc.gdb"
+CONTAINER=false
 DIRECT=true
 SYMBOLSFILE=true
 unset TESTCASE
@@ -235,6 +241,9 @@ Options:
 
   The following options do not take arguments:
 
+  -c, --in-container
+	Run the test case inside a container and automatically attach
+	GDB to it.
   -i, --no-direct
 	Selects whether to pass the --direct flag to the program.
 	--direct is useful when debugging glibc test cases. It inhibits the
@@ -263,6 +272,9 @@ do
       ENVVARS="$$2 $$ENVVARS"
       shift
       ;;
+    -c|--in-container)
+      CONTAINER=true
+      ;;
     -i|--no-direct)
       DIRECT=false
       ;;
@@ -348,6 +360,13 @@ echo "GDB Commands     : $$CMD_FILE"
 echo "Env vars         : $$ENVVARS"
 echo
 
+if [ "$$CONTAINER" == true ]
+then
+# Use testrun.sh to start the test case with WAIT_FOR_DEBUGGER=1, then
+# automatically attach GDB to it.
+WAIT_FOR_DEBUGGER=1 $(common-objpfx)testrun.sh --tool=container $${TESTCASE} &
+gdb -x $${TESTCASE}.gdb
+else
 # Start the test case debugging in two steps:
 #   1. the following command invokes gdb to run the loader;
 #   2. the commands file tells the loader to run the test case.
@@ -355,6 +374,7 @@ gdb -q \
   -x $${CMD_FILE} \
   -d $${SOURCE_DIR} \
   $${BUILD_DIR}/elf/ld.so
+fi
 endef
 
 # This is another handy script for debugging dynamically linked program