如何在 godbolt.org 启用地址清理器

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

我尝试使用

-fsanitize=address
在 godbolt.org 上启用地址清理程序,但出现错误:

==3==ERROR: AddressSanitizer failed to allocate 0xdfff0001000 (15392894357504) bytes at address 2008fff7000 (errno: 12)
==3==ReserveShadowMemoryRange failed while trying to map 0xdfff0001000 bytes. Perhaps you're using ulimit -v

示例:https://godbolt.org/z/5GDtrr

如何正确启用地址清理程序?

c++ address-sanitizer
2个回答
8
投票

根据设计,Asan 在启动时分配大量虚拟内存(x86_64 机器上为 20 Tb)(详细信息此处)。如果禁用了 过量使用 使用 ulimit -v 限制虚拟内存,这可能会出现问题。

在这两种情况下,Asan 都无能为力 - 您需要向 Godbolt VM 维护人员提出这个问题 https://github.com/mattgodbolt/compiler-explorer/issues


0
投票

我将这个答案发布给任何将来在这里遇到困难的人。

目前(2024 年)您可以通过传入

-fsanitize=address
限制来启用 godbolt 中的地址清理程序。有效!

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