diff --git a/validate/launcher/baseclasses.py b/validate/launcher/baseclasses.py index 944aad0d81..a1d209cc88 100644 --- a/validate/launcher/baseclasses.py +++ b/validate/launcher/baseclasses.py @@ -385,7 +385,11 @@ class Test(Loggable): if self.hard_timeout is not None: self.hard_timeout *= GDB_TIMEOUT_FACTOR self.timeout *= GDB_TIMEOUT_FACTOR - return ["gdb", "-ex", "run", "-ex", "backtrace", "-ex", "quit", "--args"] + command + args = ["gdb"] + if self.options.gdb_non_stop: + args += ["-ex", "run", "-ex", "backtrace", "-ex", "quit"] + args += ["--args"] + command + return args def use_valgrind(self, command, subenv): vglogsfile = self.logfile + '.valgrind' diff --git a/validate/launcher/main.py b/validate/launcher/main.py index 6590f29dab..35e8a6f799 100644 --- a/validate/launcher/main.py +++ b/validate/launcher/main.py @@ -237,6 +237,9 @@ class LauncherConfig(Loggable): else: self.output_dir = os.path.abspath(self.output_dir) + if self.gdb_non_stop: + self.gdb = True + if self.gdb: self.logsdir = "stdout" self.debug = True @@ -457,6 +460,9 @@ Note that all testsuite should be inside python modules, so the directory should action="store_true", help="Run the tests inside gdb (implies" " --output-dir=stdout and --jobs=1)") + parser.add_argument("--gdb-non-stop", dest="gdb_non_stop", + action="store_true", + help="Run the test automatically in gdb (implies --gdb)") parser.add_argument("-nd", "--no-display", dest="no_display", action="store_true", help="Run the tests without outputting graphics"