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.
This commit is contained in:
John Baldwin 2020-09-16 11:40:05 -07:00
parent e911c6663b
commit fe5ddfc3ee
3 changed files with 10 additions and 8 deletions

View File

@ -1,3 +1,12 @@
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().

View File

@ -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

View File

@ -89,10 +89,8 @@ class fbsd_nat_target : public inf_ptrace_target
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>)