Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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. Részletes oktatóanyagért tekintse meg az aszinkron alkalmazások hibakeresését ismertető témakört.
- 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.
-
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:
| Ikon | Vezérlő | Leírás |
|---|---|---|
|
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 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 | 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 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á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. |
| Ikon | Vezérlő | Leírás |
|---|---|---|
|
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. |
|
vezérlő szűrése | Csak az önt érdeklő szálakhoz tartozó hívásveremeket jeleníti meg. |
|
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 | 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 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á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é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. |
|
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ódvezérlő megjelenítése | Ezzel a funkcióval megjelenítheti vagy elrejtheti a külső kód- vagy könyvtárvermeket. |
|
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 |
|---|---|
|
|
Az aktuális szál aktuális helyét (aktív veremkeretét) jelzi. |
|
|
Egy nem aktuális szál jelenlegi helyét (aktív veremkeretét) jelzi. |
|
|
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 |
|---|---|
|
|
Az aktuális szál aktuális helyét (aktív veremkeretét) jelzi. |
|
|
Egy nem aktuális szál aktuális helyét (aktív veremkeretet) jelzi. |
|
|
Az aktuális veremkeretet (az aktuális hibakereső környezetet) jelzi. A metódus neve félkövér, bárhol is jelenjen meg. |
|
|
(.NET) Azt jelzi, hogy az aktuális veremkeret kritikus állapotú figyelmeztetést jelez, például holtpontot. |
|
|
(.NET) A holtponton lévő csomópontot jelzi. |
|
|
(.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. |
|
|
(.NET) Azt jelzi, hogy az aktuális tevékenység blokkolt/várakozó állapotban van stb. |
|
|
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.
| 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. |
| 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.
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ása
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.
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.
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.
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.
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.
- Tevékenységek hibakeresése a Párhuzamos halmok ablakkal
- Szálak hibakeresése a Párhuzamos verem ablakban