From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4338 invoked by alias); 8 Apr 2014 14:30:49 -0000 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 Received: (qmail 4324 invoked by uid 89); 8 Apr 2014 14:30:48 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 X-HELO: mail-we0-f171.google.com Received: from mail-we0-f171.google.com (HELO mail-we0-f171.google.com) (74.125.82.171) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Tue, 08 Apr 2014 14:30:40 +0000 Received: by mail-we0-f171.google.com with SMTP id t61so1027449wes.2 for ; Tue, 08 Apr 2014 07:30:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:content-type:content-transfer-encoding; bh=LtO8ONcjD9z+gr3b1LFvAOJeTBDI4tpDBIjvhpSl0Ic=; b=e+BKBFSE0Dr2EAlTHAs6ABLfag04WEPxE1RZYKHvKMvqAmOK0GPkpiz31P/HG104Mg oGHJ2ll5e8oYU41EaNNTU9PO996uuoAa6EOYN6kzwvbML8HZNEpy1YeL+VH7Um//rO/a oDfmyIX1Y0TNdthlWs46sCyNoInzPUPYE890bJJ2ijB9pTUIDwN4q/4YJpPGx7bxOyH2 dZd0BvUkBgXAne9EU/EVYf9I2mRrjKC5QROIs4dmKl/EF7ZWtodgKN3hrWuiaNytATZV ji7HtjaGMserfycGCIvj3aDiU9z0/RHPdEEQzUSrn7PNkwnvS1FjxxKjkBHF7PdO8X4g 4yUA== X-Gm-Message-State: ALoCoQnc7oSWF8P2Xq2/qCb9Kq8Azh2DF8PQNumyYXKfTac7HiQO8+UGhrbGuQWRjEBXSv9TrBFC X-Received: by 10.194.58.79 with SMTP id o15mr3043587wjq.62.1396967436837; Tue, 08 Apr 2014 07:30:36 -0700 (PDT) Received: from [192.168.0.10] (92.40.249.1.threembb.co.uk. [92.40.249.1]) by mx.google.com with ESMTPSA id l10sm3371084wiz.18.2014.04.08.07.30.34 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 08 Apr 2014 07:30:35 -0700 (PDT) Message-ID: <53440806.4000302@embecosm.com> Date: Tue, 08 Apr 2014 14:30:00 -0000 From: Pierre Langlois User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: gdb-patches@sourceware.org Subject: [PATCH] Fix erroneous backtrace on avrxmega architectures. Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2014-04/txt/msg00097.txt.bz2 Hi all, This patch adds avrxmega architectures to GDB, as given by bfd_architecture, when setting call_length. This is the length of an address pushed on the stack by a call instruction. It was incorrect on avrxmega devices with more than 128k of memory (tested on the atxmega256a3bu), which would break stack-unwinding. Best, Pierre 2014-04-08 Pierre Langlois * avr-tdep.c (struct gdbarch_tdep): Mention avrxmega in the comment. (avr_gdbarch_init): Add xmega architectures given by bfd_architecture when setting the size of call_length. --- gdb/avr-tdep.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index 7fb16d1..9b0bfaf 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -180,7 +180,7 @@ struct avr_unwind_cache struct gdbarch_tdep { /* Number of bytes stored to the stack by call instructions. - 2 bytes for avr1-5, 3 bytes for avr6. */ + 2 bytes for avr1-5 and avrxmega1-5, 3 bytes for avr6 and avrxmega6-7. */ int call_length; /* Type for void. */ @@ -1356,14 +1356,21 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) switch (info.bfd_arch_info->mach) { case bfd_mach_avr1: + case bfd_mach_avrxmega1: case bfd_mach_avr2: + case bfd_mach_avrxmega2: case bfd_mach_avr3: + case bfd_mach_avrxmega3: case bfd_mach_avr4: + case bfd_mach_avrxmega4: case bfd_mach_avr5: + case bfd_mach_avrxmega5: default: call_length = 2; break; case bfd_mach_avr6: + case bfd_mach_avrxmega6: + case bfd_mach_avrxmega7: call_length = 3; break; } -- 1.9.1