Debugowanie aplikacji wielowątkowych
wątek jest sekwencją instrukcje, których system operacyjny przydziela czas procesora.Każdy proces jest uruchomiony system operacyjny składa się z co najmniej jeden wątek.Nazywane są wielowątkowe procesy, które mają więcej niż jeden wątek .
Komputery z wielu procesorów, wielordzeniowymi procesorami lub procesów hyperthreading można uruchomić wiele wątków jednocześnie.Równoległe przetwarzanie wielu wątków można znacznie poprawić program wydajność, ale może również wprowadzać debugowanie trudniejsze, ponieważ ona wprowadza konieczność, aby śledzić wiele wątków.
Ponadto wielowątkowość wprowadza nowe rodzaje potencjalnych błędów.Często na przykład, dwa lub więcej wątków mają dostęp do tych samych zasób, ale tylko jeden wątek bezpiecznie można uzyskać dostęp do zasób w czasie.formularz niektóre wzajemne wykluczenie jest niezbędne upewnić się, że tylko jeden wątek uzyskuje dostęp do zasób w czasie.Jeżeli wzajemne wykluczenie jest wykonywane niepoprawnie, można utworzyć zakleszczenie warunek, gdy żaden wątek można wykonać.Zakleszczeń może być szczególnie mocno problem do debugować.
Visual Studio 2012zapewnia ulepszone wątkówokno, nowe wątki GPU okno, nowe równoległych Watch okno i inne ulepszeniainterfejs użytkownik, aby ułatwić debugowanie wielowątkowe. Najlepszym sposobem więcej informacji na temat nowych funkcji interfejs wątka jest wykonując instruktaże. See Instruktaż: Debugowanie aplikacji wielowątkowych and Instruktaż: Debugowanie aplikacji AMP C++.
Visual Studio oferuje zaawansowane punkty przerwania i tracepoints, które mogą być bardzo użyteczne, gdy jest debugować aplikacji wielowątkowych.Filtry punkt przerwania można użyć, aby umieszczać punkty przerwania w poszczególnych wątków.Patrz:Jak: Określ filtr przerwania
Debugowanie wielowątkowych aplikacji, która mainterfejs użytkownikmoże być szczególnie trudne. W takim przypadku należy rozważyć, na drugim komputerze z uruchomioną aplikacją i przy użyciu zdalny debugowanie.Aby uzyskać informacje, zobacz Instalator zdalnego debugowania.
W tej sekcji
Jak: używanie okna wątków
Procedury użyteczne dla debugowanie wątków z wątkówokno.Jak: przełączanie do innego wątku podczas debugowania
Trzy sposoby, aby przełączyćkontekst debugowaniedo innego wątek.Jak: Flaga i Unflag wątków
Znak lub oflagować wątków, które chcesz nadać specjalną uwagę podczas debugowanie.Jak: Ustawianie nazwy wątku w kodzie macierzystym
Nadaj nazwę, że widok w wątek wątkówokno.Jak: ustawiona nazwa wątku w kodzie zarządzanym.
Nadaj nazwę, że widok w wątek wątkówokno.Instruktaż: Debugowanie aplikacji wielowątkowych.
Samouczek wątekdebugowanie funkcje, kładąc nacisk na funkcje jak Visual Studio 2008.Jak: debugowanie w klastrze wysokiej wydajności
Techniki debugowanie aplikacji, która jest uruchamiana w klastrze wysokiejwydajność .Porady dotyczące debugowania wątki w kodzie macierzystym
Proste techniki, które mogą być przydatne podczasnatywny .Przy użyciu okna zadania równolegle
Pokazuje listę wszystkich zarządzanych lub natywny obiektów zadań w tym ich stan i inne informacje.Za pomocą okna stosy równoległe
Wywołanie pokazuje stosy wiele wątków (lub zadania) w jednym widoku i coalesces również segmentów stosu, które są wspólne wśród wątki (lub zadania).Instruktaż: Debugowanie aplikacji równoległe
Instruktaż, która pokazuje, jak używać systemu windows zadania równolegle i równoległych stosów.Jak: równoległy okno czujki
Sprawdź wartości i wyrażenia przez wiele wątków.Jak: używanie okna wątków GPU
Bada i pracować z wątków, które są uruchomione na GPU podczas debugowanie.
Sekcje pokrewne
Jak: Określ filtr przerwania
Filtry punkt przerwania należy użyć umieścić punkt przerwania na poszczególnych wątków.Jak: Określ akcję Tracepoint/przerwania
Tracepoints umożliwiają śledzenie realizacji programu, bez wpływania na.Może to być przydatne do zbadania problemów, takich jak zakleszczenia.Zarządzanych wątków
Wątki pojęć w .NET Framework programowania, w tym przykładzie kodu.Wielowątkowość składników
Jak używać wielowątkowość w .NET Framework składników.Wielowątkowość obsługę starszych kod (Visual C++)
Wątki pojęć i kod przykładowy dla programistów języka C++, przy użyciu MFC.Jak: debugowanie zdalne aplikacji klastra
Instrukcje dotyczące konfigurowania zdalny debugowanie aplikacji działa w klastrze wysokiejwydajność .