2011-07-12 45 views
100

Có cách nào dễ dàng để thiết lập các điểm ngắt có điều kiện trong Visual Studio không?Làm thế nào để thiết lập các điểm ngắt có điều kiện trong Visual Studio?

Nếu tôi muốn đạt điểm ngắt chỉ khi giá trị của biến trở thành thứ gì đó, tôi có thể làm như thế nào?

+11

Lưu ý rằng Express phiên bản không có chức năng này. –

+0

Tôi đang sử dụng Express 2015 và có khả năng cho điểm ngắt có điều kiện –

Trả lời

129

Đặt điểm ngắt như bình thường. Nhấp chuột phải vào nó. Nhấp vào Điều kiện.

+1

Trong VS 2015, bạn cần di chuột qua điểm ngắt và nhấp vào biểu tượng bánh răng để đặt điều kiện –

9
  1. Set breakpoint trên dòng
  2. Clik chuột phải vào bóng RED
  3. Chọn conditioal breakpoint
  4. điều kiện cài đặt
5

Tạo một breakpoint như bình thường, kích chuột phải vào dấu chấm màu đỏ và chọn "điều kiện".

0

Tạo điểm ngắt chức năng có điều kiện

1) Trong cửa sổ Điểm ngắt, bấm Mới để tạo điểm ngắt mới.

2) Trên tab chức năng, nhập đảo ngược cho hàm. Loại 1 cho dòng, loại 1 cho ký tự, sau đó đặt ngôn ngữ thành cơ bản.

3) Nhấp vào Điều kiện và đảm bảo rằng hộp kiểm Điều kiện được chọn. Gõ instr.length> 0 cho Điều kiện, đảm bảo rằng tùy chọn đúng là được chọn, sau đó bấm OK.

4) Trong hộp thoại Điểm ngắt mới, bấm OK.

5) Trên menu Gỡ lỗi, hãy nhấp vào Bắt đầu.

4
  1. Đặt một breakpoint như thường lệ
  2. Nhấp chuột phải vào breakpoint và chọn Điều kiện
  3. Bạn sẽ thấy một hộp thoại nói rằng "Breakpoint Condition"
  4. Đặt một điều kiện trong lĩnh vực này ví dụ "I == 5"

Các breakpoint sẽ chỉ nhận được nhấn khi tôi là 5.

1

Đặt breakpoint như bạn làm bình thường, kích chuột phải vào điểm break và chọn condion tùy chọn và thiết lập tình trạng của bạn.

5
  1. Đặt điểm ngắt như bình thường.
  2. Nhấp chuột phải vào điểm đánh dấu breakpoint
  3. Nhấp vào "Điều kiện ..."
  4. Viết một điều kiện, bạn có thể sử dụng tên biến
  5. Chọn một trong hai 'là đúng' hoặc 'đã thay đổi'
28

Visual Studio cung cấp nhiều lựa chọn cho breakpoint có điều kiện:

Để đặt bất kỳ các bạn

  1. Đặt một điểm break
  2. Right Click lên điểm break, và trong popup menu bạn chọn một lựa chọn ion mà dãy phòng bạn.

Các tùy chọn này như sau:

  • Bạn có thể đặt một điều kiện, dựa tắt của một biểu thức mã mà bạn cung cấp (chọn Điều kiện từ popup menu). Ví dụ, bạn có thể chỉ định rằng foo == 8 hoặc một số biểu thức khác.
  • Bạn có thể kích hoạt điểm ngắt sau khi đã bị trúng một số lần nhất định. (chọn Lượt truy cập từ trình đơn bật lên). Đây là một tùy chọn thú vị để chơi với vì bạn thực sự không bị giới hạn phá vỡ một số lần truy cập nhất định, nhưng bạn cũng có tùy chọn cho một vài kịch bản khác. Tôi sẽ để nó cho bạn để khám phá những khả năng.
  • Bạn có thể thiết lập bộ lọc trên Process ID, sợi ID, và tên máy (chọn Lọc từ popup menu)
3

Mở Visual Studio 6.0

Alt + F9! !!

+1

-1) Điều này không hoạt động trong VS 2012 2) Câu hỏi này đã có rất nhiều câu trả lời (tốt hơn) và 3) những người trên trái đất quan tâm đến VS 6.0 (phát hành vào năm 1998)? 4) Ngay cả khi ai đó quan tâm đến VS 6, câu hỏi được gắn thẻ .Net không hỗ trợ cho đến phiên bản tiếp theo của VS (Visual Studio .Net) –

+3

Vâng, các câu trả lời khác không hoạt động trên VS 6.0. Vì vậy, tôi đã đăng một giải pháp. – Vorac

36

Khi bạn đang sử dụng Express phiên bản bạn có thể thử này:

#if DEBUG 
    if(fooVariable == true) 
     System.Diagnostics.Debugger.Break(); 
#endif 

lệnh if đảm bảo rằng trong phiên bản build breakepoint sẽ không có mặt.

+1

Hoạt động ở phiên bản chuyên nghiệp, quá –

+3

Điều này có lợi thế về hiệu suất/tiết kiệm thời gian tuyệt vời. Tôi đã lặp đi lặp lại thông qua mọi tiềm năng int 'id' trong một chương trình của tôi (chỉ khoảng 3,5 triệu đồng), mà chỉ mất một vài giây. Tôi đã cố gắng sử dụng breakpoint có điều kiện nhưng vì nó không nằm trong nhánh có điều kiện, nó làm chậm tốc độ thực thi đến điểm mà sau vài phút tôi sẽ kết thúc phiên gỡ rối. Sử dụng điểm ngắt biên dịch đã làm cho nó tức thời. –

14

Chỉ cần một cách khác để làm việc đó, (hoặc nếu bạn đang sử dụng nhanh) thêm điều kiện trong mã:

if(yourCondition) 
{ 
    System.Diagnostics.Debugger.Break(); 
} 
3

Viết điều kiện thực tế có thể là một phần khó khăn, vì vậy tôi có xu hướng

  1. Đặt một thường xuyên breakpoint
  2. Run mã cho đến khi breakpoint là hit cho lần đầu tiên
  3. Sử dụng Cửa sổ ngay lập tức (Gỡ lỗi> Windows> Ngay lập tức) để kiểm tra biểu thức của bạn.
  4. Nhấp chuột phải vào điểm ngắt, nhấp vào Điều kiện và dán vào biểu tượng của bạn.

Ưu điểm của việc sử dụng các cửa sổ ngay

  • Nó có IntelliSense
  • Bạn có thể chắc chắn rằng biến trong biểu thức là trong phạm vi khi biểu thức được đánh giá
  • Bạn có thể chắc chắn biểu thức của mình trả về đúng hoặc sai

Ví dụ này phá vỡ khi mã là đề cập đến một bảng với tên "Thiết lập"

table.GetTableName().Contains("Setting") 
Các vấn đề liên quan