Delay checking whether /proc/pid/mem is writable (PR gdb/29907)
As of 1bcb0708f229 ("gdb/linux-nat: Check whether /proc/pid/mem is writable"), GDB checks if /proc/pid/mem is writable. This is done early at GDB startup, in order to get a consistent warning, instead of a warning that depends on whenever GDB writes to inferior memory. PR gdb/29907 points out that some build systems (like QEMU's, apparently) may call 'gdb --version' to check GDB's presence & its version on the system, and that Gentoo's build process has sandboxing which blocks the /proc/pid/mem access and thus GDB warns, which results in build fails. To help with that, this patch delays the /proc/pid/mem check until we start or attach to an inferior. Ends up potentially emiting a warning close where we already emit other ptrace- and /proc- related warnings, which just Feels Right. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29907 Change-Id: I5537653ecfbbe76a04ab035e40e59d09b4980763
This commit is contained in:
parent
c7ce51d8c8
commit
9dff6a5d54
@ -372,6 +372,7 @@ linux_init_ptrace_procfs (pid_t pid, int attached)
|
||||
linux_enable_event_reporting (pid, options);
|
||||
linux_ptrace_init_warnings ();
|
||||
linux_proc_init_warnings ();
|
||||
proc_mem_file_is_writable ();
|
||||
}
|
||||
|
||||
linux_nat_target::~linux_nat_target ()
|
||||
@ -3955,7 +3956,11 @@ linux_proc_xfer_memory_partial (int pid, gdb_byte *readbuf,
|
||||
return true if so. It wasn't writable before Linux 2.6.39, but
|
||||
there's no way to know whether the feature was backported to older
|
||||
kernels. So we check to see if it works. The result is cached,
|
||||
and this is garanteed to be called once early at startup. */
|
||||
and this is garanteed to be called once early during inferior
|
||||
startup, so that any warning is printed out consistently between
|
||||
GDB invocations. Note we don't call it during GDB startup instead
|
||||
though, because then we might warn with e.g. just "gdb --version"
|
||||
on sandboxed systems. See PR gdb/29907. */
|
||||
|
||||
static bool
|
||||
proc_mem_file_is_writable ()
|
||||
@ -4490,8 +4495,6 @@ Enables printf debugging output."),
|
||||
sigemptyset (&blocked_mask);
|
||||
|
||||
lwp_lwpid_htab_create ();
|
||||
|
||||
proc_mem_file_is_writable ();
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user