From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29832 invoked by alias); 12 Aug 2003 22:31:36 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 29825 invoked from network); 12 Aug 2003 22:31:35 -0000 Received: from unknown (HELO igw2.watson.ibm.com) (129.34.20.6) by sources.redhat.com with SMTP; 12 Aug 2003 22:31:35 -0000 Received: from sp1n293en1.watson.ibm.com (sp1n293en1.watson.ibm.com [9.2.112.57]) by igw2.watson.ibm.com (8.11.7/8.11.4) with ESMTP id h7CMTSV102658 for ; Tue, 12 Aug 2003 18:29:28 -0400 Received: from kitch0.watson.ibm.com (kitch0.watson.ibm.com [9.2.224.107]) by sp1n293en1.watson.ibm.com (8.11.7/8.11.7) with ESMTP id h7CMVYa1215556 for ; Tue, 12 Aug 2003 18:31:34 -0400 Received: (from jimix@localhost) by kitch0.watson.ibm.com (AIX4.3/8.9.3p2/8.9.3/09-18-2002) id SAA89356; Tue, 12 Aug 2003 18:31:34 -0400 From: Jimi Xenidis MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <16185.27333.689024.383508@kitch0.watson.ibm.com> Date: Tue, 12 Aug 2003 22:31:00 -0000 To: gdb-patches@sources.redhat.com Subject: Powerpc and software single step X-SW-Source: 2003-08/txt/msg00215.txt.bz2 The AIX kernel does not support single step but the Linux kernel does. However, I am working with a remote machine level debugger for PowerPC that allows me to debug a running Linux kernel and cannot support single stepping. For this I require that when debugging a Linux target I need to turn on SOFTWARE_SINGLE_STEP. I would like to add this to an "obscure" setting that will turn it on even under Linux. Here is the patch.. please accept, feel free to mangle the symbol names to taste. -JX diff -Naur -X ./Xdiff src/gdb/config/powerpc/tm-linux.h mygdb/gdb/config/powerpc/tm-linux.h --- src/gdb/config/powerpc/tm-linux.h Thu Jun 12 19:58:07 2003 +++ mygdb/gdb/config/powerpc/tm-linux.h Tue Aug 12 09:05:02 2003 @@ -33,9 +33,11 @@ /* We can single step on linux */ #undef SOFTWARE_SINGLE_STEP -#define SOFTWARE_SINGLE_STEP(p,q) internal_error (__FILE__, __LINE__, "Will never execute!") +extern void ppc_linux_software_single_step (enum target_signal, int); +#define SOFTWARE_SINGLE_STEP(sig,bp_p) ppc_linux_software_single_step (sig, bp_p) #undef SOFTWARE_SINGLE_STEP_P -#define SOFTWARE_SINGLE_STEP_P() 0 +extern int ppc_linux_single_step_mode; +#define SOFTWARE_SINGLE_STEP_P() ppc_linux_single_step_mode /* Make sure nexti gets the help it needs for debugging assembly code without symbols */ diff -Naur -X ./Xdiff src/gdb/ppc-linux-tdep.c mygdb/gdb/ppc-linux-tdep.c --- src/gdb/ppc-linux-tdep.c Tue Jun 24 19:09:22 2003 +++ mygdb/gdb/ppc-linux-tdep.c Tue Aug 12 09:22:11 2003 @@ -1075,10 +1075,35 @@ } } +int ppc_linux_single_step_mode = 0; +void +ppc_linux_software_single_step (enum target_signal sig , int bp_p) +{ + if (ppc_linux_single_step_mode) + { + rs6000_software_single_step (sig, bp_p); + } + else + { + internal_error (__FILE__, __LINE__, "Will never execute!"); + } +} + void _initialize_ppc_linux_tdep (void) { gdbarch_register_osabi (bfd_arch_powerpc, 0, GDB_OSABI_LINUX, ppc_linux_init_abi); add_core_fns (&ppc_linux_regset_core_fns); + + add_show_from_set (add_set_cmd("single-step-mode", class_obscure, + var_integer, + &ppc_linux_single_step_mode, "\ +Set single step mode for PowerPCtarget:\n\ + 0 = Target supports single stepping (i.e. Linux)\n\ + 1 = Target does not support single stepping (i.e. AIX, Simulators).", + &setlist), + &showlist); } + +