2009-02-22 30 views
6

Tôi chỉ muốn bước qua chương trình của tôi với Visual Studio 2005, nhưng khi tôi cố gắng sao chép những gì giáo viên của tôi (kinda) chỉ cho tôi, tôi bắt đầu bước qua một số tập tin khác xuất hiện tự nhiên trong cửa sổ của tôi. Chúng được gọi là những thứ ngẫu nhiên như "xstring" và "ios" và tôi thực sự thất vọng. Xin vui lòng, làm thế nào để tôi bước qua mã của tôi?Visual Studio Debugging- Tôi chỉ muốn bước qua chương trình của tôi!

+0

Vui lòng chỉnh sửa câu hỏi của bạn để đưa ra một ví dụ ngắn, đầy đủ về phương pháp mà bạn đang cố gắng thực hiện và cho biết câu lệnh nào bất ngờ đưa bạn vào mã STL. – ChrisW

+2

Khi ai đó gặp vấn đề tương tự, tôi sẽ giải thích: Trong quá trình bước vào một tuyên bố đơn lẻ, người ta thường truy cập các cuộc gọi STL, các cuộc gọi của nhà xây dựng, các cuộc gọi nhà điều hành mới, v.v ... trên đường đến chức năng thực sự muốn bước vào. Như vậy, sẽ tốt hơn nếu có một cách để báo cho trình gỡ rối tự động bước OVER bất cứ thứ gì từ các hàm riêng lẻ đến các hàm trong một mô-đun cụ thể hoặc của một lớp cụ thể, ngay cả khi bạn sử dụng Step Into. – Stewart

Trả lời

-1

http://mark.michaelis.net/Blog/VisualStudioKeyboardShortcutsWrapupMSDNFlashFeb22009.aspx

Về cơ bản nói bạn nên sử dụng F10 (bước lên) và không F11 (bước-in) khi dòng hiện tại của mã chứa cuộc gọi đến không hoạt động của bạn.

+0

Tôi đã thử! Điều đó thật kỳ lạ! –

+2

Nhưng điều đó sẽ bước qua một số chức năng người dùng WANTS để bước vào. Nhiều câu lệnh C++ chứa một hỗn hợp các cuộc gọi thư viện và các cuộc gọi đến các hàm thực sự là một phần của chương trình. – Stewart

1

Rất có thể điều đang xảy ra là bạn đang bước vào các phương pháp tích hợp sẵn trong khung công tác. Khi điều đó xảy ra, chỉ cần nhấp vào "bước ra" và bạn sẽ trở lại trong mã của riêng bạn.

Bạn cũng có thể sử dụng "bước" cho những phương thức mà bạn biết được tích hợp - tất nhiên là có nguy cơ phải vượt qua các phương pháp bạn muốn bước vào.

Đề xuất của tôi là bạn phải chắc chắn đặt các điểm ngắt tại mỗi dòng nơi bạn muốn kiểm tra trạng thái của ứng dụng - theo cách đó bạn chỉ có thể sử dụng nút phát (F5).

5

Lý do xảy ra: bạn đang sử dụng các đối tượng từ Thư viện mẫu chuẩn. Một số câu lệnh của bạn rõ ràng hoặc ngầm gọi các phương thức của các lớp STL này. Bạn đang bước vào các phương pháp này bằng trình gỡ lỗi của mình.

Có hai cách để sửa lỗi này:

  • Nếu bạn biết rằng bạn đang ở trên một Statment mà gọi một phương pháp STL, sau đó chọn của debugger "Step Over" (F10) lệnh thay vì nó "Bước vào" (F11) lệnh.

  • Nếu bạn nhầm lẫn vào một trong các phương pháp này, hãy sử dụng lệnh "Step Out" (Shift-F11) của trình gỡ lỗi.

+0

Tôi đang thử kiểm tra những giá trị nào đang được gán cho các biến trong một phần, và tôi dường như đang bước vào các phương thức STL đó ... và tôi quá nhiều người mới bắt đầu hiểu những gì đang diễn ra. –

+0

Là một công việc xung quanh, sử dụng "Step Out" (Shift-F11) nếu bạn nhận được một trong những phương pháp này. Nếu đó là bất kỳ sự an ủi nào, đây là một vấn đề nổi tiếng (nghĩa là không chỉ bạn). – ChrisW

7

Cách tốt nhất để tránh bước vào các phương pháp như vậy là đặt quy tắc NoStepInto trong sổ đăng ký. Hãy xem this blog post để biết chính xác cách thực hiện.

Nếu bạn muốn tránh toàn bộ thư viện chuẩn, chỉ cần thiết lập các nguyên tắc sau:

10 std\:\:.*=NoStepInto 

Đối với Visual Studio 2005 bạn cần phải thêm sự cai trị đến khóa dưới đây

HKLM\Software\Microsoft\VisualStudio\8.0\NativeDE\StepOver

Các vấn đề liên quan