Sdílet prostřednictvím


Ladění vláken a procesů v sadě Visual Studio

Vlákna a procesy jsou v informatice související koncepty.Obě představují sekvence pokynů, které musí být provedeny v určitém pořadí.Pokyny v oddělených vláknech či procesy lze však spustit paralelně.

Procesy v operačním systému existují a odpovídají tomu, co uživatelé vidí jako programy nebo aplikace.Vlákno, naopak, existuje v rámci procesu.Z tohoto důvodu jsou vlákna někdy označována jako procesy LWP.Každý proces se skládá z jednoho nebo více vláken.

Existence více procesů umožňuje počítači provádět více úkolů najednou.Existence více vláken umožňuje procesu provádět současně samostatné činnosti.V počítači s více procesory mohou procesy a vlákna běžet na různých procesorech.To umožňuje pravé paralelní zpracování.

Perfektní paralelní zpracování není vždy možné.Vlákna v některých případech musí být synchronizována.Jedno vlákno může muset čekat na výsledky z jiného vlákna, nebo jedno vlákno může potřebovat výhradní přístup k prostředku, který používá jiné vlákno.Potíže se synchronizací jsou běžnou příčinou chyb ve vícevláknových aplikacích.Vlákna mohou někdy skončit čekáním na prostředek, který nikdy nebude k dispozici.Výsledkem je stav nazývaný zablokování.

Ladicí program Visual Studio poskytuje výkonné, ale snadno použitelné nástroje pro ladění procesů a podprocesů.

Nástroje pro ladění vláken a procesů v aplikaci Visual Studio

Primární nástroje pro práci s procesy v Visual Studio jsou dialogové okno Připojit k procesu, okno Procesy a panel nástrojů Umístění ladění.Základními nástroji pro ladění podprocesů je okno Vlákna, značky vlákna ve zdrojových oknech a panel nástrojů Umístění ladění.

Základními nástroji pro ladění aplikací s více vlákny jsou okna Paralelní zásobníky a Paralelní úlohy, Paralelní sledování, a Vlákna GPU.

Následující tabulka uvádí dostupné informace a akce, které můžete provádět v každém z těchto míst:

Uživatelské rohraní

Dostupné informace

Akce, které můžete provést

Dialogové okno Připojit k procesu

Dostupné procesy, ke kterým se lze připojit:

  • Název procesu (.exe)

  • Číslo ID procesu

  • Nadpis řádku nabídek

  • Typ (Managed v4.0; Managed v2.0, v1.1, v1.0; x86; x64; IA64)

  • Uživatelské jméno (název účtu)

  • Číslo relace

Vyberte proces, ke kterému se chcete připojit

Vyberte vzdálený počítač

Změnit typ spojení na připojení ke vzdáleným počítačům

Okno Procesy

Připojené procesy:

  • Název procesu

  • Číslo ID procesu

  • Cesta ke zpracování .exe

  • Nadpis řádku nabídek

  • Stav (Break.probíhá)

  • Ladění (nativní, spravované, atd.)

  • Typ přenosu (výchozí, nativní bez ověření)

  • Kandidát spojení (vzdálený počítač)

Nástroje:

  • Připojit

  • Odpojit

  • Ukončit

Místní nabídky:

  • Připojit

  • Odpojit

  • Odpojit při zastavení ladění

  • Ukončit

Okno Vlákna

Vlákna v aktuálním procesu:

  • ID vlákna

  • Spravované ID

  • Kategorie (hlavní vlákno, vlákno rozhraní, vzdálené volání rutiny procedury nebo pracovní vlákno)

  • Název vlákna

  • Místo, kde bylo vlákno vytvořeno

  • Priorita

  • Maska příbuznosti

  • Pozastavený počet

  • Název procesu

  • Indikátor příznaku

  • Indikátor pozastavení

Nástroje:

  • Hledat

  • Prohledat zásobník volání

  • Označit jen můj kód

  • Volba vlastního modulu příznaků

  • Seskupit podle

  • Sloupce

  • Rozbalit/sbalit zásobníky volání

  • Rozbalit/sbalit skupiny

  • Zmrazit / odblokovat vlákna

Místní nabídky:

  • Zobrazit vlákna ve zdroji

  • Přepnout na vlákno

  • Zmrazit spuštěné vlákno

  • Povolit zmrazené vlákno

  • Označit vlákno pro další studie

  • Zrušit označení vlákna

  • Přejmenovat vlákno

  • Zobrazení a skrytí vláken

