แบบฝึกหัด - เรียกใช้รหัสในสภาพแวดล้อมดีบัก

เสร็จสมบูรณ์เมื่อ

อินเทอร์เฟซผู้ใช้ Visual Studio Code ช่วยให้นักพัฒนาสามารถเรียกใช้โค้ดของตนในสภาพแวดล้อมดีบักได้ รองรับการดีบักมีให้โดยส่วนขยายและสําหรับนักพัฒนา C# การสนับสนุนตัวแก้ไขจุดบกพร่องมีให้โดยส่วนขยายเดียวกันที่ให้การสนับสนุนสําหรับการพัฒนาโค้ดและ IntelliSense

ดีบักเกอร์และการโต้ตอบของแอปพลิเคชัน

ตัวแก้ไขจุดบกพร่องรหัสสามารถใช้เพื่อหยุดชั่วคราวและดําเนินการต่อการดําเนินการโค้ด ตรวจสอบสถานะตัวแปร และแม้แต่เปลี่ยนค่าที่กําหนดให้กับตัวแปรในขณะทํางาน คุณอาจสงสัยว่าตัวควบคุมตัวแก้ไขจุดบกพร่องและปรับเปลี่ยนแอปพลิเคชันที่กําลังทํางานอยู่ได้อย่างไร คําตอบสั้นๆ คือ โปรแกรมดีบักมีการเข้าถึงสภาพแวดล้อมรันไทม์ของแอปพลิเคชันและรหัสที่ปฏิบัติการได้

หมายเหตุ

การโต้ตอบกับตัวแก้ไขจุดบกพร่องกับสภาพแวดล้อมรันไทม์เป็นหัวข้อขั้นสูง นอกจากนี้ การทําความเข้าใจวิธีการทํางานของตัวดีบักเบื้องหลังไม่ใช่ข้อกําหนดสําหรับการใช้ตัวดีบัก อย่างไรก็ตามคําอธิบายต่อไปนี้อาจเป็นไปตามความอยากรู้ของคุณ

ดีบักเกอร์ Visual Studio Code สําหรับ C# ใช้รันไทม์ .NET เพื่อเปิดใช้และโต้ตอบกับแอปพลิเคชัน เมื่อคุณเริ่มโปรแกรมดีบัก จะสร้างอินสแตนซ์ใหม่ของรันไทม์และเรียกใช้แอปพลิเคชันภายในอินสแตนซ์นั้น รันไทม์รวมถึง application programming interface (API) ซึ่งตัวดีบักเกอร์ใช้เพื่อแนบกับกระบวนการทํางาน (แอปพลิเคชันของคุณ)

เมื่อแอปพลิเคชันของคุณกําลังทํางานและแนบดีบักเกอร์แล้ว ดีบักเกอร์จะสื่อสารกับกระบวนการที่กําลังทํางานอยู่โดยใช้ API การดีบักของรันไทม์ .NET และโปรโตคอลดีบักมาตรฐาน ตัวดีบักสามารถโต้ตอบกับกระบวนการ (แอปพลิเคชันที่รันภายในอินสแตนซ์รันไทม์ .NET) โดยการตั้งค่าจุดสั่งหยุด ขั้นตอนโดยใช้รหัสและตรวจสอบตัวแปร อินเทอร์เฟซตัวแก้ไขจุดบกพร่องของ Visual Studio Code ช่วยให้คุณสามารถนําทางรหัสต้นทาง ดูสแตกการโทร และประเมินนิพจน์ได้

วิธีทั่วไปในการระบุเซสชันดีบักคือการกําหนดค่าการเปิดใช้ในไฟล์ launch.json วิธีการนี้คือตัวเลือกเริ่มต้นที่เปิดใช้งานโดยเครื่องมือตัวดีบัก ตัวอย่างเช่น ถ้าคุณสร้างแอปพลิเคชันคอนโซล C# และเลือก เริ่มการดีบัก จากเมนู เรียกใช้ ตัวดีบักเกอร์จะใช้วิธีนี้เพื่อเปิดใช้งาน แนบกับ และจากนั้นโต้ตอบกับแอปพลิเคชันของคุณ

สร้างโครงการรหัสใหม่

ขั้นตอนแรกในการเรียนรู้เครื่องมือตัวแก้ไขจุดบกพร่องคือการสร้างโครงการรหัสที่คุณสามารถเรียกใช้ในโปรแกรมดีบัก

  1. เปิดอินสแตนซ์ใหม่ของ Visual Studio Code

  2. บนเมนู ไฟล์ เลือก เปิดโฟลเดอร์

  3. ในกล่องโต้ตอบ เปิดโฟลเดอร์ ให้นําทางไปยังโฟลเดอร์ Windows Desktop ของคุณ

  4. บนกล่องโต้ตอบ เปิดโฟลเดอร์ เลือก โฟลเดอร์ใหม่

  5. ตั้งชื่อโฟลเดอร์ใหม่ Debug101 จากนั้นเลือก เลือกโฟลเดอร์

  6. บนเมนู เทอร์มินัล ให้เลือก เทอร์มินัลใหม่

    สามารถใช้คําสั่ง .NET CLI เพื่อสร้างแอปคอนโซลใหม่ได้

  7. ที่พรอมต์คําสั่งของแผงเทอร์มินัล ให้ป้อนคําสั่งต่อไปนี้:

    dotnet new console
    
  8. ปิดแผงขั้วต่อ

