Что это значит, когда AddressSanitizer выводит ошибку, но не имеет обратной трассировки, а код выхода программы по-прежнC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Что это значит, когда AddressSanitizer выводит ошибку, но не имеет обратной трассировки, а код выхода программы по-прежн

Сообщение Anonymous »

Обычно я успешно использую ASAN в macOS, но в настоящее время я сталкиваюсь с проблемой, заключающейся в том, что моя программа иногда завершается с выводом ошибки ASAN, но в остальном все происходит нормально. Я не получаю никаких следов, как обычно.

Код: Выделить всё

[…] normal program output
=================================================================
==25422==ERROR: AddressSanitizer: heap-use-after-free on address 0x000105a0d918 at pc 0x000102572440 bp 0x00016dd31180 sp 0x00016dd31178
READ of size 8 at 0x000105a0d918 thread T8
[…] program exits with success
Я компилирую свой код с -fsanitize=address -fno-omit-frame-pointer и флагами отладки и запускаю его с ASAN_OPTIONS=abort_on_error=true;handle_abort=true ./ исполняемый файл.
Поскольку этот сбой случается очень редко, я не понимаю, как его можно отладить.
Что мне это говорит, когда ASAN пропускает трассировку который обычно сообщает мне, кто выделил проблемную память и где она была освобождена? Что я могу сделать, чтобы получить эту информацию?
Это MacBook ARM 12.6.5 с кланом Apple Arm64-apple-darwin21.6.0.

Подробнее здесь: https://stackoverflow.com/questions/784 ... race-and-p
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»