Отладчик Jinx - Jinx Debugger

Джинкс был параллелизм отладчик который детерминированно контролировал чередование рабочих нагрузок между ядрами процессора, уделяя особое внимание взаимодействию с общей памятью. Используя этот детерминированный подход, Jinx стремился увеличить частоту появления неуловимых ошибок общей памяти, иногда называемых Heisenbugs. Джинкс больше не доступен. Corensic, компания, которая разрабатывала Jinx, была куплена F5 Сети и проект Jinx был отменен.[1]

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

В отличие от программ проверки моделей, Jinx не требовал спецификации модели. В отличие от динамичный и статический методы анализа кода, Jinx отличался тем, что не давал ложных срабатываний (ложных отчетов об ошибках). Это произошло потому, что Jinx тестировал сценарии, которые могут содержать ошибки, а не просто делать выводы об этих сценариях путем анализа исходного кода или наблюдения за выполнением программы.

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

Jinx был разработан (ныне несуществующей) компанией Corensic в Сиэтле, штат Вашингтон, на основе исследования, проведенного в Вашингтонском университете.[2] и первоначально был представлен на конференции ASPLOS в 2009 году.

Рекомендации

  1. ^ Бартош Милевски [@BartoszMilewski] (23 сентября 2014 г.). "@double_thunk Corensic был куплен F5, а Jinx был отменен. Извините!" (Твит) - через Twitter.
  2. ^ http://sampa.cs.washington.edu/sampa/Projects#Deterministic_Shared_Memory_Multiprocessing_.28DMP.29