ตรวจสอบการกําหนดค่าการเปิดใช้สําหรับการดีบัก

Visual Studio Code ใช้ไฟล์การกําหนดค่าการเปิดใช้เพื่อระบุแอปพลิเคชันที่ทํางานในสภาพแวดล้อมดีบัก

  1. ถ้าโฟลเดอร์ Debug101 ไม่มีไฟล์ Debug101.sln ให้เลือก Program.cs จากนั้นตรวจสอบว่ามีการสร้างไฟล์.sln แล้ว

    การเปิดไฟล์โค้ด C# จะพร้อมท์สภาพแวดล้อมเพื่อตรวจสอบไฟล์โครงการ ไฟล์.sln คือ ไฟล์โซลูชันที่ Visual Studio ใช้เพื่อจัดการโครงการ และมักจะสร้างขึ้นโดยอัตโนมัติเมื่อคุณสร้างโครงการใหม่ใน Visual Studio Code ไฟล์.sln ถูกใช้โดยตัวแก้ไขจุดบกพร่องเพื่อระบุโครงการที่ควรเรียกใช้ในสภาพแวดล้อมการดีบัก

  2. บนเมนู มุมมอง ให้เลือก ชุดคําสั่ง

  3. ที่พรอมต์คําสั่ง ให้ป้อน .net: g จากนั้นเลือก .NET: สร้าง Assets สําหรับการสร้างและดีบัก

  4. โปรดสังเกตโฟลเดอร์ใหม่ .vscode ที่ถูกเพิ่มลงในโฟลเดอร์โครงการของคุณ

    สกรีนช็อตที่แสดงโฟลเดอร์ .vscode ใน EXPLORER

    โฟลเดอร์ .vscode ประกอบด้วยไฟล์ที่ใช้ในการกําหนดค่าดีบักสภาพแวดล้อม

  5. .vscodeขยายโฟลเดอร์ จากนั้นเลือกไฟล์ launch.json

  6. ใช้เวลาสักครู่ในการตรวจสอบไฟล์ launch.json

    ไฟล์การกําหนดค่าการเปิดใช้สามารถมีหลายการกําหนดค่าได้ การกําหนดค่าแต่ละรายการรวมถึงคอลเลกชันของแอตทริบิวต์ที่ใช้ในการกําหนดการกําหนดค่านั้น

  7. โปรดสังเกตว่าแอตทริบิวต์ prelaunchTask ระบุงานการสร้าง

  8. ใน.vscodeโฟลเดอร์ ให้เลือก tasks.json

  9. โปรดสังเกตว่าไฟล์ tasks.json ประกอบด้วยงาน การสร้าง สําหรับโครงการโค้ดของคุณ

  10. ปิดไฟล์ launch.json และ tasks.json

คุณจะได้ดูรายละเอียดแอตทริบิวต์การกําหนดค่าการเปิดใช้งานในภายหลังของมอดูลนี้

เรียกใช้โค้ดของคุณจากเมนูเรียกใช้

เมนู เรียกใช้ ในรหัส Visual Studio ให้ตัวเลือกในการเรียกใช้โค้ดของคุณโดยมีหรือไม่มีตัวดีบัก

  1. เปิดไฟล์ Program.cs

  2. แทนที่เนื้อหาของไฟล์ Program.cs ของคุณด้วยโค้ดต่อไปนี้:

    /* 
    This code uses a names array and corresponding methods to display
    greeting messages
    */
    
    string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" };
    
    string messageText = "";
    
    foreach (string name in names)
    {
        if (name == "Sophia")
            messageText = SophiaMessage();
        else if (name == "Andrew")
            messageText = AndrewMessage();
        else if (name == "AllGreetings")
            messageText = SophiaMessage();
            messageText = messageText + "\n\r" + AndrewMessage();
    
        Console.WriteLine(messageText + "\n\r");
    }
    
    bool pauseCode = true;
    while (pauseCode == true);
    
    static string SophiaMessage()
    {
        return "Hello, my name is Sophia.";
    }
    
    static string AndrewMessage()
    {
        return "Hi, my name is Andrew. Good to meet you.";
    }
    
  3. บนเมนู แฟ้ม ให้เลือก บันทึก

  4. เปิดเมนูเรียกใช้

    โปรดสังเกตว่าเมนู เรียกใช้ มีตัวเลือกสําหรับการเรียกใช้โค้ดของคุณโดยมีหรือไม่มีดีบัก

  5. บนเมนู เรียกใช้ เลือก เรียกใช้โดยไม่มีการดีบัก

  6. โปรดสังเกตว่าแผง DEBUG CONSOLE แสดงเอาต์พุตของคอนโซลและ แถบเครื่องมือ Debug แสดงตัวควบคุมการดําเนินการ

    แผง DEBUG CONSOLE ควรแสดงอยู่ด้านล่างตัวแก้ไขโค้ด ตามค่าเริ่มต้น แถบเครื่องมือแก้จุดบกพร่อง (แถบเครื่องมือขนาดเล็กที่แสดงตัวควบคุมการประมวลผลโค้ด) จะอยู่เหนือตัวแก้ไขโค้ดและจัดกึ่งกลางแนวนอนบนหน้าต่าง Visual Studio Code

  7. บนแถบเครื่องมือแก้จุดบกพร่อง เลือกหยุด

