Lỗi không mở được thư mục debug trong visual studio năm 2024

Khi bạn nhập tên đối tượng của đối tượng được đặt ở một địa chỉ cố định trong cửa sổ xem trong trình gỡ lỗi Visual Studio, bạn nhận được thông báo giống như sau:

mã định danh object_name được xác định

Ví dụ: sự cố này có thể được sao chép biên dịch và chạy mã sau trên hệ thống dựa trên x86:

________0

Nguyên nhân

Trong các phiên bản của Visual Studio, trình gỡ lỗi sử dụng địa chỉ tương đối thay vì địa chỉ tuyệt đối cho tất cả các biến. Điều này gây ra các biến được đặt cố định địa chỉ không được tìm thấy trong phạm vi trực tiếp cho khung xếp chồng hiện tại.

Giải pháp

Khắc phục sự cố này chỉ áp dụng cho Visual Studio 2015 Update 3. Nếu bạn muốn xem các địa chỉ tuyệt đối, bạn phải sử dụng Visual Studio 2015 Update 3 hoặc phiên bản mới hơn.

Khắc phục sự cố có sẵn để tải xuống từ Microsoft Download Center:

Tải sửa chữa bây giờ.

Microsoft đã quét vi rút, tệp này bằng cách sử dụng phần mềm phát hiện vi-rút mới nhất đã có vào ngày tệp được đăng. Tệp được lưu trữ trên máy chủ được tăng cường bảo mật giúp ngăn chặn mọi thay đổi trái phép với nó.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Hãy nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, bản cập nhật bảo mật và hỗ trợ kỹ thuật.

Debugger Cannot Display Source Code or Disassembly

  • Bài viết
  • 01/13/2024

Trong bài viết này

This error reads:

The debugger cannot display source code or disassembly for the current location where execution has stopped.

This error message can occur for a number of reasons:

  • You may have hit a breakpoint in a location for which there is no source code, while debugging a language that doesn't support disassembly. Open the Breakpoints window, locate the breakpoint, and delete it.
  • If you are debugging script, you may have hit a breakpoint while there were no threads in your program. Choose Step or Continue from the Debug menu to resume debugging.

Security considerations may have prevented the debugger from reading stack, thread, register, and other context information from the program you are debugging. This is most likely to happen if you are debugging a Web application and don't have the right permission to access the virtual directory. Set security for the virtual directory to Anonymous and try again.

Một chương trình được viết ra không bao giờ là hoàn hảo, luôn tồn tại những lỗ hổng mà các hacker có thể khai thác và lợi dụng, thậm chí phá hỏng chương trình hay đánh sập cả một hệ thống. Một chương trình có thể tồn tại những lỗi về logic mà ta khó nhận ra, đòi hỏi kỹ năng tư duy logic cao để phát hiện và sửa lỗi.

Chưa đề cập đến các lỗi logic, để hỗ trợ tìm kiếm và fix các lỗi lập trình hầu hết các IDE đều hỗ trợ khả năng gỡ rối [debug] chương trình bằng cách chạy từng dòng lệnh [step by step] và xem xét sự thay đổi trạng thái của chương trình như các biến, cách vận hành của mã.

Debug là gì?

Debug là quá trình tìm kiếm và fix bug [sửa lỗi] của chương trình. Quá trình debug thường mất nhiều thời gian hơn việc viết chương trình, vì những lỗi liên quan đến logic thường rất khó phát hiện. Visual Studio cung cấp nhiều công cụ trực quan để đơn giản hoá quá trình debug, tìm và sửa lỗi chương trình một cách dễ dàng hơn.

Visual Studio debugger?

Visual Studio và các phiên bản khác của IDE hỗ trợ rất tốt việc kiểm tra lỗi và được gọi là debugger, nhờ tính trực quan và ổn định nên rất được tin tưởng sử dụng, thậm chí các mã nguồn ứng dụng của C++ viết trên iOS hoặc Android đều có thể có phiên bản Win32 để kiểm thử nhanh trước, các IDE khác nhau có thể sẽ có sự khác biệt về thao tác đôi chút nhưng tư tưởng vẫn tương tự.

