This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [PATCH v1] Intel(R) MPX - Bound violation handling.
- From: "Tedeschi, Walfred" <walfred dot tedeschi at intel dot com>
- To: Joel Brobecker <brobecker at adacore dot com>
- Cc: "palves at redhat dot com" <palves at redhat dot com>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Thu, 5 Nov 2015 10:04:03 +0000
- Subject: RE: [PATCH v1] Intel(R) MPX - Bound violation handling.
- Authentication-results: sourceware.org; auth=none
- References: <1445864086-4831-1-git-send-email-walfred dot tedeschi at intel dot com> <1445864086-4831-4-git-send-email-walfred dot tedeschi at intel dot com> <20151104145458 dot GK4009 at adacore dot com>
Hello Joel,
Thanks a lot for your support and feedback! :)
The new fields are on the bottom of the structure and yes we are reading junk memory.
On the other hand those fields have meaning when the sig_code is 3, and meaningless otherwise.
Also see that reading the glibc version will not help a lot. Architecture and availability of fields might vary.
Possible solution is to zero the fields if value of sig_code is different than 3.
Or let the interpretation for the user, what is also an option the siginfo is already a set of unions. They have to be interpreted by the user anyhow.
Thanks and regards,
-Fred
-----Original Message-----
From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-owner@sourceware.org] On Behalf Of Joel Brobecker
Sent: Wednesday, November 04, 2015 3:55 PM
To: Tedeschi, Walfred
Cc: palves@redhat.com; gdb-patches@sourceware.org
Subject: Re: [PATCH v1] Intel(R) MPX - Bound violation handling.
> 2015-07-21 Walfred Tedeschi <walfred.tedeschi@intel.com>
>
> * amd64-linux-tdep.c (amd64_linux_init_abi_common):
> Add handler for bound violation signal.
> * gdbarch.sh (bound_violation_handler): New.
> * i386-linux-tdep.c (i386_mpx_bound_violation_handler): New.
> (i386_linux_init_abi): Use i386_mpx_bound_violation_handler.
> * i386-linux-tdep.h (i386_mpx_bound_violation_handler) New.
> * i386-tdep.c (i386_mpx_enabled): Add as external.
> * i386-tdep.c (i386_mpx_enabled): Add as external.
> * infrun.c (process_segmentation_faults): New.
> (print_signal_received_reason): Use process_segmentation_faults.
>
> testsuite/gdb.arch
> * i386-mpx-sigsegv.c: New.
> * i386-mpx-sigsegv.exp: New.
> * i386-mpx-simple_segv.c: New.
> * i386-mpx-simple_segv.exp: New.
This is not a full review (haven't had the time), but one question is nagging at me: How to do handle the case of older kernels/libc-s, where the info is not there? Does it look like you are just reading undefined memory?
--
Joel
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