2010-11-19 39 views
5

Tôi đính kèm trình gỡ rối bằng cách chuyển '-d' làm tham số dòng lệnh cho ứng dụng bảng điều khiển của tôi. Điều đó khiến mã sau được gọi;C# - Cách tiếp tục sau khi không đính kèm trình gỡ lỗi - System.Diagnostics.Debugger.Launch()

bool attachedDebugger = false; 
try 
{ 
    attachedDebugger = System.Diagnostics.Debugger.Launch(); 
} 
catch (Exception) { } 
finally 
{ 
    Console.WriteLine(attachedDebugger ? "Debugger Attached" : "Failed to attach debugger"); 
} 

Sau khi cửa sổ Visual Studio 2010 JIT bật lên Đôi khi tôi thay đổi quyết định và không muốn gỡ lỗi, vì vậy tôi loại bỏ hộp thoại. Nếu tôi không đính kèm một ứng dụng thì Ứng dụng sẽ thoát ngay lập tức mà không cần bất cứ điều gì được ghi vào bảng điều khiển.

Tôi biết rằng đây là một trường hợp sử dụng cạnh, tôi chỉ cần xóa '-d' khỏi dòng lệnh nếu tôi không muốn gỡ lỗi. Lý do cho câu hỏi của tôi là tôi muốn hiểu điều gì đang xảy ra.

Tôi nghĩ rằng khối cuối cùng là luôn gọi được gọi, hơn nữa tôi mong đợi đơn đăng ký của mình tiếp tục nếu chúng tôi không đính kèm trình gỡ lỗi.

  • Tại sao không có gì được in trên bảng điều khiển nếu tôi từ chối đính kèm trình gỡ rối?
  • Debugger.Launch() gọi System.Exit khi không đính kèm?

EDIT Cảm ơn @ Moo-Juice bây giờ tôi biết rằng một giá trị trả về của false ngụ ý một debugger đã được gắn liền nhưng các câu hỏi trên vẫn chưa được giải quyết.

+0

Giá trị boolean trả về là 'false' nếu trình gỡ lỗi * đã được đính kèm *. –

Trả lời

0

Bạn có chắc chắn rằng khối finally{} không được thực thi?

Bảng điều khiển có thể ngừng hoạt động nhanh như vậy-trông giống như ngay lập tức không?

+0

Chạy với ctrl + F5 nên ngăn chặn điều đó – Kell

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