From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 77813 invoked by alias); 11 Dec 2015 11:37:17 -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 77798 invoked by uid 89); 11 Dec 2015 11:37:16 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pf0-f178.google.com Received: from mail-pf0-f178.google.com (HELO mail-pf0-f178.google.com) (209.85.192.178) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Fri, 11 Dec 2015 11:37:15 +0000 Received: by pfd5 with SMTP id 5so3528701pfd.2 for ; Fri, 11 Dec 2015 03:37:13 -0800 (PST) X-Received: by 10.98.80.20 with SMTP id e20mr14276841pfb.23.1449833833639; Fri, 11 Dec 2015 03:37:13 -0800 (PST) Received: from E107787-LIN (gcc1-power7.osuosl.org. [140.211.15.137]) by smtp.gmail.com with ESMTPSA id ah10sm25092549pad.23.2015.12.11.03.37.10 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Fri, 11 Dec 2015 03:37:12 -0800 (PST) From: Yao Qi To: Antoine Tremblay Cc: Subject: Re: [PATCH v7 4/8] Refactor arm_software_single_step to use regcache. References: <1449583641-18156-1-git-send-email-antoine.tremblay@ericsson.com> <1449583641-18156-5-git-send-email-antoine.tremblay@ericsson.com> Date: Fri, 11 Dec 2015 11:37:00 -0000 In-Reply-To: <1449583641-18156-5-git-send-email-antoine.tremblay@ericsson.com> (Antoine Tremblay's message of "Tue, 8 Dec 2015 09:07:17 -0500") Message-ID: <86egetqkrg.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2015-12/txt/msg00218.txt.bz2 Antoine Tremblay writes: Hi Antoine, Patch is OK to me, two nits below. > diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c > index acb5701..eb4341c 100644 > --- a/gdb/arm-linux-tdep.c > +++ b/gdb/arm-linux-tdep.c > @@ -808,6 +808,68 @@ arm_linux_sigreturn_return_addr (struct frame_info *= frame, > return 0; > } >=20=20 > +/* Calculate the offset from stack pointer of the pc register on the sta= ck > + in the case of a sigreturn or sigreturn_rt syscall. */ > +static int > +arm_linux_sigreturn_next_pc_offset (unsigned long sp, > + unsigned long sp_data, > + unsigned long svc_number, > + int is_sigreturn) > +{ > + /* Offset of R0 register. */ > + int r0_offset =3D 0; > + /* Offset of PC register. */ > + int pc_offset =3D 0; > + > + if (is_sigreturn) > + { > + if (sp_data =3D=3D ARM_NEW_SIGFRAME_MAGIC) > + r0_offset =3D ARM_UCONTEXT_SIGCONTEXT + ARM_SIGCONTEXT_R0; > + else > + r0_offset =3D ARM_SIGCONTEXT_R0; > + } > + else > + { > + if (sp_data =3D=3D sp + ARM_OLD_RT_SIGFRAME_SIGINFO) > + r0_offset =3D ARM_OLD_RT_SIGFRAME_UCONTEXT + ARM_UCONTEXT_SIGCONTEXT > + + ARM_SIGCONTEXT_R0; > + else > + r0_offset =3D ARM_NEW_RT_SIGFRAME_UCONTEXT + ARM_UCONTEXT_SIGCONTEXT > + + ARM_SIGCONTEXT_R0; Nit: we can write these long lines like this, if (sp_data =3D=3D sp + ARM_OLD_RT_SIGFRAME_SIGINFO) r0_offset =3D ARM_OLD_RT_SIGFRAME_UCONTEXT; else r0_offset =3D ARM_NEW_RT_SIGFRAME_UCONTEXT; r0_offset +=3D (ARM_UCONTEXT_SIGCONTEXT + ARM_SIGCONTEXT_R0); >=20=20 > - arm_linux_sigreturn_return_addr (frame, svc_number, &return_addr, &is_= thumb); > + if (is_syscall (gdbarch, "sigreturn", svc_number) > + || is_syscall (gdbarch, "rt_sigreturn", svc_number)) > + next_pc =3D arm_linux_sigreturn_next_pc (regcache, svc_number); >=20=20 > /* Addresses for calling Thumb functions have the bit 0 set. */ > if (is_thumb) > - return_addr |=3D 1; > + next_pc |=3D 1; Nit: use MAKE_THUMB_ADDR. --=20 Yao (=E9=BD=90=E5=B0=A7)