From: Edjunior Barbosa Machado Date: Thu, 31 May 2012 22:07:31 +0000 (+0000) Subject: * ppc-linux-nat.c (have_ptrace_booke_interface): Disable ptrace X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=0c56f59b401a4478487972e0f1164fed24270891;p=deliverable%2Fbinutils-gdb.git * ppc-linux-nat.c (have_ptrace_booke_interface): Disable ptrace BookE interface for PowerPC server processors if not available in the Linux Kernel. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e2ca89fd4c..af25ef785a 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 b9e0c85596..45cdd735ed 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;