From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 107965 invoked by alias); 14 Sep 2015 13:23:52 -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 107945 invoked by uid 89); 14 Sep 2015 13:23:51 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 X-HELO: usevmg20.ericsson.net Received: from usevmg20.ericsson.net (HELO usevmg20.ericsson.net) (198.24.6.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-SHA encrypted) ESMTPS; Mon, 14 Sep 2015 13:23:50 +0000 Received: from EUSAAHC008.ericsson.se (Unknown_Domain [147.117.188.96]) by usevmg20.ericsson.net (Symantec Mail Security) with SMTP id DB.4B.32596.3BB66F55; Mon, 14 Sep 2015 08:39:47 +0200 (CEST) Received: from [142.133.110.95] (147.117.188.8) by smtp-am.internal.ericsson.com (147.117.188.98) with Microsoft SMTP Server id 14.3.248.2; Mon, 14 Sep 2015 09:23:47 -0400 From: Antoine Tremblay Subject: Re: [PATCH 0/7] Support tracepoints and software breakpoints on ARM aarch32-linux in GDBServer. To: Yao Qi References: <1441973603-15247-1-git-send-email-antoine.tremblay@ericsson.com> <867fnt5lz4.fsf@gmail.com> CC: Message-ID: <55F6CA63.5000001@ericsson.com> Date: Mon, 14 Sep 2015 13:23:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <867fnt5lz4.fsf@gmail.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2015-09/txt/msg00285.txt.bz2 On 09/14/2015 06:33 AM, Yao Qi wrote: > Antoine Tremblay writes: > > Hi Antoine, > Thanks for the work! > >> This patch series adds support for tracepoints and software breakpoints on ARM >> aarch32 on linux. > > Term "aarch32" is only used on armv8, means 32-bit execution state. > What your patches do is to add software single step and tracepoint point > for ARM (ARMv7 and pre-ARMv7). Don't need to say "aarch32". > Yes I was a bit confused about that I thought aarch32 meant all old 32-bit instruction sets where it seems to refer the the 32 bits instructions in armv8 only. I could rephrase to ARM 32 bits or up to ARMv7 ? Or just ARM ? I don't want to bring confusion with aarch64 since it supports hardware single step. > Your patch series include too much things, and we need to split them, > >> >> Some background : >> >> Some specific issues for ARM aarch32 make it difficult for GDBServer to enable >> these features namely : it has no hardware single step support and the >> breakpoint data and size depends on the current instruction set used, thumb, >> thumb2 or arm. >> >> So GDBServer needs to know how to set a breakpoint of different size based on >> the current instruction and registers and it needs to be able to do software >> single stepping. > > The first part can be teaching GDBserver to choose the right breakpiont > instruction (of different size and encoding) based on the address. > Then, the second part can be teaching GDBserver to do software single stepping. > Yes I could separate the two, my main reason to go with them both was that I could not test the breakpoints if I did not have software single step. I'll separate them. >> >> This patchset teaches this to GDBServer and enables support for tracepoints and >> software breakpoints. > > Support tracepoint on ARM (with software single step in GDBserver side) > can be the third part. This is already a separate patch, namely 7/7. Did you meant to create a patchset for it ? I guess I could separate the patch in maybe 2 or 3 but isn't it better to keep it inside the patchset otherwise we will have to sync 3 patchsets versions since they depend on each other ? >> >> The patchset : >> >> This patchset applies over : >> https://sourceware.org/ml/gdb-patches/2015-09/msg00004.html >> to avoid an immediate conflict... > > I'll push it in, if there are no regressions on x86 and aarch64. > OK thanks :) >> >> This patchset was tested on Ubuntu 14.04 on ARMv7 and x86 no regressions found. > > How do you test them on ARMv7? I assume you tested your patches against > gdbserver, but did you test them against compile options -marm and > -mthumb respectively? I do it in this way, > > $ make check RUNTESTFLAGS='--target_board=YOUR_BOARD\{-marm,-mthumb\}' Yes indeed with native-gdbserver and native-extended-gdbserver, But I had only checked manually with -march and -mthumb with specific tests. I'll add this to my buildbot in general and make it more clear what test configs were used. > > YOUR_BOARD can be unix, native-gdbserver or whatever you are using. > Sometime, I also pass -march=armv4t to exercise thumb-1 instructions, > but I don't know whether your gcc has such multi-lib or not. > It does support it at least according to the man so I'll add this one too. Thanks !