- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让 ASAN 使用一个程序,但我所做的任何事情都会导致 ASAN:DEADLYSIGNAL
,所以我尝试缩小范围并使用只有几个编译器选项的小型测试程序,只是为了看看它是否可以工作:
$ cat > test.c <<EOF
int main(void) { return 0; }
EOF
$ gcc -g -O0 -fno-omit-frame-pointer -fsanitize=address test.c && ./a.out
ASAN:DEADLYSIGNAL
=================================================================
==5711==ERROR: AddressSanitizer: SEGV on unknown address 0xb7f11e70 (pc 0xb7f11e84 bp 0xb7ab6320 sp 0xbf92368c T16777215)
==5711==The signal is caused by a WRITE memory access.
#0 0xb7f11e83 in _dl_get_tls_static_info (/lib/ld-linux.so.2+0x11e83)
#1 0xb7a24ff9 (/usr/lib/i386-linux-gnu/libasan.so.4+0x101ff9)
#2 0xb7a10f15 (/usr/lib/i386-linux-gnu/libasan.so.4+0xedf15)
#3 0xb7f0f91a (/lib/ld-linux.so.2+0xf91a)
#4 0xb7f00cb9 (/lib/ld-linux.so.2+0xcb9)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/lib/ld-linux.so.2+0x11e83) in _dl_get_tls_static_info
==5711==ABORTING
-static-libasan
堆栈跟踪只是更具描述性:
$ gcc -g -O0 -fno-omit-frame-pointer -fsanitize=address -static-libasan test.c && ./a.out
ASAN:DEADLYSIGNAL
=================================================================
==5719==ERROR: AddressSanitizer: SEGV on unknown address 0xb7fc6e70 (pc 0xb7fc6e84 bp 0x005f91a0 sp 0xbfe77c2c T16777215)
==5719==The signal is caused by a WRITE memory access.
#0 0xb7fc6e83 in _dl_get_tls_static_info (/lib/ld-linux.so.2+0x11e83)
#1 0x560a49 in __sanitizer::InitTlsSize() (/home/gkirilov/test/a.out+0xe9a49)
#2 0x552e05 in __asan::AsanInitInternal() (/home/gkirilov/test/a.out+0xdbe05)
#3 0xb7fc491a (/lib/ld-linux.so.2+0xf91a)
#4 0xb7fb5cb9 (/lib/ld-linux.so.2+0xcb9)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/lib/ld-linux.so.2+0x11e83) in _dl_get_tls_static_info
==5719==ABORTING
$ uname -a
Linux drinkpad 4.14.0-3-686-pae #1 SMP Debian 4.14.17-1 (2018-02-14) i686 GNU/Linux
$ gcc --version
gcc (Debian 7.3.0-11) 7.3.0
$ /lib/i386-linux-gnu/libc-2.27.so
Compiled by GNU CC version 7.3.0.
libc ABIs: UNIQUE IFUNC
clang-6
和
gcc-8
(它带来了 ASAN v5),再次使用静态和共享 libasan,我得到了相同的消息。
最佳答案
您正面临着 known Asan bug (这里是 Glibc thread
和 GCC bug )。 TLDR 是它在 Glibc 2.25+ 上失败,因为 Glibc 更改了 Asan 所依赖的一些内部接口(interface)。遗憾的是,这个错误还没有得到足够的重视。
关于address-sanitizer - AddressSanitizer : SEGV in _dl_get_tls_static_info,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49352485/
我在 _WebTryThreadLock 中偶尔会看到像这样的崩溃报告: Exception Type: SIGSEGV Exception Codes: SEGV_ACCERR a
vector *v =new vector[size]; for(i=0;i>(size/*, vector(1024)*/); 然后使用它 for(auto v& : vv) { v.pus
我有以下代码,它被 SEGV 信号杀死。使用调试器表明它被 main() 中的第一个 sem_init() 杀死。如果我注释掉第一个 sem_init() ,第二个会导致同样的问题。我试图弄清楚是什么
我目前正在调试我们的一个 C++ 应用程序中的段错误,这让我很难过,因为在发生段错误时没有生成核心文件。 在阅读和检查 ulimits 等之后,我可以重现核心文件未生成的情况。它似乎以某种方式与线程有
我在 strace 下运行了一个用汇编语言编写的简单程序,该程序仅执行 SYS_exit。 _start: mov rax, 0x3C mov rdi, 0x0 syscall
我在热门编码网站 codechef 上提交名为“Money Transformation”的问题时遇到问题。每次我提交解决方案时,我都会收到运行时错误名称 SIG SEGV。经过一些搜索在谷歌上我发现
Getting Segmentation error ,请在下面的c代码逻辑中帮助问题。程序因信号 SIGSEGV、段错误而终止。 /* * For your reference: * * Si
我有一个经过良好测试且没有崩溃的代码库(主要是 C++)。大多。代码的一部分——不可替代、难以维护或改进并链接到一个二进制库*——导致所有崩溃。这些不会经常发生,但一旦发生,整个程序就会崩溃。
我已经安装了一个处理程序(例如,crashHandler()),它具有一些文件输出功能。它是一个使用 crashHandler() 注册 SIGSEGV 的 linux 线程。需要写入文件,因为它将堆
我在 ubuntu 11.10 上安装了 vim-gnome 并且可以正常工作。使用 vundle 并安装了 seeral 软件包,一切正常。 我已经安装了 command-t,但在编译 C 扩展之前
我正在尝试编写一些高性能汇编函数作为练习,并且在运行程序时遇到了一个奇怪的段错误,但在 valgrind 或 nemiver 中没有。 基本上不应该运行的 cmov,带有越界地址,即使条件始终为假,也
我试图让 ASAN 使用一个程序,但我所做的任何事情都会导致 ASAN:DEADLYSIGNAL ,所以我尝试缩小范围并使用只有几个编译器选项的小型测试程序,只是为了看看它是否可以工作: $ cat
将 vim 与 pathogen 和 rails.vim 一起使用时,有时会导致 vim 崩溃。这是我的崩溃控制台日志文件。我怎样才能防止这种情况发生? Process: vim [1
我有一个应用程序可以扫描文件并收集有关文件的元数据。一个功能是获取文件的文件大小。为此,我使用了 winapi 函数 GetFileSizeEx(Handle, PLARGE_INTEGER) 。参数
我正在尝试调整结构的 vector 元素的大小,它会导致 segv。但是当我为一些小结构单独做它时它工作得很好。我很想知道它是如何将内存分配给结构的,其中有一个可以调整大小的 vector 元素。下面
试图在我的小电脑上构建一个矩阵,数组变大,内存容量用完,然后我得到了一个segv,我想知道C++中是否有一种方法可以在不跳出的情况下检测segv并然后继续? unsigned m = 10000; u
上下文化,在编译我的代码后,我收到了一个 SEGV 信号,这与未经授权的内存访问有关。考虑到源代码并且代码在最近的更改之前可以正常工作。为什么我会收到此信号? Note: Motif's type r
我收到错误 SEGV on unknown address 运行我的程序时。我很确定它来自 fgets() 但我不太清楚为什么。在此之前,我使用 scanf() 并且运行良好。输入很好地进入了数组,但
以下程序在使用 g++ 退出后出现段错误: #include #include
我正在构建一个包含大量 Android 源代码的库。如果为 Linux x86 编译,该库工作正常。我正在使用独立的工具链构建它。我之前在其他库中已经成功地做到了这一点,所以我觉得我的设置很好。无论如
我是一名优秀的程序员,十分优秀!