aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/infcmd.c2
-rw-r--r--gdb/testsuite/ChangeLog6
-rw-r--r--gdb/testsuite/gdb.base/catch-follow-exec.c10
-rw-r--r--gdb/testsuite/gdb.base/catch-follow-exec.exp58
5 files changed, 80 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ee5c9ea..605aeef 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2018-07-26 Tom de Vries <tdevries@suse.de>
+ PR breakpoints/23366
+ * infcmd.c (info_program_command): Handle ptid == minus_one_ptid.
+
+2018-07-26 Tom de Vries <tdevries@suse.de>
+
* dwarf2read.c (read_subrange_type): Warn if DW_AT_upper_bound or
DW_AT_count can't be translated to a dynamic prop.
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 821bcc6..74d5956 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -2091,7 +2091,7 @@ info_program_command (const char *args, int from_tty)
get_last_target_status (&ptid, &ws);
}
- if (ptid == null_ptid)
+ if (ptid == null_ptid || ptid == minus_one_ptid)
error (_("No selected thread."));
thread_info *tp = find_thread_ptid (ptid);
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index ab50f70..aa8b06a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2018-07-26 Tom de Vries <tdevries@suse.de>
+
+ PR breakpoints/23366
+ * gdb.base/catch-follow-exec.c: New test.
+ * gdb.base/catch-follow-exec.exp: New file.
+
2018-07-25 Tom de Vries <tdevries@suse.de>
* gdb.base/vla-optimized-out-o3.exp: New file. Reuse
diff --git a/gdb/testsuite/gdb.base/catch-follow-exec.c b/gdb/testsuite/gdb.base/catch-follow-exec.c
new file mode 100644
index 0000000..fa68a2a
--- /dev/null
+++ b/gdb/testsuite/gdb.base/catch-follow-exec.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+int
+main (void)
+{
+ char *exec_args[] = { "/bin/ls", "ppp", NULL };
+ execve (exec_args[0], exec_args, NULL);
+}
diff --git a/gdb/testsuite/gdb.base/catch-follow-exec.exp b/gdb/testsuite/gdb.base/catch-follow-exec.exp
new file mode 100644
index 0000000..0e32ed4
--- /dev/null
+++ b/gdb/testsuite/gdb.base/catch-follow-exec.exp
@@ -0,0 +1,58 @@
+# Copyright 2018 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Check whether finish respects the print pretty user setting when printing the
+# function result.
+
+standard_testfile
+
+if {[build_executable "failed to prepare" $testfile $srcfile debug] == -1} {
+ return -1
+}
+
+if { ![remote_file target exists /bin/bash] } {
+ unsupported "no bash"
+ return
+}
+
+if { ![remote_file target exists /bin/ls] } {
+ unsupported "no ls"
+ return
+}
+
+proc catch_follow_exec { } {
+ global binfile
+ global GDB
+
+ set test "catch-follow-exec"
+
+ append FLAGS " \"$binfile\""
+ append FLAGS " -batch"
+ append FLAGS " -ex \"catch exec\""
+ append FLAGS " -ex \"set follow-exec-mode new\""
+ append FLAGS " -ex \"run\""
+ append FLAGS " -ex \"info prog\""
+
+ catch {exec /bin/bash -c "$GDB $FLAGS"} catchlog
+ send_log "$catchlog\n"
+
+ if { [regexp {No selected thread} $catchlog] } {
+ pass $test
+ } else {
+ fail $test
+ }
+}
+
+catch_follow_exec