This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [PATCH 00/25 V2] Make GDB builtin target descriptions more flexible
- From: "Tedeschi, Walfred" <walfred dot tedeschi at intel dot com>
- To: Simon Marchi <simon dot marchi at polymtl dot ca>, Yao Qi <qiyaoltc at gmail dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Mon, 26 Jun 2017 14:45:01 +0000
- Subject: RE: [PATCH 00/25 V2] Make GDB builtin target descriptions more flexible
- Authentication-results: sourceware.org; auth=none
- Dlp-product: dlpe-windows
- Dlp-reaction: no-action
- Dlp-version: 10.0.102.7
- References: <1497256916-4958-1-git-send-email-yao.qi@linaro.org> <fd47a95c9ceec68a5a18847189a175a1@polymtl.ca>
-----Original Message-----
From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-owner@sourceware.org] On Behalf Of Simon Marchi
Sent: Monday, June 19, 2017 9:00 PM
To: Yao Qi <qiyaoltc@gmail.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 00/25 V2] Make GDB builtin target descriptions more flexible
On 2017-06-12 10:41, Yao Qi wrote:
> This patch series is to change GDB and GDBserver builtin target
> descriptions more flexible, by removing pre-generated ones. Instead,
> these builtin target descriptions can be got lazily and dynamically.
> GDB builtin target descriptions are created from initialize_tdesc_*
> functions in features/*.c files, while GDBserver builtin target
> descriptions are generated from regformats/*.dat files.
>
> This patch series changes both GDB and GDBserver to create target
> description dynamically from features, instead of using pre-generated
> target descriptions. This patch series only convert x86-linux (
> including i386-linux, amd64-linux and x32-linux) target description to
> demonstrate the usefulness of the change.
>
> Once one target architecture switches to the new flexible target
> description,
>
> - only need xml feature files under gdb/features directory. All
> existing target description xml files can be kept for the tests.
> Add new xml feature file if we want to support the new feature, but
> don't need to add new target description xml files.
>
> - All existing gdb/regformats/*.dat are not used, but kept for the
> tests.
>
> This is the V2, and V1 is here
> https://sourceware.org/ml/gdb-patches/2017-05/msg00291.html,
> the differences are,
>
> - Change target descriptions for both GDB and GDBserver,
> - Generate functions creating features from xml feature file
> instead of feature name, so that don't have to worry about
> different features with the same name (different features
> with the same name still have different file names).
> - Extend the changes for i386-linux to x86-linux (including,
> {i386,amd64,x32}-linux)
>
> The big design change in V2 is that use generate c files from xml
> feature files, and use generate c files in both GDB and GDBserver.
>
> In next step, I want to remove the duplication of target descriptions
> in GDB and GDBserver, and share more code on creating x86-linux target
> descriptions in GDB and GDBserver.
> I also want people give comments on how to do unit/self tests in
> GDBserver, see patch 14. The purpose of this patch series is still to
> demonstrate the design, so the changelog, NEWS entry, and doc may be
> incomplete. I'll complete them later.
>
> Regression tested on x86_64-linux (both -m64 and -m32), native and
> gdbserver, on aarch64-linux native and gdbserver.
> ppc64-linux, native.
Hi Yao,
Do you have a git branch we can pull from to look at this change?
Thanks,
Simon
Hello Yao,
I did some tests and they are looking fine for remote and native gdb.
I could tweak the XCR0 in GDB and GDBSERVER and see tests that also use cpu-id to detect features failing, as expected! Very nice!
Thanks again!
As an observation, in the gdbserver side there are calls to _get_ipa_tdesc. I suppose we could rename this to a more generic name.
About the design: GDBserver still uses the combination of cpu features to build the target description.
On the other hand, the improvement was huge, i.e. I would go to accept the patch and consider an additional patch series to address gdbserver tdesc creation.
Best regards,
/Fred
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928