Oktatóanyag: C# és C++ hibakeresése ugyanabban a hibakeresési munkamenetben

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:

  1. 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.

  2. 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.

  3. 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.

  4. Másolja a következő kódot a Mixed_Mode.cpp:

    #include "Mixed_Mode.h"
    
  5. 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.

  6. 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ő.

  7. 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;
      }
    }
    #endif
    
  8. Vá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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

    Váltás egy natív DLL-re

  6. 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

  1. 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ő.

  2. 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();
            }
        }
    }
    
  3. 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.

  4. 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

  1. 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.

  2. 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.

    Vegyes módú hibakeresés engedélyezése

    .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.

  3. 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

  1. 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.

  2. 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

  1. 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.

    Lépjen be a natív kódba

  2. 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.

  3. Nyomja le újra az F11 billentyűkombinációt, hogy a hibakereső egy sorral előrébb lépjen.

  4. 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.

  5. 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: