From 0c56f59b401a4478487972e0f1164fed24270891 Mon Sep 17 00:00:00 2001 From: Edjunior Barbosa Machado Date: Thu, 31 May 2012 22:07:31 +0000 Subject: [PATCH] * ppc-linux-nat.c (have_ptrace_booke_interface): Disable ptrace BookE interface for PowerPC server processors if not available in the Linux Kernel. --- gdb/ChangeLog | 6 ++++++ gdb/ppc-linux-nat.c | 23 +++++++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e2ca89fd4c1..af25ef785a1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2012-05-31 Edjunior Machado + + * ppc-linux-nat.c (have_ptrace_booke_interface): Disable ptrace + BookE interface for PowerPC server processors if not available + in the Linux Kernel. + 2012-05-31 Keith Seitz * linespec.c (decode_objc): Add cleanup to free diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c index b9e0c855963..45cdd735ed0 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; -- 2.30.2