diff options
author | Yao Qi <yao.qi@linaro.org> | 2015-06-01 12:13:02 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2015-06-01 12:13:02 +0100 |
commit | 7efe48d196f3fb6f55fc53b8021a410848c0a677 (patch) | |
tree | 41411952376be57249e526ac2a76835ae753ae79 /gdb | |
parent | 433bbbf8574a04c1639c5466fd7c320b510b9512 (diff) | |
download | gdb-7efe48d196f3fb6f55fc53b8021a410848c0a677.zip gdb-7efe48d196f3fb6f55fc53b8021a410848c0a677.tar.gz gdb-7efe48d196f3fb6f55fc53b8021a410848c0a677.tar.bz2 |
Check whether kernel supports PTRACE_GETREGSET
gdb:
2015-06-01 Yao Qi <yao.qi@linaro.org>
* arm-linux-nat.c (arm_linux_read_description): Check whether
kernel supports PTRACE_GETREGSET.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/arm-linux-nat.c | 16 |
2 files changed, 21 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2ed122d..27b8438 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2015-06-01 Yao Qi <yao.qi@linaro.org> + * arm-linux-nat.c (arm_linux_read_description): Check whether + kernel supports PTRACE_GETREGSET. + +2015-06-01 Yao Qi <yao.qi@linaro.org> + * x86-linux-nat.c (have_ptrace_getregset): Move it to ... * linux-nat.c: ... here. * x86-linux-nat.h (have_ptrace_getregset): Move the declaration diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c index 7352841..877559e 100644 --- a/gdb/arm-linux-nat.c +++ b/gdb/arm-linux-nat.c @@ -634,6 +634,22 @@ arm_linux_read_description (struct target_ops *ops) { CORE_ADDR arm_hwcap = 0; + if (have_ptrace_getregset == -1) + { + elf_gregset_t gpregs; + struct iovec iov; + int tid = GET_THREAD_ID (inferior_ptid); + + iov.iov_base = &gpregs; + iov.iov_len = sizeof (gpregs); + + /* Check if PTRACE_GETREGSET works. */ + if (ptrace (PTRACE_GETREGSET, tid, NT_PRSTATUS, &iov) < 0) + have_ptrace_getregset = 0; + else + have_ptrace_getregset = 1; + } + if (target_auxv_search (ops, AT_HWCAP, &arm_hwcap) != 1) { return ops->beneath->to_read_description (ops->beneath); |