RE: [pushed 8.0-branch] [Bug server/22137] gdbserver crashes on hosts with pkru register

Tedeschi, Walfred
2017-10-16T13:20:24Z

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 5457 bytes --]

> -----Original Message-----
> From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] On Behalf Of Pedro Alves
> Sent: Monday, October 16, 2017 2:50 PM
> To: Tedeschi, Walfred <walfred.tedeschi@intel.com>; gdb-
> patches@sourceware.org
> Subject: Re: [pushed 8.0-branch] [Bug server/22137] gdbserver crashes on
> hosts with pkru register
>
> On 10/16/2017 09:30 AM, Tedeschi, Walfred wrote:
> >> -----Original Message-----
> >> From: palves at redhat dot com [mailto:sourceware-
> >> bugzilla@sourceware.org]
> >> Sent: Friday, October 13, 2017 11:06 AM
> >> To: Tedeschi, Walfred <walfred.tedeschi@intel.com>
> >> Subject: [Bug server/22137] gdbserver crashes on hosts with pkru
> >> register
> >>
> >> https://sourceware.org/bugzilla/show_bug.cgi?id=22137
> >>
> >> Pedro Alves <palves at redhat dot com> changed:
> >>
> >> What |Removed |Added
> >> ----------------------------------------------------------------------------
> >> Status|UNCONFIRMED |NEW
> >> Last reconfirmed| |2017-10-13
> >> Ever confirmed|0 |1
> >>
> >> --- Comment #3 from Pedro Alves <palves at redhat dot com> ---
> >>> Bug is confirmed.
> >>
> >> Updating status then. Waldfred, if your account doesn't let you do
> >> that yourself, please let me know.
> >>
> >> And, I believe the bug is fixed in both master and 8.0 branch, right?
> >>
> > Hello Pedro,
> >
> > I have pushed this one to 8.0 branch. In Master it does not apply anymore.
>
> Yes, you had fixed it in

After some exercises I could see that in master it is not reproducible. It is already fixed there.

>
> commit 1b7fa39ed9678fded7264636c1e5cc14c6d6ebc6
> Author: Walfred Tedeschi <walfred.tedeschi@intel.com>
> AuthorDate: Wed Sep 20 15:24:47 2017 +0200
>
> [OBV] amd64-features-makefile: add missing backslash.
>
> In an old commit the backslash of was missing in the rule for creating the
> i386-avx-mpx-avx512-pku.dat file. No need to regenerate the files, this
> was done by another commit from Yao.
>
> Note that if you mention the PR number in the commit log (which happens if
> you put the PR number in the ChangeLog entry, given the ChangeLog is
> pasted in the commit log too), then the bug in bugzilla is automatically
> updated to refer to the commit.
>

Sorry! I missed there!

> > I also couldn't compile master:
> > ../../../binutils-gdb/gdb/probe.c: In function \u2018void
> parse_probes_in_pspace(const probe_ops*, program_space*, const char*,
> const char*, const char*, std::vector<symtab_and_line>*)\u2019:
> > ../../../binutils-gdb/gdb/probe.c:68:12: error: types may not be defined in a
> for-range-declaration [-Werror]
> > for (struct probe *probe : probes)
> > ^~~~~~
> > ../../../binutils-gdb/gdb/probe.c: In function \u2018VEC_probe_p*
> find_probes_in_objfile(objfile*, const char*, const char*)\u2019:
> > ../../../binutils-gdb/gdb/probe.c:213:8: error: types may not be defined in a
> for-range-declaration [-Werror]
> > for (struct probe *probe : probes)
> > ^~~~~~
> >
> > Are you aware of it?
>
> Yes, it's a GCC bug:
> https://sourceware.org/ml/gdb-patches/2017-09/msg00270.html
>
> What is your gcc version?
>
> I don't see this myself, but I know that Keith also ran into this recently. If it's
> easy to work around it, I don't see why not.
>
> Does this work for you?
>
It worked!
Thanks!
/Fred
> From 9c7590f2ea94930fd9280a6d66610edd53c0bb16 Mon Sep 17 00:00:00
> 2001
> From: Pedro Alves <palves@redhat.com>
> Date: Mon, 16 Oct 2017 13:39:12 +0100
> Subject: [PATCH] fix
>
> ---
> gdb/probe.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/gdb/probe.c b/gdb/probe.c
> index b3dbf89..f657548 100644
> --- a/gdb/probe.c
> +++ b/gdb/probe.c
> @@ -65,23 +65,23 @@ parse_probes_in_pspace (const struct probe_ops
> *probe_ops,
> const std::vector<probe *> &probes
> = objfile->sf->sym_probe_fns->sym_get_probes (objfile);
>
> - for (struct probe *probe : probes)
> + for (probe *pro : probes)
> {
> - if (probe_ops != &probe_ops_any && probe->pops != probe_ops)
> + if (probe_ops != &probe_ops_any && pro->pops != probe_ops)
> continue;
>
> - if (provider && strcmp (probe->provider, provider) != 0)
> + if (provider && strcmp (pro->provider, provider) != 0)
> continue;
>
> - if (strcmp (probe->name, name) != 0)
> + if (strcmp (pro->name, name) != 0)
> continue;
>
> symtab_and_line sal;
> - sal.pc = get_probe_address (probe, objfile);
> + sal.pc = get_probe_address (pro, objfile);
> sal.explicit_pc = 1;
> sal.section = find_pc_overlay (sal.pc);
> sal.pspace = search_pspace;
> - sal.probe = probe;
> + sal.probe = pro;
> sal.objfile = objfile;
>
> result->push_back (std::move (sal));
> --
> 2.5.5

Thanks and 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
\x16º&Öéj×!zÊÞ¶êç×ºßib²Ö«r\x18\x1dn–­r\x17¬