Инструмент для порчи темы? - PullRequest
6 голосов
/ 15 марта 2011

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

Мне было бы любопытно, есть ли инструмент, позволяющий связываться с тремя временами таким образом, чтобы тест можно было запускать несколько раз, каждый раз, когда разные потоки получают разные временные интервалы в разных порядках.Существует ли такой инструмент?Или есть другой хороший инструмент, который может облегчить отладку?

Эта программа написана на C, но я отвечу на любом языке, так как мне больше всего интересно, что там, даже если это не так.непосредственно применимо здесь.

Ответы [ 2 ]

4 голосов
/ 15 марта 2011

Проверьте Helgrind инструмент, построенный на Valgrind.Кажется, довольно требовательно, с какими версиями gcc он работает, но стоит посмотреть.

3 голосов
/ 15 марта 2011

Если вы используете платформу Windows, Microsoft Research имеет проект CHESS , который в настоящее время поддерживает только VS2008.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...