Csatolás futó folyamatokhoz a Visual Studio hibakeresőjével

A Visual Studio hibakeresőt egy helyi vagy távoli számítógépen futó folyamathoz csatolhatja. A folyamat futtatása után válassza a Debug>Attach to Process (Csatolás a folyamathoz) lehetőséget, vagy nyomja le a Ctrl Altp++ a Visual Studióban, és a Csatolás a folyamathoz párbeszédpanelen csatolja a hibakeresőt a folyamathoz.

Az Csatolás a folyamathoz funkcióval hibakeresést végezhet a helyi vagy távoli számítógépeken futó alkalmazásokban, egyszerre több folyamat hibakeresésére, a Visual Studióban nem létrehozott alkalmazások hibakeresésére, vagy bármely olyan alkalmazás hibakeresésére, amelyet nem a Visual Studióból indított a hibakereső csatolásával. Ha például egy alkalmazást a hibakereső nélkül futtat, és kivételt talál, csatolhatja a hibakeresőt az alkalmazást futtató folyamathoz, és megkezdheti a hibakeresést.

Jótanács

Nem biztos abban, hogy az Attach to Process szolgáltatást használja-e a hibakeresési forgatókönyvhöz? Lásd a gyakori hibakeresési forgatókönyveket.

Csatlakozás egy futó folyamathoz a helyi gépen

Ha gyorsan szeretne újracsatolni egy korábban csatolt folyamathoz, tekintse meg az újracsatolást egy folyamathoz.

A Visual Studio 2022 17.10 Preview 2-es verziójától kezdve a Folyamat csatolása párbeszédpanel megváltozott. Ha a régebbi párbeszédpanelnek megfelelő utasításokra van szüksége, váltson a Visual Studio 2019 nézetre (a cikk bal felső verzióválasztója).

A helyi számítógépen futó folyamathoz való csatlakozáshoz kövesse az alábbi lépéseket:

  1. A Visual Studióban válassza a Hibakeresés, majd a > lehetőséget (vagy nyomja le a Ctrl + Alt + + billentyűkombinációt) a Csatolás a folyamathoz párbeszédpanel megnyitásához.

  2. A Kapcsolat típusának beállítása Helyi értékre.

    A legtöbb helyi hibakeresési forgatókönyvben használhatja a Helyi lehetőséget. Egyes forgatókönyvek eltérő kapcsolattípust igényelhetnek. További információkért tekintse meg a cikk más szakaszait vagy a gyakori hibakeresési forgatókönyveket.

    Képernyőkép a Folyamat csatolása párbeszédpanelről, amelyen a kapcsolati cél a helyi gép nevére van állítva.

  3. Az Elérhető folyamatok listában keresse meg és válassza ki a csatolni kívánt folyamatot vagy folyamatokat.

    • Egy folyamat gyors kiválasztásához írja be a nevét vagy az első betűjét a Folyamatok szűrése mezőbe.
    • Ha nem ismeri a folyamat nevét, böngésszen a listában, vagy tekintse meg a gyakori hibakeresési forgatókönyveket a gyakori folyamatnevekhez.
    • A Track Window (Ablak követése ) gombbal engedélyezheti egy ablak kiválasztását a számítógépen, amely beállítja a folyamatot.

    Jótanács

    A folyamatok elindulhatnak és leállhatnak a háttérben, miközben a Folyamat csatolása párbeszédpanel meg van nyitva, így előfordulhat, hogy a futó folyamatok listája nem mindig aktuális. Az aktuális lista megtekintéséhez bármikor kiválaszthatja a Frissítés lehetőséget.

  4. A Kód típusa mezőben győződjön meg arról, hogy a hibakeresésre szánt kód típusa szerepel a listában.

    Az alapértelmezett automatikus beállítás a legtöbb alkalmazástípus esetében működik, de kiválaszthat egy adott kódtípust a hibakereső típusának manuális megadásához.

  5. Válassza a(z) lehetőséget, majd csatolja a(z)-et.

Jótanács

Abban az esetben, ha több azonos folyamat is van, használja a Parancssor oszlopot vagy a W3wp folyamat részleteit a Cím oszlopból a megfelelő folyamat azonosításához.

Megjegyzés:

