2011-09-06 19 views
10

Tôi tự hỏi liệu tôi có nên gọi if(Debugger.IsAttached) trước khi gọi các chức năng Debug và Debugger khác không?Tôi có nên kiểm tra Debugger.IsAttached trước Debugger.Break hoặc Debug.WriteLine không?

if(Debugger.IsAttached) { Debugger.Break(); } 

vs

Debugger.Break() // Without checking if Debugger is actually attached 
+0

Cách thứ hai hoạt động, dễ dàng để thử bản thân. Cửa sổ trình gỡ rối jit không đặc biệt đẹp và điều này phải tránh trong mã sản xuất vì nó làm hỏng chương trình. –

Trả lời

14

Nó phụ thuộc vào lý do tại sao bạn đang gọi phương thức Break(). Theo số documentation:

Nếu không có trình gỡ rối được đính kèm, người dùng được hỏi có muốn đính kèm trình gỡ lỗi không.

Nếu bạn không muốn làm phiền người dùng hiện không gỡ lỗi, thì trước tiên bạn nên kiểm tra tệp đính kèm. Nếu bạn không quan tâm (hoặc trong thực tế muốn nhắc) thì đừng kiểm tra.

+0

+1 cho bạn. Tôi hoàn toàn hiểu lầm câu hỏi, và bạn đã hiểu đúng. – David

+0

Vì vậy, nó sẽ nhắc người dùng để đính kèm trình gỡ lỗi ngay cả khi chương trình đang chạy trong chế độ phát hành? – flai

+2

@Jaakko Tôi tin điều đó là chính xác. Các trình gỡ rối có thể được gắn vào các chương trình biên dịch phát hành (mặc dù tiện ích của chúng bị giảm, vì chế độ phát hành sẽ không tạo ra các tệp .pdb hoặc 'nop' hữu ích.) – dlev

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