This is the mail archive of the
mailing list for the GDB project.
Re: [PATCH] Don't override operator new if GDB is built with -fsanitize=address
- From: Pedro Alves <palves at redhat dot com>
- To: Yao Qi <qiyaoltc at gmail dot com>, GDB Patches <gdb-patches at sourceware dot org>
- Date: Tue, 25 Oct 2016 11:38:13 +0100
- Subject: Re: [PATCH] Don't override operator new if GDB is built with -fsanitize=address
- Authentication-results: sourceware.org; auth=none
- References: <email@example.com> <firstname.lastname@example.org> <CAH=s-POJSmo1rm2JaxmSG7GwqYqRxgv0tMYJKYcix8ddcvctFw@mail.gmail.com>
[Re-adding the list.]
On 10/25/2016 11:15 AM, Yao Qi wrote:
> On Tue, Oct 25, 2016 at 10:39 AM, Pedro Alves <email@example.com> wrote:
> Patch is pushed in.
How about this follow up?
>From e58eb16a5f27b1ee39c45642a80da7364763a07b Mon Sep 17 00:00:00 2001
From: Pedro Alves <firstname.lastname@example.org>
Date: Tue, 25 Oct 2016 11:20:03 +0100
Subject: [PATCH] new-op.c: Add comment about -fsanitize=address
2016-10-25 Pedro Alves <email@example.com>
* common/new-op.c: Add comment about -fsanitize=address.
gdb/common/new-op.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/gdb/common/new-op.c b/gdb/common/new-op.c
index f04c5cb..1eb4f94 100644
@@ -33,6 +33,12 @@
new-handler function instead (std::set_new_handler) because we want
to catch allocation errors from within global constructors too.
+ Skip overriding if building with -fsanitize=address though.
+ Address sanitizer wants to override operator new/delete too in
+ order to detect malloc+delete and new+free mismatches. Our
+ versions would mask out ASan's, with the result of losing that
+ useful mismatch detection.
Note that C++ implementations could either have their throw
versions call the nothrow versions (libstdc++), or the other way
around (clang/libc++). For that reason, we replace both throw and