Hibakeresés céljából több alkalmazáshoz is csatolható, de egyszerre csak egy alkalmazás aktív a hibakeresőben. Az aktív alkalmazást a Visual Studio Hibakeresési hely eszköztárán vagy a Folyamatok ablakban állíthatja be.

Csatolás egy távoli számítógépen futó folyamathoz

Kiválaszthat egy távoli számítógépet is a Folyamat csatolása párbeszédpanelen, megtekintheti a számítógépen futó elérhető folyamatok listáját, és csatolhat egy vagy több folyamatot a hibakereséshez. A távoli hibakeresőnek (msvsmon.exe) a távoli számítógépen kell futnia. További információ: Távoli hibakeresés.

A Visual Studio 2022 17.10 Preview 2-es verziójától kezdve a Folyamat csatolása párbeszédpanel megváltozott. Ha a régebbi párbeszédpanelnek megfelelő utasításokra van szüksége, váltson a Visual Studio 2019 nézetre (a cikk bal felső verzióválasztója).

Távoli számítógépen futó folyamathoz való csatolás:

  1. A Visual Studióban válassza a Hibakeresés, majd a > lehetőséget (vagy nyomja le a Ctrl + Alt + + billentyűkombinációt) a Csatolás a folyamathoz párbeszédpanel megnyitásához.

  2. Állítsa a kapcsolat típusát távoli kapcsolattípusra , például Távoli (Windows) típusra.

    A windowsos távoli hibakeresés legtöbb forgatókönyvében használhatja a Távoli (Windows) szolgáltatást. Bizonyos forgatókönyvek, például a Linux hibakeresése vagy egy tárolóalapú alkalmazás, eltérő kapcsolattípust igényelnek. További információkért tekintse meg a cikk más szakaszait vagy a gyakori hibakeresési forgatókönyveket.

    Megjelenik a Kapcsolat célbeállítása .

  3. A Kapcsolat célmezőben válassza ki a távoli számítógépet az alábbi módszerek egyikével:

    • Válassza a Kapcsolat cél melletti legördülő lista nyilat, és válassza ki a számítógép nevét a legördülő listából.
    • Írja be a számítógép nevét a Kapcsolat célmezőbe , és nyomja le az Enter billentyűt.
    • A Kapcsolat célmezője melletti Keresés gombra kattintva nyissa meg a Távoli kapcsolatok párbeszédpanelt. A Távoli kapcsolatok párbeszédpanel felsorolja a helyi alhálózaton található vagy a számítógéphez közvetlenül csatlakoztatott összes eszközt. Előfordulhat, hogy a távoli eszközök felderítéséhez meg kell nyitnia a 3702-s kimenő UDP-portot a kiszolgálón. Jelölje ki a kívánt számítógépet vagy eszközt, majd zárja be a párbeszédpanelt.

    Ellenőrizze, hogy a Visual Studio hozzáadja-e a szükséges portot a számítógép nevéhez, amely a következő formátumban jelenik meg: <távoli számítógép neve>:p ort

    Megjegyzés:

    Ha nem tud csatlakozni a távoli számítógép nevével, próbálja meg használni az IP-címet és a portcímet (például 123.45.678.9:4026). A Visual Studio 2022 távoli hibakereső alapértelmezett portja a 4026. Egyéb távoli hibakeresőport-hozzárendelésekért lásd: Távoli hibakereső porthozzárendelések.

    A kapcsolattípus-beállítás megmarad a hibakeresési munkamenetek között. A kapcsolati célbeállítás csak akkor marad meg a hibakeresési munkamenetek között, ha a célhoz sikeres hibakeresési kapcsolat történt.

  4. Kattintson a Frissítés gombra az Elérhető folyamatok listájának feltöltéséhez.

    Jótanács

    A folyamatok elindulhatnak és leállhatnak a háttérben, miközben a Folyamat csatolása párbeszédpanel meg van nyitva, így előfordulhat, hogy a futó folyamatok listája nem mindig aktuális. Az aktuális lista megtekintéséhez bármikor kiválaszthatja a Frissítés lehetőséget.

  5. Az Elérhető folyamatok listában keresse meg és válassza ki a csatolni kívánt folyamatot vagy folyamatokat.

  6. A Kód típusa mezőben győződjön meg arról, hogy a hibakeresésre szánt kód típusa szerepel a listában.

    Az alapértelmezett automatikus beállítás a legtöbb alkalmazástípus esetében működik, de kiválaszthat egy adott kódtípust a hibakereső típusának manuális megadásához.

  7. Válassza a(z) lehetőséget, majd csatolja a(z)-et.

