Описание тега ubsan
Undefined Behavior sanitizer (ubsan) - это быстрый детектор неопределенного поведения для Clang и GCC. Для обнаружения неопределенного поведения во время выполнения будут предусмотрены различные вычисления.
1
ответ
Неопределенная ссылка на `__ubsan_handle_nonnull_arg'
В последние дни я работал над набором проблем, и до сих пор это то, что у меня есть. К сожалению, он не компилируется, и я немного растерялся. Я был бы очень благодарен, если бы кто-нибудь помог мне и сказал, что я делаю неправильно. // Implements a…
14 сен '18 в 13:47
2
ответа
Как настроить вывод отчетов ASAN/UBSAN
Я хотел бы запустить мой пакет модульных тестов с -fsanitize=address,undefined и все ошибки дезинфицирующего средства должны быть записаны в report.txt файл. По умолчанию все ошибки дезинфицирующего средства записываются в стандартный вывод, однако …
25 сен '16 в 12:08
2
ответа
Как я могу определить, скомпилирован ли UBSAN с использованием clang или gcc?
Мы используем следующий код, чтобы определить, -fsanitize=address был указан во время компиляции для clang и gcc. Как мы определяем, если -fsanitize=undefined был указан? bool isSanitized = false; #if defined(__has_feature) #if __has_feature(address…
07 сен '16 в 13:51
0
ответов
Предупреждение: неизвестный атрибут no_sanitize игнорируется [-Wattributes]
При компиляции проекта CharLS C++ я получаю следующее (раздражающее) предупреждение: losslesstraits.h:44:21: warning: unknown attribute 'no_sanitize' ignored [-Wattributes] __attribute__((no_sanitize("shift"))) ^ Ссылка: https://github.com/team-char…
18 янв '18 в 09:02
2
ответа
Использование GCC Undefined Behavior Sanitizer
Сегодня я прочитал статью о GCC Undefined Behavior Sanitizer (ubsan). Тем не менее, когда я следую шаги там (добавить -fsanitize=undefined к моему коду), компилятор (GCC 4.9.2 в Ubuntu 15.04) говорит, что некоторые ссылки не определены: ||=== Build:…
04 авг '15 в 07:57
1
ответ
Clang++ UBSAN сообщает о недопустимом значении типа 'std::_Ios_Fmtflags'
Следующие коды будут аварийно завершаться при компиляции clang UBSAN #include <stdio.h> #include <stdlib.h> #include <iostream> #include <sstream> template<class T> inline std::string floatToString(T i){ printf("in floa…
29 июн '15 в 05:09
1
ответ
Перехват переполнения при использовании gcc
У меня есть устаревший c проект со многими преобразованиями типов и кастингами. Обычно, чтобы проверить динамическое поведение переполнения, gcc (и C lang) определяет встроенную функцию для этого: Встроенная функция: bool __builtin_add_overflow (typ…
04 дек '16 в 14:24
1
ответ
Как правильно привести uint32_t к неподписанному
Я пытаюсь исправить код C++ с помощью дезинфицирующего устройства. Код говорит: unsigned result = *(uint32_t*)data; И дезинфицирующее средство дает: runtime error: load of misaligned address 0x6280033f410a for type 'uint32_t', which requires 4 byte …
14 сен '17 в 21:43
1
ответ
Файл подавления дезинфицирующего средства неопределенного поведения: не удалось проанализировать подавления
После компиляции приложения с помощью clang 3.6 с использованием -fsanitize=undefined я пытаюсь запустить инструментальную программу, используя файл подавления, чтобы игнорировать некоторые из ошибок: UBSAN_OPTIONS="suppressions=ubsan.supp" ./app.ex…
04 мар '16 в 17:55
2
ответа
Почему -fsanitize=undefined вызывает "неопределенную ссылку на typeinfo"?
Следующий тестовый пример, исключенный из реального приложения, не может связаться с -fsanitize=undefined (с использованием GCC 6.1.1), но ссылки без него нормально. Кто-нибудь может сказать мне, почему? Похоже, что-то связано с комбинацией Qt / QOb…
21 май '16 в 03:29
2
ответа
Как я могу разорвать на UBSan отчеты в GDB и продолжить?
Последние версии GCC и Clang имеют функцию Undefined Behavior Sanitizer (UBSan), которая является флагом компиляции (-fsanitize=undefined), который добавляет код инструментария во время выполнения. В случае ошибок отображается следующее предупрежден…
12 июн '15 в 17:32
2
ответа
Как подавить некоторые ошибки без знака целочисленного переполнения из UBsan?
Большинство из моих -fsanitize=unsigned-integer-overflow ошибки - это ошибки, но иногда я явно использую их по назначению, в результате чего UBSan дает ложные срабатывания. Есть ли способ отключить проверку без переполнения целых чисел в UBS для опр…
26 окт '15 в 17:27
2
ответа
Проверка Clang во время выполнения: печать обратной трассировки
Компилятор Clang предоставляет ряд полезных проверок во время выполнения, например, например -fsanitize=unsigned-integer-overflow, Могу ли я распечатать обратную трассировку (например, используя gdb), если одна из проверок не пройдена? В настоящее в…
23 окт '13 в 09:49
1
ответ
C++ clang UBsan имя флага подавления
Запуск gzip.hpp код от Boost версии 1.64 с убсаном clang выдает следующее сообщение: path/to/boost/1_64_0/include/boost/iostreams/filter/gzip.hpp:674:16: runtime error: implicit conversion from type 'int' of value 139 (32-bit, signed) to type 'char'…
25 ноя '18 в 10:14
0
ответов
Вызов функции (неизвестно) через указатель на неверный тип функции
У меня есть программа, которая динамически связывается с библиотекой. Программа передает указатель на эту библиотеку для выполнения. Но убсан (Undefined Behavior Sanitizer) указал, что указатель имеет неверный тип функции. И это происходит только ес…
05 апр '17 в 02:47
1
ответ
Ошибка сегментации в gcc, вызванная лямбда-оберткой по вызову функции шаблона
Сегодня я потратил довольно много часов, пытаясь понять, почему этот код не работает g++6.2 а также g++7.0 в то время как счастливо работает как задумано clang++3.9 (а также 4.0 ) Я сократил эту проблему до 85-фрагментного фрагмента кода, который не…
15 ноя '16 в 19:41
2
ответа
UBSan: загрузка смещенного адреса
** Редактировать: вопрос не в определении доступа к невыровненным данным, а в том, почему memcpy отключает убсанитизаторы, тогда как приведение типов этого не делает, несмотря на генерацию того же кода сборки ** У меня есть пример кода для разбора п…
03 дек '17 в 15:31
2
ответа
Добавление указателя и целочисленное переполнение в Clang 5.0 и UBsan?
Я пытаюсь понять проблему, которую мы недавно решили при использовании Clang 5.0 и Undefined Behavior Sanitizer (UBsan). У нас есть код, который обрабатывает буфер в прямом или обратном направлении. Сокращенный регистр похож на код, показанный ниже.…
18 дек '17 в 00:00
2
ответа
ld: файл не найден: /Library/Developer/.../libclang_rt.ubsan_osx_dynamic.dylib
Я пытаюсь использовать Undefined Behavior Sanitizer, строя вот так gcc -fsanitize=undefined add.c -o add также clang -fsanitize=undefined -O add.c -o add В обоих случаях я получаю сообщение об ошибке "Файл не найден": ld: file not found: /Library/De…
19 мар '17 в 23:53
1
ответ
Загрузка адреса X с недостаточным пространством для объекта типа Y
Я запускаю некоторые обновления через Undefined Behavior Sanitizer. Дезинфицирующее средство выдает сообщение, которое я не совсем понимаю: kalyna.cpp:1326:61: runtime error: load of address 0x0000016262c0 with insufficient space for an object of ty…
08 май '17 в 19:24