From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28691 invoked by alias); 27 Apr 2012 10:52:00 -0000 Received: (qmail 28572 invoked by uid 22791); 27 Apr 2012 10:51:59 -0000 X-SWARE-Spam-Status: No, hits=-5.5 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_HI,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from cam-admin0.cambridge.arm.com (HELO cam-admin0.cambridge.arm.com) (217.140.96.50) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 27 Apr 2012 10:51:38 +0000 Received: from mudshark.cambridge.arm.com (mudshark.cambridge.arm.com [10.1.79.58]) by cam-admin0.cambridge.arm.com (8.12.6/8.12.6) with ESMTP id q3RApXOK005769; Fri, 27 Apr 2012 11:51:33 +0100 (BST) Received: by mudshark.cambridge.arm.com (Postfix, from userid 1000) id 300BBC1273; Fri, 27 Apr 2012 11:51:32 +0100 (BST) From: Will Deacon To: gdb-patches@sourceware.org Cc: vapier@gentoo.org, palves@redhat.com, Will Deacon Subject: [PATCH v4] gdbserver: uclinux: pull in ptrace offset definitions from asm/ptrace.h Date: Fri, 27 Apr 2012 11:01:00 -0000 Message-Id: <1335523886-14995-1-git-send-email-will.deacon@arm.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-04/txt/msg00980.txt.bz2 When debugging a uclinux target, it is necessary to retrieve the text and data offsets of the running program in order for symbol resolution to work correctly. This patch pulls in definitions for PT_{TEXT,DATA,TEXT_END}_ADDR from the kernel's exported ptrace header, which can be issued as `magic' addresses to the PTRACE_PEEKUSER request in order to retrieve the child offsets. For those architectures currently providing their own inline definitions, the existing code is used as a fallback if the header doesn't provide any overrides. --- 2012-04-26 Will Deacon * linux-low.c [__UCLIBC__ && !(__UCLIBC_HAS_MMU__ || __ARCH_HAS_MMU__)]: Include asm/ptrace.h. (PT_TEXT_ADDR, PT_DATA_ADDR, PT_TEXT_END_ADDR): Define only if not already defined. gdb/gdbserver/linux-low.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index bbb0693..f8d0c99 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -78,6 +78,8 @@ #ifdef __UCLIBC__ #if !(defined(__UCLIBC_HAS_MMU__) || defined(__ARCH_HAS_MMU__)) +/* PTRACE_TEXT_ADDR and friends. */ +#include #define HAS_NOMMU #endif #endif @@ -4759,6 +4761,9 @@ linux_stopped_data_address (void) } #if defined(__UCLIBC__) && defined(HAS_NOMMU) +#if ! (defined(PT_TEXT_ADDR) \ + || defined(PT_DATA_ADDR) \ + || defined(PT_TEXT_END_ADDR)) #if defined(__mcoldfire__) /* These should really be defined in the kernel's ptrace.h header. */ #define PT_TEXT_ADDR 49*4 @@ -4773,6 +4778,7 @@ linux_stopped_data_address (void) #define PT_DATA_ADDR (0x10004*4) #define PT_TEXT_END_ADDR (0x10008*4) #endif +#endif /* Under uClinux, programs are loaded at non-zero offsets, which we need to tell gdb about. */ -- 1.7.4.1