Megjegyzés:

Hibakeresés céljából több alkalmazáshoz is csatolható, de egyszerre csak egy alkalmazás aktív a hibakeresőben. Az aktív alkalmazást a Visual Studio Hibakeresési hely eszköztárán vagy a Folyamatok ablakban állíthatja be.

Bizonyos esetekben, amikor távoli asztali (terminálszolgáltatások) munkamenetben hibakeresést hajtanak létre, az Elérhető folyamatok lista nem jeleníti meg az összes elérhető folyamatot. Ha korlátozott felhasználói fiókkal rendelkező felhasználóként futtatja a Visual Studiót, az Elérhető folyamatok lista nem jeleníti meg a 0. munkamenetben futó folyamatokat. A 0. munkamenet szolgáltatásokhoz és más kiszolgálói folyamatokhoz használható, beleértve aw3wp.exe. A problémát úgy oldhatja meg, hogy rendszergazdai fiók alatt futtatja a Visual Studiót, vagy távoli asztali munkamenet helyett a Kiszolgálókonzolon futtatja a Visual Studiót.

Ha egyik megoldás sem lehetséges, a harmadik lehetőség a folyamathoz való csatlakozás a Windows parancssorban való vsjitdebugger.exe -p <ProcessId> futtatásával. A folyamatazonosítót a tlist.exesegítségével határozhatja meg. A tlist.exebeszerzéséhez töltse le és telepítse a Windows hibakeresési eszközeit, amely a WDK és a WinDbg letöltéseken érhető el.

Csatolás az Azure App Service-ben (Windows) futó .NET Core-folyamathoz

Ha az Azure App Service-ben (Windowson) tesz közzé, útmutatásért tekintse meg az Azure-beli ASP.NET Core távoli hibakeresését vagy az Azure App Service hibakeresését .

Csatolás Linuxon futó .NET Core-folyamathoz SSH használatával

További információ: Távoli hibakeresés .NET Core linuxos SSH használatával.

Csatolás Docker-tárolón futó folyamathoz

A Visual Studio 2019-től kezdve egy Docker-tárolón futó folyamathoz csatolhatja a Visual Studio hibakeresőt. Linux .NET Core Docker-tároló esetén lásd: Csatolás Linux Docker-tárolón futó folyamathoz. Windows Docker-tárolók esetén lásd: Csatolás Windows Docker-tárolón futó folyamathoz.

Folyamat újraaktiválása

A korábban csatolt folyamatok gyors újraaktiválásához válassza a Debug>Reattach to Process (Shift+Alt+P) műveletet. Amikor ezt a parancsot választja, a hibakereső azonnal megpróbál hozzácsatolni a legutóbbi folyamatokhoz, először az előző folyamatazonosító alapján, és ha ez nem sikerül, akkor az előző folyamat név alapján. Ha nem található egyezés, vagy ha több folyamat neve azonos, megnyílik a Folyamat csatolása párbeszédpanel, így kiválaszthatja a megfelelő folyamatot.

Megjegyzés:

A Reattach to Process parancs a Visual Studio 2017-től érhető el.

Gyakori hibakeresési forgatókönyvek

A következő táblázat néhány gyakori hibakeresési forgatókönyvet mutat be, amely segít eldönteni, hogy használja-e a Csatolás a folyamathoz funkciót, és melyik folyamathoz csatolódjon. Emellett, ahol elérhető, további utasításokra mutató hivatkozások is találhatók. (A lista nem teljes.)

Ha gyorsan ki szeretne választani egy futó folyamatot, amelyhez csatolni szeretne, írja be a Visual Studióba a Ctrl AltP++, majd írja be a folyamat nevének első betűét.

Ahhoz, hogy a hibakereső a C++-ban írt kódhoz legyen csatolva, a kódnak ki kell bocsátania DebuggableAttribute. Ezt automatikusan hozzáadhatja a kódhoz a /ASSEMBLYDEBUG linker beállítás csatolásával.

