fbsd nat: Disable address space randomization when requested.

Use procctl(2) with PROC_ASLR_CTL to disable address space
randomization in the current gdb process before forking a child
process for a new inferior when address space randomization is
disabled.

gdb/ChangeLog:

	* configure.ac: Check for <sys/procctl.h>.
	* config.in, configure: Regenerate.
	* fbsd-nat.c: Include <sys/procctl.h> if present.
	[PROC_ASLR_CTL] (maybe_disable_address_space_randomization): New.
	(fbsd_nat_target::create_inferior)
	(fbsd_nat_target::supports_disable_randomization): New.
	* fbsd-nat.h (fbsd_nat_target::create_inferior)
	(fbsd_nat_target::supports_disable_randomization): New.
This commit is contained in:
John Baldwin
2021-06-14 14:28:26 -07:00
parent c9923e71ff
commit 09db4332c6
6 changed files with 96 additions and 2 deletions

View File

@@ -67,6 +67,9 @@ public:
thread_control_capabilities get_thread_control_capabilities () override
{ return tc_schedlock; }
void create_inferior (const char *, const std::string &,
char **, int) override;
void resume (ptid_t, int, enum gdb_signal) override;
ptid_t wait (ptid_t, struct target_waitstatus *, target_wait_flags) override;
@@ -98,6 +101,8 @@ public:
#endif
bool supports_multi_process () override;
bool supports_disable_randomization () override;
};
#endif /* fbsd-nat.h */