Một số khái niệm liên quan

Chạy chương trình

Một chương trình sẽ lần lượt duyệt qua các dòng code có trong các hàm. Trong đó, có những đoạn "thẳng", có những đoạn rẽ nhánh [if/switch], có những đoạn vòng [for/while/…], có những đoạn đường nhỏ hơn [các function].

Để sửa lỗi chương trình, cần tìm ra được những đoạn rối của nó, tức là xác định xem đoạn code ở vị trí nào có khả năng phát sinh lỗi.

Breakpoints

Breakpoints là vị trí mà chương trình sẽ dừng lại để lập trình viên xem xét sự thay đổi của trạng thái chương trình, các biến qua từng dòng lệnh, từ đó phát hiện ra vị trí gây lỗi.

Breakpoints được đánh dấu bằng chấm tròn màu đỏ ở đầu dòng code. Để tạo ra một breakpoint, cách đơn giản nhất là click chuột vào đầu dòng code [như trong hình]. Để huỷ breakpoints, chỉ cần click chuột vào breakpoint đó một lần nữa. Ngoài ra các bạn cũng có thể tạo/huỷ breakpoint bằng phím F9.

Breakpoint trong Visual Studio

Watch Windows

Trong quá trình Debug, khi chương trình dừng lại ở một breakpoint, điều cần thiết của là kiểm tra sự thay đổi giá trị của các biến, hàm, … qua từng dòng code để nhìn ra sai sót trong thuật toán. Watch windows là tập hợp các công cụ giúp lập trình viên quan sát được giá trị hiện tại của biến. Các cửa sổ này có thể được tìm thấy trong menu Debug → Windows [chỉ xuất hiện khi đang trong quá trình debug].

Data Tip

Khi di chuyển con trỏ chuột đến tên biến ở bất kì vị trí nào trong phạm vi cặp dấu { } [scope] hiện tại, giá trị của biến sẽ được hiển thị trên màn hình. Khi đó có thể "ghim" biến đó lên màn hình để tiện quan sát, hoặc add vào cửa sổ Watch, copy giá trị, thay đổi giá trị của biến, …

Data Tip

Locals

Cửa sổ Locals sẽ hiển thị tất cả các biến có liên quan đến dòng code hiện tại một cách tự động. Các biến hiển thị ở đây sẽ được thay đổi qua từng dòng code. Ngoài ra, màu sắc của các biến giúp ta phân biệt được những biến nào vừa thay đổi giá trị.

Autos

Tương tự như Locals, cửa sổ Autos hiển thị các biến vừa được sử dụng trong các dòng code trước. Visual Studio sẽ tự động nhận diện biến nào không còn cần thiết và loại bỏ ra khỏi cửa sổ Autos.

Watch

Visual Studio không thể nhận diện được tất cả những gì lập trình viên cần. Trong một số trường hợp, cần theo dõi cụ thể một giá trị nào đó, chẳng hạn như phần tử thứ 10 trong một mảng số nguyên hay kí tự thứ 5 của chuỗi Stdio Tutorial, … Cần sử dụng đến cửa sổ Watch. Nó cho phép lập trình viên nhập vào tên biến, hàm, … cụ thể trong scope hiện tại. Giá trị của các biến, hàm sẽ được hiển thị bên cạnh tên biến.

Cửa sổ Watch

Debug chương trình

Trước khi debug, cần tạo ra các breakpoints cần thiết để tìm và sửa lỗi chương trình. Để bắt đầu tiến hành debug một chương trình, vào menu Debug → Start Debugging hoặc nhấn phím F5 trên bàn phím. Visual Studio sẽ tiến hành Build chương trình. Sau khi Build xong và không có lỗi biên dịch [compile error], cửa sổ Debug sẽ xuất hiện. Nếu không có các lệnh dừng màn hình chờ nhập dữ liệu [như scanf, `switch`0, …], chương trình sẽ dừng lại tại breakpoint đầu tiên.

Chủ Đề