Az ügyféloldali parancsfájlok hibakereséséhez engedélyezni kell a szkriptek hibakeresését a böngészőben. A Chrome-ban az ügyféloldali szkript hibakereséséhez válassza a JavaScript vagy a TypeScript kódot kódtípusként, és az alkalmazás típusától függően előfordulhat, hogy be kell zárnia az összes Chrome-példányt, és hibakeresési módban kell elindítania a böngészőt (írja be chrome.exe --remote-debugging-port=9222 a parancssorból).

Scenario Hibakeresési módszer Folyamat neve Jegyzetek és hivatkozások
ASP.NET Core – Távoli hibakeresés az Internet Information Services (IIS) kiszolgálón Távoli eszközök használata és csatolás a folyamathoz w3wp.exe vagy dotnet.exe A .NET Core 3-tól kezdve a w3wp.exe folyamat az alapértelmezett alkalmazáson belüli üzemeltetési modellhez használatos. Az alkalmazás üzembe helyezéséről lásd: Közzététel az IIS-ben. További információ: Távoli hibakeresés ASP.NET Core távoli IIS-számítógépen
ASP.NET Core – Hibakeresés a helyi gépen az alkalmazás hibakereső nélküli elindítása után A Csatolás a folyamathoz használata appname.exe vagy iisexpress.exe Ez hasznos lehet az alkalmazás gyorsabb betöltéséhez, például a profilkészítés során. Az ASP.NET Core alapértelmezett helyi kiszolgálói (kestrel) folyamata appname.exe.
ASP.NET 4 vagy 4.5 – Távoli hibakeresés IIS-kiszolgálón Távoli eszközök használata és csatolás a folyamathoz w3wp.exe Lásd ASP.NET távoli hibakeresése egy távoli IIS számítógépen
Ügyféloldali szkript – Hibakeresés helyi IIS-kiszolgálón támogatott alkalmazástípusok esetén A Csatolás a folyamathoz használata chrome.exe vagy msedge.exe Engedélyezni kell a szkriptek hibakeresését. Chrome esetén hibakeresési módban is futtatnia kell a Chrome-ot (írja be chrome.exe --remote-debugging-port=9222 a parancssorból), és a Csatolás mezőben válassza a JavaScript vagy a TypeScript lehetőséget.
C#, Visual Basic vagy C++ alkalmazás – Hibakeresés a helyi gépen Használjon standard hibakeresést (F5) vagy csatlakozás egy folyamathoz {appname}.exe A legtöbb esetben használjon szabványos hibakeresést, ne pedig a "Csatlakozás a folyamathoz" lehetőséget.
Asztali Windows-alkalmazás – Távoli hibakeresés Távoli eszközök N/A C# vagy Visual Basic alkalmazás távoli hibakeresése vagy C++ alkalmazás távoli hibakeresése
.NET Core Linux rendszeren – Hibakeresés A Csatolás a folyamathoz használata dotnet.exe vagy egyedi folyamatnév Az SSH használatához lásd: Távoli hibakeresés .NET Core linuxos SSH használatával. Tárolóalapú alkalmazások esetén lásd: Csatolás docker-tárolóban futó folyamathoz.
Tárolóalapú alkalmazás – Hibakeresés A Csatolás a folyamathoz használata dotnet.exe vagy egyedi folyamatnév Lásd: Csatolás docker-tárolóban futó folyamathoz
Python Linuxon – Távoli hibakeresés A Csatolás a folyamathoz használata debugpy Lásd: Távoli csatolás a Python-eszközökről
Egyéb támogatott alkalmazástípusok – Hibakeresés kiszolgálói folyamaton Ha a kiszolgáló távoli, használjon távoli eszközöket, és csatolja a folyamathoz chrome.exe, msedge.exevagy egyéb folyamatok Ha szükséges, használja a Resource Monitort a folyamat azonosításához. Lásd : Távoli hibakeresés.
Univerzális Windows-platform (UWP) alkalmazás, OneCore, HoloLens vagy IoT-alkalmazás – Távoli hibakeresés Telepített alkalmazáscsomag hibakeresése N/A Lásd: Telepített alkalmazáscsomag hibakeresése a Csatolás a folyamathoz funkció helyett
UWP-alkalmazás, OneCore, HoloLens vagy IoT – Nem a Visual Studióból kiinduló alkalmazás hibakeresése Telepített alkalmazáscsomag hibakeresése N/A Lásd: Telepített alkalmazáscsomag hibakeresése a Csatolás a folyamathoz funkció helyett

