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 Visual Studio lehetővé teszi több hibakereső típus engedélyezését egy hibakeresési munkamenetben, amelyet vegyes módú hibakeresésnek neveznek. Ebben az oktatóanyagban megtanulhatja a felügyelt és a natív kód hibakeresését egyetlen hibakeresési munkamenetben.
Ez az oktatóanyag bemutatja, hogyan lehet hibakeresést végezni natív kódon egy felügyelt alkalmazásból, de natív alkalmazásból is lehet hibakeresést végezni felügyelt kódon. A hibakereső más típusú vegyes módú hibakeresést is támogat, például a Python hibakeresését és a natív kód, valamint a szkript hibakeresőjének használatát az olyan alkalmazástípusokban, mint a ASP.NET.
Ebben az oktatóanyagban a következőket fogja megtanulni:
- Egyszerű natív DLL létrehozása
- Hozzon létre egy egyszerű .NET Core- vagy .NET-keretrendszeralkalmazást a DLL meghívásához
- Vegyes módú hibakeresés konfigurálása
- A hibakereső indítása
- Töréspont elérése a felügyelt alkalmazásban
- Lépjen a natív kódba
Előfeltételek
Telepítve kell lennie a Visual Studio-nak a következő számítási feladatokkal:
- Asztali fejlesztés C++-szal
- .NET asztali fejlesztés
Ha nem rendelkezik Visual Studióval, nyissa meg a Visual Studio letöltési lapot, és telepítse ingyenesen.
Ha telepítve van a Visual Studio, de nem rendelkezik a szükséges számítási feladatokkal, a Visual Studio Új projekt párbeszédpanel bal oldali ablaktábláján válassza a Visual Studio Installer megnyitása lehetőséget. A Visual Studio Installerben válassza ki a szükséges munkaterheléseket, majd válassza a Módosítás lehetőséget.
Egyszerű natív DLL létrehozása
A DLL-projekt fájljainak létrehozása:
Nyissa meg a Visual Studiót, és hozzon létre egy projektet.
A kezdőablak bezárásához nyomja le Esc. A keresőmező megnyitásához írja be a Ctrl + Q billentyűkombinációt , írja be a Projekt ürítése parancsot, majd válassza a C++-hoz tartozó Üres projekt lehetőséget . A megjelenő Új projekt konfigurálása párbeszédpanelen írjon be egy nevet, például Mixed_Mode_Debugging , majd kattintson a Létrehozás gombra.
Ha nem látja a Üres projekt projektsablont, lépjen Eszközök>Eszközök és szolgáltatások lekérése...elemre, amely megnyitja a Visual Studio Installert. Elindul a Visual Studio Installer. Válassza a C++-alapú asztali fejlesztés munkaterhelést, majd válassza a Módosításlehetőséget.
A Visual Studio létrehozza a projektet.
A Megoldáskezelőválassza Forrásfájloklehetőséget, majd válassza Project>Új elem hozzáadásalehetőséget. Vagy kattintson a jobb gombbal Forrásfájlok, és válassza >Új elem hozzáadásalehetőséget.
Ha nem látja az összes elemsablont, válassza a Az összes sablon megjelenítéselehetőséget.
Az Új elem párbeszédpanelen válassza C++ fájl (.cpp). Írja be a Mixed_Mode.cpp a Név mezőbe, majd válassza a Hozzáadáslehetőséget.
A Visual Studio hozzáadja az új C++ fájlt a Megoldáskezelőben.
Másolja a következő kódot a Mixed_Mode.cpp:
#include "Mixed_Mode.h"A Megoldáskezelőválassza Fejlécfájloklehetőséget, majd válassza Project>Új elem hozzáadásalehetőséget. Vagy kattintson a jobb gombbal Fejlécfájlok elemre, és válassza >Új elem hozzáadásalehetőséget.
Ha nem látja az összes elemsablont, válassza a Az összes sablon megjelenítéselehetőséget.
Az Új elem párbeszédpanelen válassza Fejlécfájl (.h)lehetőséget. Írja be a Mixed_Mode.h a Név mezőbe, majd válassza a Hozzáadáslehetőséget.
A Visual Studio hozzáadja az új fejlécfájlt Megoldáskezelő.
Másolja a következő kódot a Mixed_Mode.h:
#ifndef MIXED_MODE_MULTIPLY_HPP #define MIXED_MODE_MULTIPLY_HPP extern "C" { __declspec(dllexport) int __stdcall mixed_mode_multiply(int a, int b) { return a * b; } } #endifVálassza a Fájl>Mentsd az összeset lehetőséget, vagy a fájlok mentéséhez nyomja le a Ctrl+Shift+S billentyűkombinációt.
A DLL-projekt konfigurálása és létrehozása:
A Visual Studio eszköztárán válassza Hibakeresési konfigurációt, és x86 vagy x64 platformot. Ha a hívóalkalmazás .NET Core lesz, amely mindig 64 bites módban fut, válassza x64 platformként.
A Megoldáskezelőválassza ki a Mixed_Mode_Debugging projektcsomópontot, és válassza a Tulajdonságok ikont, vagy kattintson a jobb gombbal a projektcsomópontra, és válassza a Tulajdonságoklehetőséget.
A Tulajdonságok panel tetején győződjön meg arról, hogy a KonfigurációsActive(Hibakeresés) értékre van állítva, és a platform megegyezik az eszköztárban beállított beállításokkal: x64vagy Win32 x86 platformhoz.
Fontos
Ha x86-ről x64- vagy fordítva vált platformra, újra kell konfigurálnia az új platform tulajdonságait.
A bal oldali panelen Konfiguráció tulajdonságai területen válassza a Linker>Speciálislehetőséget, majd a Nincs belépési pontmelletti legördülő menüben válassza a Nincslehetőséget. Ha nemkellett módosítania, válassza a Alkalmazlehetőséget.
A Konfiguráció tulajdonságaiterületen válassza Általánoslehetőséget, majd a Konfigurációtípusmelletti legördülő menüben válassza Dinamikus kódtár (.dll)lehetőséget. Válassza a Alkalmazlehetőséget, majd válassza OKlehetőséget.
Jelölje ki a projektet Megoldáskezelő, majd válassza a Build>Megoldás összeállításalehetőséget, nyomja le F7, vagy kattintson a jobb gombbal a projektre, és válassza a Buildlehetőséget.
A projektnek hiba nélkül kell elkészülnie.
Egyszerű felügyelt alkalmazás létrehozása a DLL meghívásához
Nyissa meg a Visual Studiót, és hozzon létre egy új projektet.
A kezdőablak bezárásához nyomja le Esc. A keresőmező megnyitásához írja be a Ctrl + Q billentyűkombinációt , írja be a konzolt, majd válassza ki a C# konzolalkalmazást a .NET- vagy .NET-keretrendszerhez.
Ezután írjon be egy nevet, például Mixed_Mode_Calling_App, és kattintson a Következő vagy létrehozása elemre, amelyik elérhető.
.NET Core vagy .NET 5+ esetén válassza az ajánlott cél keretrendszert vagy a .NET 10-et, majd válassza a Létrehozás lehetőséget.
Ha nem látja a megfelelő projektsablont, lépjen Eszközök>Eszközök és szolgáltatások lekérése...elemre, amely megnyitja a Visual Studio Installert. Válassza ki a megfelelő .NET-számítási feladatot az előfeltételekben leírtak szerint, majd válassza a módosítása lehetőséget.
Jegyzet
Az új felügyelt projektet a meglévő C++ megoldáshoz is hozzáadhatja. A projektet egy új megoldásban hozjuk létre, hogy megnehezítsük a vegyes módú hibakeresési feladatot.
A Visual Studio létrehozza az üres projektet, és megjeleníti azt Megoldáskezelő.
Cserélje le az Program.cs összes kódját a következő kódra:
using System; using System.Runtime.InteropServices; namespace Mixed_Mode_Calling_App { public class Program { // Replace the file path shown here with the // file path on your computer. For .NET Core, the typical (default) path // for a 64-bit DLL might look like this: // C:\Users\username\source\repos\Mixed_Mode_Debugging\x64\Debug\Mixed_Mode_Debugging.dll // Here, we show a typical path for a DLL targeting the **x86** option. [DllImport(@"C:\Users\username\source\repos\Mixed_Mode_Debugging\Debug\Mixed_Mode_Debugging.dll", EntryPoint = "mixed_mode_multiply", CallingConvention = CallingConvention.StdCall)] public static extern int Multiply(int x, int y); public static void Main(string[] args) { int result = Multiply(7, 7); Console.WriteLine("The answer is {0}", result); Console.ReadKey(); } } }Az új kódban cserélje le a
[DllImport]fájl elérési útját az imént létrehozott Mixed_Mode_Debugging.dll elérési útjára. Tippekért tekintse meg a kód megjegyzését. Kérem, mindenképpen cserélje le a felhasználónév helyőrzőt.Válassza Fájl>Mentés Program.cs lehetőséget, vagy nyomja le a Ctrl+S billentyűkombinációt a fájl mentéséhez.
Vegyes módú hibakeresés konfigurálása
A Megoldáskezelő nézet-ben válassza ki a Mixed_Mode_Calling_App projektcsomópontot, és válassza a Tulajdonságok ikont, vagy kattintson a jobb gombbal a projektcsomópontra, és válassza a Tulajdonságoklehetőséget.
Engedélyezze a natív kódkeresést a tulajdonságokban.
.NET-kód
Válassza Hibakeresési lehetőséget a bal oldali panelen, válassza a Hibakeresési indítási profilok felhasználói felületének megnyitásalehetőséget, majd jelölje be a A natív kód hibakeresésének engedélyezése jelölőnégyzetet, majd zárja be a tulajdonságok lapot a módosítások mentéséhez.
.NET-keretrendszerkód
A bal oldali menüben válassza Hibakeresésilehetőséget. Ezután a Hibakeresőmotorok szakaszban jelölje ki a Natív kód hibakeresésének engedélyezése tulajdonságot, majd zárja be a tulajdonságok lapot a módosítások mentéséhez.
Ha egy .NET-keretrendszer alkalmazásból származó x64 DLL-t céloz meg, módosítsa a platform célját a Bármely CPU-ről x64-re. Ehhez előfordulhat, hogy ki kell választania Configuration Manager a Hibakeresési eszköztár Megoldásplatform legördülő menüjéből. Ezután, ha nem tud közvetlenül x64-re váltani, hozzon létre egy Új-konfigurációt, amely az x64-et célozza.
Töréspont beállítása és hibakeresés indítása
A C# projektben nyissa meg a Program.cs. Állítson be töréspontot a következő kódsoron: kattintson a bal szélső margóra, jelölje ki a vonalat, és nyomja le F9, vagy kattintson a jobb gombbal a sorra, és válassza Töréspont>Töréspont beszúrásalehetőséget.
int result = Multiply(7, 7);Piros kör jelenik meg a bal margón, ahol beállítja a töréspontot.
Nyomja le F5, válassza a zöld nyílbillentyűt a Visual Studio eszköztárán, vagy válassza Hibakeresési>Hibakeresés indítása lehetőséget a hibakeresés megkezdéséhez.
A hibakereső a beállított törésponton szünetel. A sárga nyíl jelzi, hogy a hibakereső jelenleg hol van szüneteltetve.
Lépjen be és ki a natív kódból
Miközben a hibakeresés szüneteltetve van a felügyelt alkalmazásban, nyomja le F11, vagy válassza a Hibakeresés>Belépéslehetőséget.
Megnyílik a Mixed_Mode.h natív fejlécfájl, és megjelenik a sárga nyíl, ahol a hibakereső szüneteltetve van.
Most beállíthatja és elérheti a töréspontokat, és megvizsgálhatja a natív vagy felügyelt kód változóit.
Vigye az egérmutatót a forráskód változói fölé az értékük megtekintéséhez.
Tekintse meg a változókat és azok értékeit az Automatikus és Helyiek ablakban.
A hibakeresőben szüneteltetve használhatja a Watch ablakokat és a Hívásverem ablakot is.
Nyomja le újra az F11 billentyűkombinációt, hogy a hibakereső egy sorral előrébb lépjen.
Nyomja le Shift+F11 vagy válassza Hibakeresés>Kiléptetés lehetőséget a végrehajtás folytatásához és a felügyelt alkalmazásban való ismételt szüneteltetéshez.
Nyomja le F5 vagy a zöld nyílra kattintva folytassa az alkalmazás hibakeresését.
Gratulálok! Elvégezte a vegyes módú hibakereséssel kapcsolatos oktatóanyagot.
Következő lépés
Ebben az oktatóanyagban megtanulhatta, hogyan végezhet hibakeresést natív kódban egy felügyelt alkalmazásból a vegyes módú hibakeresés engedélyezésével. A hibakereső egyéb funkcióinak áttekintését a következő témakörben tekintheti meg: