Debuguj aplikacje wielowątkowe w programie Visual Studio
Wątek jest sekwencję instrukcji, do których system operacyjny przydziela czas procesora.Każdy proces, który działa w systemie operacyjnym składa się z co najmniej jeden wątek.Procesy, które mają więcej niż jeden wątek są nazywane wielowątkowych.
Komputery z wieloma procesorów wielordzeniowych procesorów lub procesy wielowątkowość może działać wiele wątków w tym samym czasie.Przetwarzanie równoległe wiele wątków może znacznie poprawić wydajność programu, ale może również wprowadzać debugowanie trudniejsze ponieważ wprowadza ona konieczność, aby śledzić wiele wątków.
Ponadto wielowątkowości wprowadzono kilka nowych typów potencjalne błędy.Często na przykład, co najmniej dwa wątki mieć dostępu do tego samego zasobu, ale tylko jeden wątek można bezpiecznie uzyskać dostęp do zasobu w danym czasie.Jakiegoś wzajemne wykluczenie jest niezbędne upewnić się, że tylko jeden wątek uzyskuje dostęp do zasobu w danym czasie.W przypadku wykluczenia wzajemnego jest niepoprawnie można utworzyć zakleszczenie warunku, gdzie można wykonywać nie wątków.Zakleszczenia może być problem szczególnie trudne do debugowania.
Visual Studio 2012udostępnia udoskonalone wątki okna, w nowym oknie GPU wątków, w nowym oknie równoległe obserwowanych i innych użytkowników na interfejsie ulepszenia dokonanie ułatwia debugowanie wielowątkowe. To najlepszy sposób, aby więcej informacji na temat nowych funkcji interfejsu wątków wykonując przewodniki.Zobacz Wskazówki: Debugowanie aplikacji wielowątkowych i Wskazówki: debugowanie aplikacji C++ AMP.
Program Visual Studio oferuje także zaawansowanych przerwania i tracepoints, które mogą być przydatne podczas debugowania aplikacji wielowątkowych.Filtry punkt przerwania służy do umieszczenia w wątkach poszczególnych punktów przerwania.Zobacz Punkty przerwania: korzystanie z liczby trafień, funkcje stosu wywołań oraz warunki przerywania w wybranym miejscu i czasie w debugerze Visual Studio.
Debugowanie wielowątkowe aplikacji, która ma interfejs użytkownika może być szczególnie trudne.W takim przypadku można rozważyć uruchomił aplikację na innym komputerze i przy użyciu zdalnego debugowania.Aby uzyskać informacje, zobacz Zdalne debugowanie i diagnostyka.
W tej sekcji
Porady: korzystanie z okna wątków
Procedury przydatne do debugowania wątki z wątki okna.Porady: przełączanie na inny wątek w trakcie debugowania
Trzech sposobów przełączania kontekstu debugowania na inny wątek.Porada: Oflagowanie i usuwanie oflagowania wątków
Oznacz lub flaga wątków, które chcesz udzielić szczególnym naciskiem na podczas debugowania.Porady: ustawianie nazw wątków w kodzie natywnym
Nadaj nazwę wyświetlania w swojego wątku wątki okna.Porady: ustawianie nazw wątków w kodzie zarządzanym
Nadaj nazwę wyświetlania w swojego wątku wątki okna.Wskazówki: Debugowanie aplikacji wielowątkowych .
Samouczek wątku, jak debugowanie funkcje z naciskiem na funkcje do Visual Studio 2008.Porady: debugowanie w klastrze o wysokiej wydajności
Techniki do debugowania aplikacji, która działa w klastrze wysokiej wydajności.Wskazówki dotyczące debugowanie wątków w kodzie natywnym
Proste techniki, które mogą być przydatne podczas debugowania wewnętrznych wątków.Korzystanie z okna zadań
Lista wszystkich obiektów zadanie zarządzanym lub macierzystym, w tym ich stan i inne przydatne informacje.Korzystanie z okna stosów równoległych
Pokazuje wywołania stosy wiele wątków (lub zadania) w jednym widoku, a także łączy segmenty stosu, które są wspólne wśród wątków (lub zadania).Wskazówki: debugowanie aplikacji równoległych
Przewodnik, który pokazuje, jak używać równoległe zadań i stosów równoległych systemu windows.Porady: korzystanie z okna czujki równoległej
Sprawdź wartości i wyrażenia przez wiele wątków.Porady: korzystanie z okna wątków GPU
Należy sprawdzić, czy i korzystać z wątków, które są uruchomione na GPU podczas debugowania.
Sekcje pokrewne
-
Jeśli chcesz umieścić punkt przerwania na poszczególne wątku, należy używać filtrów punkt przerwania.
Tracepoints włączyć do śledzenia realizacji programu bez podziału.Może to być przydatne w przypadku badania problemów, takich jak zakleszczenia.
Zarządzana wątkowość
Wątki pojęcia w .NET Framework programowania, w tym przykładzie kodu.Wielowątkowość w składnikach
Jak używać wielowątkowości w .NET Framework składników.Obsługa wielowątkowości w przypadku starszego kodu (Visual C++)
Wątki pojęcia i przykładowy kod dla programistów języka C++ przy użyciu MFC.