Hibakereső funkciók használata

Ha a Visual Studio hibakeresőjének teljes funkcióit (például töréspontokat) szeretne használni egy folyamathoz való csatoláskor, az alkalmazásnak pontosan meg kell egyeznie a helyi forrással és szimbólumokkal. Vagyis a hibakeresőnek képesnek kell lennie betölteni a megfelelő szimbólumfájlokat (.pdb). Ehhez alapértelmezés szerint hibakeresési buildre van szükség.

Távoli hibakeresési forgatókönyvek esetén meg kell nyitnia a forráskódot (vagy a forráskód másolatát) a Visual Studióban. A távoli gépen lévő lefordított alkalmazás bináris fájljainak ugyanabból a buildből kell származnia, mint a helyi gépen.

Egyes helyi hibakeresési forgatókönyvekben hibakeresést végezhet a Visual Studióban a forráshoz való hozzáférés nélkül, ha a megfelelő szimbólumfájlok találhatók az alkalmazással. Ehhez alapértelmezés szerint hibakeresési buildre van szükség. További információ: Szimbólum- és forrásfájlok megadása.

Csatolási hibák elhárítása

Bizonyos esetekben a hibakeresőnek segítségre lehet szüksége a hibakereséshez szükséges kód típusának helyes azonosításához. Ha a kapcsolati értékek helyesen vannak beállítva (megtekintheti a megfelelő folyamatot az Elérhető folyamatok listában), de a hibakereső nem csatolható, próbálja meg kiválasztani a legmegfelelőbb hibakeresőt a Kódtípus listában, ami szükséges lehet például linuxos vagy Python-alkalmazás hibakereséséhez.

Előfordulhat, hogy a hibakereső sikeresen csatolható egy kódtípushoz, egy másik kódtípushoz azonban nem. Ez általában a következő esetekben fordul elő:

  • Egy távoli számítógépen futó folyamathoz próbál csatlakozni. Előfordulhat, hogy a távoli számítógép bizonyos kódtípusokhoz távoli hibakeresési összetevőket telepített, másokra azonban nem.
  • A közvetlen adatbázis-hibakereséshez két vagy több folyamathoz próbál csatlakozni. Az SQL-hibakeresés csak egyetlen folyamathoz való csatolást támogatja.

Ha a hibakereső néhány, de nem az összes kódtípushoz tud csatolni, megjelenik egy üzenet, amely azonosítja, hogy mely típusokat nem sikerült csatolni.

Ha a hibakereső sikeresen csatlakozik legalább egy kódtípushoz, folytathatja a hibakeresést. Csak a sikeresen csatolt kódtípusokat tudja hibakeresésre használni. A folyamat kapcsolódás nélküli kódja továbbra is futni fog, de nem állíthat be töréspontokat, nem nézheti meg az adatokat, és nem hajthat végre más hibakeresési műveleteket azon a kódon.

Ha pontosabb információt szeretne arról, hogy a hibakereső miért nem tudott kódtípushoz csatolni, próbálja meg csak erre a kódtípusra újracsatlakozni.

Konkrét információk beszerzése arról, hogy miért nem sikerült csatolni egy kódtípust

  1. Válassza le a folyamatot. A Hibakeresés menüben válassza az Összes leválasztása lehetőséget.

  2. Csatlakoztassa újra a folyamatot, és csak azt a kódtípust válassza ki, amelyet nem sikerült csatolni.

    1. A Folyamat csatolása párbeszédpanelen válassza ki a folyamatot az Elérhető folyamatok listában.

    2. A Kódtípus beállításban válassza ki azt a kódtípust, amelyet nem sikerült csatolni. Törölje a többi kódtípus kijelölését.

    3. A Csatolás a folyamathoz párbeszédpanelen válassza a Csatolás lehetőséget.

    Ezúttal a csatolás teljesen sikertelen lesz, és egy adott hibaüzenet jelenik meg.