Asan不报告泄漏信息

问题描述 投票:0回答:1

我编写了一个使用新功能并且不使用删除功能的简单c ++程序,然后使用了asan,但没有报告。

#include <iostream>
#include <stdint.h>

using namespace std;

int main()
{
    int *p = new int[50];
    for (uint32_t i = 0; i < 50; ++i)
    {
        *(p + i ) = i;
    }
    cout << *p << endl;
    return 0;
}

然后./g++ main.cpp -lasan -L/root/local/lib64/ -fsanitize=address -fno-omit-frame-pointer -g

并打印0,但不报告删除泄漏。为什么?

如果我使用export LD_PRELOAD=/usr/local/lib64/libasan.so.0.0.0,则./g++ main.cpp报告

g++: internal compiler error: Segmentation fault (program collect2)
0x40c400 execute
    ../../gcc/gcc.c:2823
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

看起来像collect2核心转储,所以我运行cd libexec/gcc/x86_64-unknown-linux-gnu/4.8.5/ && ./colloct2,报告Segmentation fault (core dumped)

我使用源代码安装gcc-4.8.5,centos 6。

centos g++ address-sanitizer
1个回答
0
投票

gcc-4_8-branch甚至不包含libsanitizer / lsan /目录。请尝试使用最新的GCC版本。由https://github.com/google/sanitizers/issues/699

© www.soinside.com 2019 - 2024. All rights reserved.