aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2020-09-16 11:40:05 -0700
committerJohn Baldwin <jhb@FreeBSD.org>2020-09-16 11:40:05 -0700
commitfe5ddfc3ee21789ec2bdffbe48f6b7cfe730dca7 (patch)
treed073005c502f89419a3039e9466172e186cae98a
parente911c6663bb8cff9e6968a885b81d5dd484de031 (diff)
downloadgdb-fe5ddfc3ee21789ec2bdffbe48f6b7cfe730dca7.zip
gdb-fe5ddfc3ee21789ec2bdffbe48f6b7cfe730dca7.tar.gz
gdb-fe5ddfc3ee21789ec2bdffbe48f6b7cfe730dca7.tar.bz2
Assume FreeBSD kernels always report exec events.
FreeBSD kernels have reported exec events via the PL_FLAG_EXEC flag since 8.2 release. The most recent release that did not support this flag is 7.4 released in November of 2011. Note that the FreeBSD native target already assumed that PL_FLAG_SCE and PL_FLAG_SCX were always supported on systems supporting PT_LWPINFO, but those flags were added at the same time as PL_FLAG_EXEC. Building the native target on a system without PL_FLAG_EXEC would have failed to build before this change already as a result. gdb/ChangeLog: * fbsd-nat.c (fbsd_nat_target::wait): Always check for PL_FLAG_EXEC. (fbsd_nat_target::insert_exec_catchpoint) (fbsd_nat_target::remove_exec_catchpoint): Always define. * fbsd-nat.h (fbsd_nat_target::insert_exec_catchpoint) (fbsd_nat_target::remove_exec_catchpoint): Always declare.
-rw-r--r--gdb/ChangeLog9
-rw-r--r--gdb/fbsd-nat.c7
-rw-r--r--gdb/fbsd-nat.h2
3 files changed, 10 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7159398..d05e6d2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,14 @@
2020-09-16 John Baldwin <jhb@FreeBSD.org>
+ * fbsd-nat.c (fbsd_nat_target::wait): Always check for
+ PL_FLAG_EXEC.
+ (fbsd_nat_target::insert_exec_catchpoint)
+ (fbsd_nat_target::remove_exec_catchpoint): Always define.
+ * fbsd-nat.h (fbsd_nat_target::insert_exec_catchpoint)
+ (fbsd_nat_target::remove_exec_catchpoint): Always declare.
+
+2020-09-16 John Baldwin <jhb@FreeBSD.org>
+
* configure.ac: Remove check for kinfo_getvmmap().
* configure, config.in: Regenerate.
* fbsd-nat.c (fbsd_read_mapping): Remove
diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index ac88fbc..0ab7f83 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -1335,7 +1335,6 @@ fbsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus,
#endif
#endif
-#ifdef PL_FLAG_EXEC
if (pl.pl_flags & PL_FLAG_EXEC)
{
ourstatus->kind = TARGET_WAITKIND_EXECD;
@@ -1343,7 +1342,6 @@ fbsd_nat_target::wait (ptid_t ptid, struct target_waitstatus *ourstatus,
= xstrdup (pid_to_exec_file (pid));
return wptid;
}
-#endif
#ifdef USE_SIGTRAP_SIGINFO
if (fbsd_handle_debug_trap (this, wptid, pl))
@@ -1508,9 +1506,7 @@ fbsd_nat_target::post_attach (int pid)
fbsd_add_threads (this, pid);
}
-#ifdef PL_FLAG_EXEC
-/* If the FreeBSD kernel supports PL_FLAG_EXEC, then traced processes
- will always stop after exec. */
+/* Traced processes always stop after exec. */
int
fbsd_nat_target::insert_exec_catchpoint (int pid)
@@ -1523,7 +1519,6 @@ fbsd_nat_target::remove_exec_catchpoint (int pid)
{
return 0;
}
-#endif
#ifdef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE
int
diff --git a/gdb/fbsd-nat.h b/gdb/fbsd-nat.h
index ed3c1cd..e8b7930 100644
--- a/gdb/fbsd-nat.h
+++ b/gdb/fbsd-nat.h
@@ -89,10 +89,8 @@ public:
int remove_vfork_catchpoint (int) override;
#endif
-#ifdef PL_FLAG_EXEC
int insert_exec_catchpoint (int) override;
int remove_exec_catchpoint (int) override;
-#endif
#ifdef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE
int set_syscall_catchpoint (int, bool, int, gdb::array_view<const int>)