aboutsummaryrefslogtreecommitdiff
path: root/gdb/ppc-linux-nat.c
diff options
context:
space:
mode:
authorEdjunior Barbosa Machado <emachado@linux.vnet.ibm.com>2012-05-31 22:07:31 +0000
committerEdjunior Barbosa Machado <emachado@linux.vnet.ibm.com>2012-05-31 22:07:31 +0000
commit0c56f59b401a4478487972e0f1164fed24270891 (patch)
tree8a6e650ae4c6f2aa5c8487757f4ad7645ba7e99b /gdb/ppc-linux-nat.c
parent71bdabee218e22fa592ab679a2d1ee044e0f6e2c (diff)
downloadfsf-binutils-gdb-0c56f59b401a4478487972e0f1164fed24270891.zip
fsf-binutils-gdb-0c56f59b401a4478487972e0f1164fed24270891.tar.gz
fsf-binutils-gdb-0c56f59b401a4478487972e0f1164fed24270891.tar.bz2
* ppc-linux-nat.c (have_ptrace_booke_interface): Disable ptrace
BookE interface for PowerPC server processors if not available in the Linux Kernel.
Diffstat (limited to 'gdb/ppc-linux-nat.c')
-rw-r--r--gdb/ppc-linux-nat.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
index b9e0c85..45cdd73 100644
--- a/gdb/ppc-linux-nat.c
+++ b/gdb/ppc-linux-nat.c
@@ -1421,17 +1421,20 @@ have_ptrace_booke_interface (void)
/* Check for kernel support for BOOKE debug registers. */
if (ptrace (PPC_PTRACE_GETHWDBGINFO, tid, 0, &booke_debug_info) >= 0)
{
- have_ptrace_booke_interface = 1;
- max_slots_number = booke_debug_info.num_instruction_bps
- + booke_debug_info.num_data_bps
- + booke_debug_info.num_condition_regs;
- }
- else
- {
- /* Old school interface and no BOOKE debug registers support. */
- have_ptrace_booke_interface = 0;
- memset (&booke_debug_info, 0, sizeof (struct ppc_debug_info));
+ /* Check whether ptrace BOOKE interface is functional and
+ provides any supported feature. */
+ if (booke_debug_info.features != 0)
+ {
+ have_ptrace_booke_interface = 1;
+ max_slots_number = booke_debug_info.num_instruction_bps
+ + booke_debug_info.num_data_bps
+ + booke_debug_info.num_condition_regs;
+ return have_ptrace_booke_interface;
+ }
}
+ /* Old school interface and no BOOKE debug registers support. */
+ have_ptrace_booke_interface = 0;
+ memset (&booke_debug_info, 0, sizeof (struct ppc_debug_info));
}
return have_ptrace_booke_interface;