Další akce:

  • Zobrazit zásobník volání pro vlákno v DataTip

Okno zdroje

Indikátory vláken v levém hřbetu označují jedno nebo více vláken (vypnuté ve výchozím nastavení, zapnuté pomocí místní nabídky v okně Vlákna)

Místní nabídky:

  • Přepnout na vlákno

  • Označit vlákno pro další studie

  • Zrušit označení vlákna

Panel nástrojů Umístění ladění

  • Aktuální proces

  • Zobrazit miniaturu aplikace

  • Pozastaví aplikaci

  • Obnovit aplikaci

  • Pozastavit a vypnout aplikaci

  • Aktuální vlákno

  • Přepnout aktuální značku stavu vlákna

  • Zobrazit pouze vlákna označená příznakem

  • Zobrazit pouze aktuální proces.

  • Aktuální rámec zásobníku

  • Přepnout na jiný proces

  • Pozastavit, pokračovat nebo vypnout aplikaci

  • Přepněte do jiného vlákna v aktuálním procesu

  • Přepněte do jiného zásobníku v aktuálním vlákně

  • Označit nebo zrušit označení aktuálních vláken příznakem

  • Zobrazit pouze vlákna označená příznakem

  • Zobrazit pouze aktuální proces

Okno Paralelní zásobníky

  • Zásobníky volání pro více vláken v jednom okně.

  • Aktivní zásobník snímků pro každé vlákno.

  • Volající a volané pro libovolnou metodu.

  • Odfiltrovat zadaná vlákna

  • Přepnout do zobrazení Paralelní úlohy

  • Označit nebo zrušit označení vlákna příznakem

  • Lupa

Okno Paralelní úlohy

  • Zobrazit informace o objektech Task, včetně ID úkolu, stavu úkolu (plánovaný, spuštěný, čekající, zablokovaný) a tom, které vlákno je přiřazeno k úkolu.

  • Aktuální umístění v zásobníku volání.

  • Delegát předaný do úlohy v době vytvoření

  • Přepnout do aktuální úlohy

  • Označit nebo zrušit označení úlohy příznakem

  • Zmrazit nebo odblokovat úkol

Okno Paralelní sledování

  • Sloupec příznaku, kde lze označit vlákno, kterému chcete věnovat zvláštní pozornost.

  • Sloupec rámce, ve kterém šipka označuje vybraný rámec.

  • Konfigurovatelný sloupec, který může zobrazit počítač, proces, dlaždici, úlohu a vlákna.

  • Označit nebo zrušit označení vlákna příznakem

  • Zobrazit pouze vlákna označená příznakem

  • Rámce přepínačů

  • Seřazení sloupce

  • Seskupit vlákna

  • Zmrazit nebo odblokovat vlákna

  • export dat v okně paralelního sledování

Okno Vlákna GPU

  • Sloupec příznaku, kde lze označit vlákno, kterému chcete věnovat zvláštní pozornost.

  • Aktivní vlákno sloupce, ve kterém žlutá šipka označuje aktivní vlákno.Šipka označuje vlákno, kde se spuštění dostalo do ladicího programu.

  • Sloupec Počet vláken, který zobrazuje počet podprocesů ve stejném umístění.

  • Sloupec Řádek, který zobrazuje řádek kódu, kde je každá skupina vlákna umístěna.

  • Sloupec Adresa, který zobrazuje adresu instrukce, kde je každá skupina vlákna umístěna.

  • Sloupec Umístění, který je umístěním v kódu adresy.

  • Sloupec Stav, který ukazuje, zda je podproces aktivní nebo blokován.

  • Sloupec Vedle sebe, který zobrazuje indexu dlaždice pro podprocesy v řádku.

  • Změnit na jiné aktivní vlákno

  • Zobrazit konkrétní pole a vlákno

  • Zobrazit nebo skrýt sloupec

  • Seřazení podle sloupce

  • Seskupit vlákna

  • Zmrazit nebo odblokovat vlákna

  • Označit nebo zrušit označení vlákna příznakem

  • Zobrazit pouze vlákna označená příznakem

Viz také

Další zdroje

Připojení ke spuštěným procesům pomocí ladicího programu sady Visual Studio

Ladění vícevláknových aplikací v sadě Visual Studio

Ladění kódu GPU