Megosztás a következőn keresztül:


Szálak és feladatok megtekintése a Párhuzamos verem nézetben (C#, Visual Basic, C++)

A Párhuzamos veremablak hasznos a többszálú alkalmazások hibakereséséhez. Több nézete is van:

  • Szálak nézet az alkalmazás összes szálának hívásveremadatait jeleníti meg. Navigálhat a szálak és a veremkeretek között.
  • Feladatok nézete feladatközpontú hívásveremadatokat jelenít meg.
    • Az aszinkron/várakozási mintát használó .NET-alkalmazások esetében a Feladatok nézet a leginkább hasznos a hibakereséshez.
    • A Párhuzamos feladattárat (TPL) használó, de az aszinkron/várakozási mintát nem használó alkalmazások, illetve az egyidejűségi futtatókörnyezetet használó C++ alkalmazások esetében a párhuzamos veremablak Szálak nézete a leginkább hasznos hibakeresési eszköz.
  • Metódusnézet egy kijelölt metódus hívásveremét jeleníti meg.

A Párhuzamos halmok ablak használata

A Párhuzamos veremek ablak megnyitásához hibakeresési munkamenetben kell lennie. Válassza Hibakeresés>Windows>Párhuzamos veremeklehetőséget.

Eszköztár-vezérlők

A Párhuzamos stackok ablak a következő eszköztár-vezérlőkkel rendelkezik:

Képernyőkép az eszköztárról a Párhuzamos halmok ablakban.

Ikon Vezérlő Leírás
Szálak/Feladatok kombinált lista Szálak/Feladatok kombinált lista A nézet váltása a szálak hívásveremei és a feladatok hívásveremei között. További információ: Feladatok nézet és Szálak nézet.
Csak megjelölt ikon megjelenítése Csak megjelölt elemek megjelenítése Csak a más hibakereső ablakokban megjelölt szálak hívásveremeit jeleníti meg, például a GPU-szálak ablakát és a Párhuzamos figyelő ablakot.
Metódusnézet váltása ikon metódusnézet váltása Váltás a hívásveremnézetek és a metódusnézetközött. További információ: Metódusnézet.
Automatikus görgetés az Aktuális ikonra Automatikus görgetés az aktuális veremkeretre Automatikusan görgeti a nyomkövetési gráfot, hogy az aktuális veremkeret megjelenítésre kerüljön. Ez a funkció akkor hasznos, ha az aktuális veremkeretet más ablakokról módosítja, vagy ha nagy gráfokban új töréspontot ér el.
Nagyítás váltása ikon Nagyítási vezérlő váltása Megjeleníti vagy elrejti a nagyítási vezérlőt az ablak bal oldalán.

A nagyítási vezérlő láthatóságától függetlenül a nagyításhoz a ctrl ctrl lenyomásával és az egérkerék elforgatásával is nagyíthat, vagy ha a nagyításhoz a Ctrl+Shift++ billentyűkombinációt lenyomva a Ctrl+Shift+- billentyűkombinációt.

Képernyőkép az eszköztárról a Párhuzamos veremek ablakban.

Ikon Vezérlő Leírás
Szálak/Feladatok kombinált lista Szálak/Feladatok kombinált lista A nézet váltása a szálak hívásveremei és a feladatok hívásveremei között. További információ: Feladatok nézet és Szálak nézet.
Szűrő ikon vezérlő szűrése Csak az önt érdeklő szálakhoz tartozó hívásveremeket jeleníti meg.
Csak megjelölt ikon megjelenítése Csak megjelölt elemek megjelenítése Csak a más hibakereső ablakokban megjelölt szálak hívásveremeit jeleníti meg, például a GPU-szálak ablakát és a Párhuzamos figyelő ablakot.
Metódusnézet váltása ikon metódusnézet váltása Váltás a hívásveremnézetek és a metódusnézetközött. További információ: Metódusnézet.
Automatikus görgetés az Aktuális ikonra Automatikus görgetés az aktuális veremkeretre Automatikusan görgeti a nyomkövetési gráfot, hogy az aktuális veremkeret megjelenítésre kerüljön. Ez a funkció akkor hasznos, ha az aktuális veremkeretet más ablakokról módosítja, vagy ha nagy gráfokban új töréspontot ér el.
Nagyítás váltása ikon Nagyítási vezérlő váltása Megjeleníti vagy elrejti a nagyítási vezérlőt az ablak bal oldalán.

A nagyítási vezérlő láthatóságától függetlenül a nagyításhoz a ctrl ctrl lenyomásával és az egérkerék elforgatásával is nagyíthat, vagy ha a nagyításhoz a Ctrl+Shift++ billentyűkombinációt lenyomva a Ctrl+Shift+- billentyűkombinációt.
Keresés ikon Keresésvezérlő Ezzel a funkcióval egyszerűen kereshet a veremkereteken belül, majd nyilakkal navigálhat ezek között az eredmények között.
Mentés ikon Vezérlőelem mentése Lehetővé teszi, hogy a tartalmat képként mentse vagy exportálja a párhuzamos veremablakból.
Külső kód ikon Külső kódvezérlő megjelenítése Ezzel a funkcióval megjelenítheti vagy elrejtheti a külső kód- vagy könyvtárvermeket.
Copilot Summarize ikon Hívásveremek összegzése A Visual Studio 2022 17.13 Preview 4-es verziójától kezdve választhatja az Összegzés-t, amikor a Copilot telepítve és aktiválva van. Ez a gomb megnyitja a Copilot-csevegés ablakát, amely előre betöltve van a releváns szálkörnyezettel, lehetővé téve a részletek, köztük a szálállapotok, a függvényhívások és a javasolt javítások feltárását.

Stack Frame ikonok

Az alábbi ikonok minden nézetben információt nyújtanak az aktív és az aktuális veremkeretekről:

Ikon Leírás
Sárga nyíl Az aktuális szál aktuális helyét (aktív veremkeretét) jelzi.
Szálak ikon Egy nem aktuális szál jelenlegi helyét (aktív veremkeretét) jelzi.
Zöld nyíl Az aktuális veremkeretet (az aktuális hibakereső környezetet) jelzi. A metódus neve félkövér, bárhol is jelenjen meg.
Ikon Leírás
Sárga nyíl Az aktuális szál aktuális helyét (aktív veremkeretét) jelzi.
Szálak ikon Egy nem aktuális szál aktuális helyét (aktív veremkeretet) jelzi.
Zöld nyíl Az aktuális veremkeretet (az aktuális hibakereső környezetet) jelzi. A metódus neve félkövér, bárhol is jelenjen meg.
állapothiba (.NET) Azt jelzi, hogy az aktuális veremkeret kritikus állapotú figyelmeztetést jelez, például holtpontot.
állapot kizárt (.NET) A holtponton lévő csomópontot jelzi.
állapotinformáció (.NET) Azt jelzi, hogy az aktuális veremkeret további információkkal rendelkezik, például várakozással, zárolásra várással, tulajdonosával stb.
állapot blokkolva (.NET) Azt jelzi, hogy az aktuális tevékenység blokkolt/várakozó állapotban van stb.
Állapot aktív A jelenleg futó feladatot jelzi.

Helyi menüelemek

A következő helyi menüelemek akkor érhetők el, ha a metódusra kattint a jobb gombbal a Szálak nézetben vagy a Feladatok nézetben. Az utolsó hat elem ugyanaz, mint a Hívásverem ablak-ban.

Képernyőkép a Párhuzamos halmok ablak Helyi menüjéről.

Menüpont Leírás
zászló A kijelölt elem megjelölése.
Jelölés törlése Eltávolítja a kijelölt elem megjelölését.
befagyasztása A kijelölt elem befagyasztása.
Olvadás Felolvassa a kijelölt elemet.
Keretbe váltás Ugyanaz, mint a megfelelő menüparancs a Hívásverem ablakban. A Párhuzamos verem ablakban azonban előfordulhat, hogy egy metódus több keretben is szerepel. Az elem almenüjében kiválaszthatja a kívánt keretet. Ha az egyik veremkeret az aktuális szálon van, akkor az a keret alapértelmezés szerint ki van jelölve az almenüben.
Ugrás a Feladat vagy Ugrás a szálra Átvált a feladat vagy szál nézetre, és ugyanazt a veremkeretet emeli ki.
Ugrás a forráskódra A forráskódablak megfelelő helyére lép.
Menj a szétszereléshez A Szétszerelés ablakban található megfelelő helyre lép.
Külső kód megjelenítése Külső kód megjelenítése vagy elrejtése.
Hexadecimális kijelző Váltás a decimális és a hexadecimális megjelenítés között.
Szálak megjelenítése a Forrásban Megjelöli a szál helyét a forráskódablakban.
szimbólum betöltési információ Megnyitja a Szimbólumbetöltési adatok párbeszédpanelt.
szimbólumbeállítások Megnyitja a Szimbólumbeállítások párbeszédpanelt.

Képernyőkép a Helyi menüről a Párhuzamos verem ablakban, 2022.

Menüpont Leírás
Másolás Másolja ki a kijelölt elemet.
Az alábbi összes keret kijelölése A kijelölt verem alatt lévő összes képkockát kijelöli.
zászló A kijelölt elem megjelölése.
Jelölés törlése Eltávolítja a kijelölt elem megjelölését.
befagyasztása A kijelölt elem befagyasztása.
Olvadás Felolvassa a kijelölt elemet.
Keretbe váltás Ugyanaz, mint a megfelelő menüparancs a Hívásverem ablakban. A Párhuzamos verem ablakban azonban előfordulhat, hogy egy metódus több keretben is szerepel. Az elem almenüjében kiválaszthatja a kívánt keretet. Ha az egyik veremkeret az aktuális szálon van, akkor az a keret alapértelmezés szerint ki van jelölve az almenüben.
Ugrás a Feladat vagy Ugrás a szálra Átvált a feladat vagy szál nézetre, és ugyanazt a veremkeretet emeli ki.
Ugrás a forráskódra A forráskódablak megfelelő helyére lép.
Menj a szétszereléshez A Szétszerelés ablakban található megfelelő helyre lép.
Külső kód megjelenítése Külső kód megjelenítése vagy elrejtése.
Hexadecimális kijelző Váltás a decimális és a hexadecimális megjelenítés között.
Szálak megjelenítése a Forrásban Megjelöli a szál helyét a forráskódablakban.
szimbólum betöltési információ Megnyitja a Szimbólumbetöltési adatok párbeszédpanelt.
szimbólumbeállítások Megnyitja a Szimbólumbeállítások párbeszédpanelt.

Szálak nézet

A Szálak nézetben az aktuális szál veremkerete és hívási útvonala kék színnel van kiemelve. A szál aktuális helyét a sárga nyíl mutatja.

Az aktuális veremkeret módosításához kattintson duplán egy másik metódusra. Ez az aktuális szálat is átválthatja attól függően, hogy a kiválasztott módszer az aktuális szál vagy egy másik szál része-e.

Ha a Szálak nézetdiagram túl nagy ahhoz, hogy beférjen az ablakba, megjelenik egy Madártávlati vezérlő az ablakban. A vezérlőelem keretét áthelyezve navigálhat a gráf különböző részeire.

Az alábbi ábra a Fő szálat mutatja be egy felügyeltről natív kódváltásra. Az aktuális metódus öt szálat használ. Négy szál folytatja a végrehajtást az S.C metóduskörnyezetben, míg egy feldolgozó szál folytatódik a Managed-Native kód átmenetben, és beállítja a nevet egy feldolgozószálon.

A Szálak nézet képernyőképe a Párhuzamos verem ablak 2022-es nézetéről.

Az alábbi táblázat a Szálak nézet főbb funkcióit ismerteti:

Kiemelés Az elem neve Leírás
1 Veremszegmens vagy csomópont Egy vagy több szál metódusainak sorozatát tartalmazza. Ha a kerethez nincsenek nyílvonalak csatlakoztatva, a keret a szál(ok) teljes hívási útvonalát jeleníti meg.
2 Kék kiemelés Az aktuális szál hívási útvonalát jelzi.
3 Nyílvonalak Csomópontok csatlakoztatása a szál(ok) teljes hívási útvonalának létrehozásához.
4 Csomópont fejléce Megjeleníti a csomópont folyamatainak/szálainak számát, szálnevét és szálazonosítóját.
5 Módszer Egy vagy több verembeállítási keretet jelöl ugyanabban a metódusban.
6 Elemleírás a metódushoz Akkor jelenik meg, ha rámutat egy metódusra. Szálak nézetben az elemleírás az összes szálat megjeleníti a Szálak ablakhoz hasonló táblázatban.
7 Szál leírása A szál AI által generált leírása. A Visual Studio 2022 17.13 preview 1-es verziójától kezdve ez a leírás jelenik meg Copilot telepítésekor és aktiválásakor.

AI-segítség kérése

Ha rendelkezik a Copilottal, AI-segítséget kaphat a Szálak nézetben az AI által létrehozott szálleírásokkal és a Generate Insights (Elemzések létrehozása ) gombbal. Az Elemzések létrehozása gomb Elemzések létrehozásagombjával kommunikálhat a Copilottal a megjelenő száladatokról. Ebben a forgatókönyvben a Copilot már ismeri a kérdés kontextusát, így önnek nem kell saját kontextust megadnia a csevegésben. További információ: Hibakeresés a Copilottal.

A szálösszegző leírások engedélyezéséhez vagy letiltásához nyissa meg az Eszközök>beállításai panelt, és bontsa ki aGitHub>>Copilot>Debugger and Diagnostics szakaszt. Jelölje be vagy törölje a jelet az AI-összegzés engedélyezése a Párhuzamos halmok ablakban jelölőnégyzetből .

A szálösszegző leírások engedélyezéséhez vagy letiltásához nyissa meg az Eszközök>beállításai párbeszédpanelt, és bontsa ki a GitHub>Copilot szakaszt. A Hibakereső és a Diagnosztika kategóriában jelölje be vagy törölje a jelet az AI-összegzés engedélyezése párhuzamos veremek ablakban jelölőnégyzetből.

Az alábbi ábra egy szálat mutat be, amely a fő szálból a kezelt kódról a natív kódra történő áttűnésre vált. Hat szál van az aktuális metódusban. Két szál továbbra is a Thread.Sleep, kettő pedig a Console.WriteLine, az aktuális szál pedig a SyncTextWriter.WriteLine lesz.

A Szálak nézet képernyőképe a Párhuzamos verem ablakban.

Az alábbi táblázat a Szálak nézet főbb funkcióit ismerteti:

Kiemelés Az elem neve Leírás
1 Veremszegmens vagy csomópont Egy vagy több szál metódusainak sorozatát tartalmazza. Ha a kerethez nincsenek nyílvonalak csatlakoztatva, a keret a szál(ok) teljes hívási útvonalát jeleníti meg.
2 Kék kiemelés Az aktuális szál hívási útvonalát jelzi.
3 Nyílvonalak Csomópontok csatlakoztatása a szál(ok) teljes hívási útvonalának létrehozásához.
4 Csomópont fejléce A csomópont folyamatainak és szálainak számát jeleníti meg.
5 Módszer Egy vagy több verembeállítási keretet jelöl ugyanabban a metódusban.
6 Elemleírás a metódushoz Akkor jelenik meg, ha rámutat egy metódusra. Szálak nézetben az elemleírás az összes szálat megjeleníti a Szálak ablakhoz hasonló táblázatban.

Feladatok nézet

Az aszinkron/várakozási mintát használó .NET-alkalmazások esetében a Feladatok nézet a leginkább hasznos a hibakereséshez. Részletes oktatóanyagért tekintse meg az aszinkron alkalmazások hibakeresését ismertető témakört.

A Feladatok nézetben a következő műveleteket végezheti el:

  • Az aszinkron/várakozási mintát használó alkalmazások hívásveremvizualizációinak megtekintése.
  • Azonosítsa a futtatásra ütemezett, de még nem futó aszinkron kódot.

Az alábbi ábrán a Szálak nézet látható felül, alul pedig a megfelelő Feladatok nézet.

Szálak és feladatok nézeteinek képernyőképe.

Feladatok nézet képernyőképe a Párhuzamos halmok ablakban.

Vigye az egérmutatót egy módszer fölé, hogy megjelenjen egy további információkat tartalmazó tooltip. A Feladatok nézetben az elemleírás a Tevékenységek ablakhoz hasonló összes feladatot megjeleníti egy táblázatban.

Az alábbi képen egy metódus elemleírása látható a Szálak nézetben felül, illetve a megfelelő Feladatok nézetben alul.

Szálak és feladatok eszköztippjeinek képernyőképe.

Szálak és feladatok elemleírások képernyőképe.

Metódusnézet

A Szálak nézetből vagy a Feladatok nézetből megfordíthatja a gráfot az aktuális metódus alapján, ha kiválasztja az eszköztár Mód nézet ikonját. Metódusnézet egy pillantással megjeleníti az összes metódust az összes olyan szálon, amely az aktuális metódust hívja vagy amelyet az aktuális metódus hív. Az alábbi ábra azt mutatja be, hogyan jelennek meg ugyanazok az információk Szálak nézetben a bal oldalon és Metódus Nézet a jobb oldalon.

Párhuzamosverem-ablak Metódusok nézetének képernyőképe.

A 2022-es Párhuzamos verem ablak Metódusok nézetének képernyőképe.

Ha új veremkeretre vált, akkor ezt a metódust teszi meg az aktuális metódusként, és a Metódusnézet megjeleníti az új metódushoz tartozó összes hívót és hívottat. Ebben a forgatókönyvben előfordulhat, hogy egyes szálak megjelennek vagy eltűnnek a nézetből attól függően, hogy ez a metódus megjelenik-e a hívásveremen. Ha vissza szeretne térni a hívásverem nézethez, válassza újra a Metódusnézet eszköztár ikont.

Szálak és feladatok hibakeresése párhuzamos veremekkel – videó oktatóanyag

Ezek a videós oktatóanyagok bemutatják, hogyan használhatja a Visual Studio 2022 Párhuzamos Halmok ablakának Szálak és Feladatok nézeteit a többszálú alkalmazások hibakereséséhez.