Описание тега thread-sanitizer
ThreadSanitizer (TSan) - это детектор гонки данных для программ C/C++.
1
ответ
Запись-запись данных из std::set insert() и find()?
Чтобы поэкспериментировать с потоком-дезинфицирующим средством, я создал крошечную программу на C++, которая по назначению содержит гонку данных. Действительно, Цан обнаруживает ошибку, отлично! Однако я озадачен сгенерированным сообщением... Он соо…
07 мар '14 в 14:12
1
ответ
Инструмент для обнаружения злоупотреблений API POSIX pthreads, но не Helgrind
По какой-то причине я не могу использовать Helgrind для обнаружения злоупотреблений API POSIX pthreads (например, разблокировка неблокированного мьютекса, освобождение памяти, которая содержит заблокированный мьютекс и т. Д.). Я пытался найти другой…
17 фев '18 в 06:35
1
ответ
Гонка данных в источнике таймера отправки
ThreadSanitizer обнаруживает гонку данных в следующей программе Swift macOS: import Dispatch class Foo<T> { var value: T? let queue = DispatchQueue(label: "Foo syncQueue") init(){} func complete(value: T) { queue.sync { self.value = value } } …
26 янв '17 в 16:52
0
ответов
Как встроить Джулию в C++ cmake-приложение, созданное с помощью gcc
Я делаю библиотеку для исполняемого приложения C++ cmake. В этой библиотеке я хочу иметь возможность вызывать функции julia, как показано в этом примере. Для этого я скачал бинарные файлы Julia Linux, которые включают в себя исполняемое приложение, …
18 дек '17 в 11:17
1
ответ
Дезинфицирующее средство потока Gcc ложно положительно только для флага отладочной информации
У меня возникла проблема с средством очистки потоков Gcc, которое я не могу найти в их bugzilla или в stackru, поэтому я не уверен, что я что-то упустил или это действительно ошибка. Если я создаю файл main.cpp, содержащий: #include <thread> i…
25 фев '15 в 13:06
0
ответов
Средство очистки потока сообщает о гонке данных при использовании std::packaged_task/std::exception_ptr
Я испытываю некоторые проблемы с обработчиком потоков (TSan), жалуясь на гонку данных в некотором производственном коде, где std::packaged_task передается потоку диспетчера, помещая их в std:: function. Для этого вопроса я упростил то, что он делает…
02 июн '16 в 08:56
1
ответ
ThreadSanitizer печатает только 2 кадра
По какой-то причине стеки вызовов, создаваемые ThreadSanitizer в моем журнале, всегда ровно в два кадра (#0, #1). Есть ли скрытая настройка, ограничивающая количество кадров? С уважением
23 июл '18 в 19:09
2
ответа
ThreadSanitizer сообщает "гонка данных при удалении оператора (void*)" при использовании встроенного счетчика ссылок
Пожалуйста, посмотрите на следующий код: #include <pthread.h> #include <boost/atomic.hpp> class ReferenceCounted { public: ReferenceCounted() : ref_count_(1) {} void reserve() { ref_count_.fetch_add(1, boost::memory_order_relaxed); } voi…
27 июн '14 в 07:45
3
ответа
C++11 (санация потока g++) Упорядочивание неатомарных операций с атомами (ложное срабатывание?)
Я экспериментирую с g ++ и обработчиком потоков и думаю, что получаю ложные срабатывания. Это правда или я совершаю большую ошибку? Программа (вырезано и вставлено Энтони Уильямсом: параллелизм C++ в действии, стр. 145, листинг 5.13) #include <at…
15 авг '16 в 09:43
1
ответ
GCC 4.9.1 ThreadSanitizer "Как будто синхронизируется через сон"
Я работаю над очисткой предупреждений ThreadSanitizer в крупном проекте. В частности, в этом конкретном случае существует порожденная нить, которая читает файл, производитель. Затем есть один или несколько декомпрессионных потоков как часть пула пот…
31 июл '14 в 20:51
1
ответ
Как избежать гонки данных с GCD DispatchWorkItem.notify?
В Swift 3.1 на XCode 8.3 при запуске следующего кода с Thread Sanitizer обнаруживается гонка данных (см. Комментарии "запись и чтение" в коде): private func incrementAsync() { let item = DispatchWorkItem { [weak self] in guard let strongSelf = self …
31 мар '17 в 01:49
1
ответ
Сбой процесса XPC в старых macOS из-за отсутствия дезинфицирующих средств
Когда я беру Debug Build своего приложения MacOS, встроенного в Xcode 9.1, и перемещаю его на Mac с MacOS 10.11 или 10.12 для тестирования, я обнаруживаю, что процесс XPC моего приложения аварийно завершает работу при загрузке, и в отчете о сбое ука…
29 дек '17 в 16:12
1
ответ
ThreadSanitizer (tsan) - значимая информация из общей библиотеки
Мое приложение использовало библиотеку wxWidgets, созданную из исходного кода через gcc 5.1.0, с использованием -g и -O0. Я скомпилировал свое приложение, используя clang++36 -g -fsanitize=thread -stdlib=libC++, и связал его, используя clang++36 -g …
07 май '15 в 05:20
0
ответов
iOS - использовать Thread Sanitizer в PacketTunnelProvider?
Я хотел бы использовать Thread Sanitizer для отладки потоков в моем проекте, однако большая часть моего кода выполняется в моем PacketTunnelProvider. Проблема заключается в том, что Thread Sanitizer доступен только при запуске на симуляторе, а библи…
30 окт '17 в 17:17
1
ответ
Дезинфицирующее средство заставляет приложение постоянно зависать?
Всякий раз, когда я запускаю приложение с включенным дезинфицирующим средством, оно просто зависает. Когда я приостанавливаю выполнение, я всегда вижу какой-то вызов функции tsan, на котором основной поток полностью застрял. Как я могу предотвратить…
05 май '17 в 00:42
1
ответ
Ошибка теневой памяти и fPie при запуске кода с помощью средства очистки потока?
Следующий пример кода скомпилирован с последующим вводом командной строки #include <pthread.h> #include <stdio.h> #include <string> #include <map> typedef std::map<std::string, std::string> map_t; void *threadfunc(void …
27 авг '18 в 14:29
1
ответ
Как я могу подавить предупреждения Thread Sanitizer в Xcode из внешней библиотеки?
Xcode 8 включает Thread Sanitizer, инструмент для определения условий гонки и других проблем, связанных с многопоточностью. Я пытаюсь запустить это против моего проекта и обнаруживаю много проблем со сторонней двоичной библиотекой. Эти проблемы прео…
07 июл '16 в 17:07
1
ответ
Отсутствует libclang_rt.tsan-x86_64.a в clang-7.0
Я пытаюсь найти тупик в многопоточном коде, который использует переменную условия. Кто-то посоветовал использовать дезинфицирующее средство для нитей. Поэтому я скомпилировал LLVM из исходного кода и включил средство для очистки потоков LLVM собран …
10 окт '18 в 14:55
0
ответов
Захват локального объекта в лямбде по ссылке может вызвать гонку данных или нет?
У меня есть некоторый кусок кода, который вызывает ошибку при запуске с Thread Sanitizer на: bool Renderer::render(std::optional<int32_t> cancellationToken) { const RenderWatcher renderWatcher{cancellationToken}; ... return Render(... [&re…
24 фев '18 в 08:39
1
ответ
Clang ThreadSanitizer: разблокировка разблокированного мьютекса, и атомная система создает гонку данных
Я анализирую потоки с помощью ThreadSanitizer и получаю предупреждение, которое очень, очень запутывает мое понимание того, как работают мьютексы. Я использую gcc 6.3 на Debian Stretch. В одном классе у меня есть: auto MyPtr = std::make_shared<My…
20 июл '17 в 15:16