เริ่มเซสชันดีบักจากเมนูเรียกใช้

เมนู เรียกใช้ มีตัวเลือกเพื่อเริ่มเซสชันการดีบัก

  1. บนเมนู เรียกใช้ เลือก เริ่มการดีบัก

  2. ใช้เวลาสักครู่เพื่อตรวจสอบข้อความที่แสดงในแผงคอนโซลดีบัก

    ผลลัพธ์จากแอปพลิเคชันของคุณจะเหมือนกับเวลาที่คุณเรียกใช้โดยไม่มีการดีบัก แต่ข้อความอื่น ๆ ที่เกี่ยวข้องกับการเตรียมดีบักสภาพแวดล้อมจะปรากฏขึ้น

  3. โปรดสังเกตข้อความเกี่ยวกับการโหลดทรัพยากร .NET และแอปพลิเคชัน Debug101 ของคุณ

    สองข้อความแรกรายงานการโหลดไลบรารี .NET และโปรแกรมประยุกต์ Debug101 ของคุณ

    Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.0\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
    Loaded 'C:\Users\someuser\Desktop\Debug101\bin\Debug\net10.0\Debug101.dll'. Symbols loaded.
    

    ตัวดีบักใช้อินสแตนซ์พิเศษของรันไทม์ .NET เพื่อควบคุมการดําเนินการของแอปพลิเคชันของคุณและประเมินสถานะแอปพลิเคชัน

  4. บนแถบเครื่องมือแก้จุดบกพร่อง เลือกหยุด

เรียกใช้โค้ดของคุณจากมุมมองเรียกใช้และดีบัก

มุมมอง RUN และ DEBUG ใน Visual Studio Code สนับสนุนประสบการณ์การดีบักที่หลากหลาย

  1. สลับไปยังมุมมองเรียกใช้และดีบัก

    สกรีนช็อตที่แสดงตัวเลือกการเรียกใช้ในมุมมองการเรียกใช้และการแก้ไขจุดบกพร่อง

  2. ในมุมมองเรียกใช้และดีบัก เลือกเริ่มการดีบัก

    ปุ่ม เริ่มการแก้จุดบกพร่อง เป็นลูกศรสีเขียวบนแผงควบคุมที่ด้านบนของมุมมอง

  3. โปรดสังเกตว่าแผง DEBUG CONSOLE แสดงข้อความเดียวกันเกี่ยวกับการกําหนดค่าตัวดีบักที่ปรากฏขึ้นเมื่อเริ่มกระบวนการดีบักจากเมนูเรียกใช้

  4. บนแถบเครื่องมือแก้จุดบกพร่อง เลือกหยุด

ตรวจสอบเอาต์พุตจากแอปพลิเคชันของคุณ

  1. ก่อนที่จะปิดแผง DEBUG CONSOLE ให้ใช้เวลาสักครู่เพื่อตรวจสอบเอาต์พุตที่โค้ดของคุณสร้างขึ้น

  2. โปรดสังเกตว่าข้อความทักทายของ Andrew ซ้ํากันโดยไม่คาดคิด

ในระหว่างส่วนที่เหลือของโมดูลนี้ คุณจะใช้เครื่องมือตัวแก้ไขจุดบกพร่องของ Visual Studio Code เพื่อตรวจสอบปัญหาการเขียนโค้ด

สรุป

นี่คือสิ่งสําคัญบางอย่างที่ต้องจําจากหน่วยนี้:

  • ดีบักเกอร์ Visual Studio Code สําหรับ C# ใช้รันไทม์ .NET เพื่อเปิดใช้และโต้ตอบกับแอปพลิเคชัน
  • เมนู การเรียกใช้ รหัส Visual Studio มีตัวเลือกในการเริ่มต้นแอปพลิเคชันและไม่มีตัวแก้ไขจุดบกพร่องที่แนบมา
  • แถบเครื่องมือแก้จุดบกพร่องมีปุ่มเพื่อหยุดกระบวนการทํางานอยู่
  • มุมมอง RUN และ DEBUG มีตัวเลือกในการเริ่มดีบักแอปพลิเคชัน