gpt4 book ai didi

gcc - GCC 4.8 上的 AddressSanitizer 崩溃

转载 作者:行者123 更新时间:2023-12-01 04:35:05 24 4
gpt4 key购买 nike

我刚刚试用了 GCC 4.8 令人兴奋的新功能 AddressSanitizer。

程序

#include <iostream>
int main(int argc, const char * argv[], const char * envp[]) {
int *x = nullptr;
int y = *x;
std::cout << y << std::endl;
return 0;
}

编译查找使用

g++-4.8 -std=gnu++0x -g -fsanitize=address -fno-omit-frame-pointer -Wall ~/h.cpp -o h

但是当我运行程序时我得到

ASAN:SIGSEGV
=================================================================
==7531== ERROR: AddressSanitizer crashed on unknown address 0x000000000000 (pc 0x000000400aac sp 0x7fff11ce0fd0 bp 0x7fff11ce1000 T0)
AddressSanitizer can not provide additional info.
#0 0x400aab (/home/per/h+0x400aab)
#1 0x7fc432e1b76c (/lib/x86_64-linux-gnu/libc-2.15.so+0x2176c)
Stats: 0M malloced (0M for red zones) by 0 calls
Stats: 0M realloced by 0 calls
Stats: 0M freed by 0 calls
Stats: 0M really freed by 0 calls
Stats: 0M (0 full pages) mmaped in 0 calls
mmaps by size class:
mallocs by size class:
frees by size class:
rfrees by size class:
Stats: malloc large: 0 small slow: 0

这似乎是报告内存错误的不正确方式。我是否遗漏了一些编译或链接标志?

最佳答案

这是报告 NULL 取消引用的预期方式。您可以通过 asan_symbolize.py(应该存在于您的 GCC 树中)运行程序输出以获取源文件中的符号名称和行号。

关于gcc - GCC 4.8 上的 AddressSanitizer 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com