Don't override operator new if GDB is built with -fsanitize=address
Commit Message
[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 <palves@redhat.com> wrote:
>>
>> LGTM.
>>
>
> Patch is pushed in.
>
How about this follow up?
From e58eb16a5f27b1ee39c45642a80da7364763a07b Mon Sep 17 00:00:00 2001
From: Pedro Alves <palves@redhat.com>
Date: Tue, 25 Oct 2016 11:20:03 +0100
Subject: [PATCH] new-op.c: Add comment about -fsanitize=address
gdb/ChangeLog:
2016-10-25 Pedro Alves <palves@redhat.com>
* common/new-op.c: Add comment about -fsanitize=address.
---
gdb/common/new-op.c | 6 ++++++
1 file changed, 6 insertions(+)
@@ -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
--
2.5.5