Czy są jakieś narzędzia, które mogą pomóc w znalezieniu warunków wyścigu podczas testowania wielowątkowego kodu .net? Szukam czegoś o podobnych możliwościach do narzędzia IBM ConTest dla Javy.Jakie narzędzia istnieją do testowania wielowątkowego kodu .net?
Odpowiedz
Typemock Racer może być to, czego szukasz, ale nie zostały wykorzystane - Właśnie sobie przypomniałem coś zakleszczenia :)
Albo tak: Deadlock Detector
Ten announcement z Microsoft Research brzmi jak mają narzędzie, które robi dokładnie to, co chcę. Niestety nie ma jeszcze wersji .net, ale jest jedna planowana. Cytując stronę:
SZACHY to zautomatyzowane narzędzie do wyszukiwania błędów w wielowątkowego oprogramowania przez systematycznej eksploracji nici harmonogramów. Znajduje błędy, takie jak: wyścigi danych, zakleszczenia, zawieszenie i naruszenia danych związane z uszkodzeniem danych , które są niezwykle trudne do znalezienia znaleźć za pomocą obecnych narzędzi do testowania. Po tym jak CHESS znajdzie błąd, zapewnia w pełni powtarzalne wykonanie programu , co znacznie ułatwia proces debugowania. Dodatkowo, CHESS zapewnia cenne i nowatorskie pojęcie pokrycia testowego odpowiednie dla programów wielowątkowych. CHESS może wykorzystywać istniejące testy równoległe i dlatego jest łatwy do wdrożenia. Zarówno programiści, jak i testerzy powinni znaleźć przydatny CHESS.
Narzędzie Microsoftu nie jest jeszcze dostępne (i może być przez pewien czas). –
Jest już dostępny, ale nie dla VS2010 lub VS2012. – Henrik
Czy widziałeś Debug Inspector (www.debuginspector.com)?
To nie udało i niezarządzani zakleszczenia i obejmuje zarówno WaitForSingleObject i WaitForMultipleObjects i działa na XP i Vista
tam świetne rozszerzenie windbg, napisany przez Steve Johnson, nazywany sosex który ma polecenie znalezieniem zakleszczenia. Można go znaleźć pod adresem i przeczytać więcej na ten temat tutaj: http://www.stevestechspot.com/SOSEXANewDebuggingExtensionForManagedCode.aspx i tutaj: http://www.stevestechspot.com/SOSEXUpdatedV11Available.aspx.
Po prostu znajduje zaklócenia w czasie wykonywania, które i tak można łatwo znaleźć; ponieważ jeśli masz taki program, który zatrzymuje się całkowicie i po prostu rzucasz okiem na wszystkie stosy. – Henrik
Oba łącza zerwane – Henrik