Điều này tất nhiên không phải do biểu tượng _DEBUG xác định hoặc biên dịch mã trong cấu hình gỡ lỗi. Mã gỡ lỗi bổ sung chạy hay không trình gỡ lỗi được đính kèm vào chương trình.
Trình gỡ lỗi không bình thường ảnh hưởng đến việc thực thi mã, nó vẫn nằm ngoài đường dẫn bằng cách gọi WaitForDebugEvent. Mà khối nó, cho đến khi hệ điều hành nói với nó rằng một cái gì đó đáng chú ý xảy ra. Điều đó có thể kích hoạt một loạt các mã trong trình gỡ rối có thể làm chậm chương trình của bạn. Bạn có thể xem các sự kiện được liệt kê trong tài liệu cấu trúc DEBUG_EVENT.
chú thích cho họ một chút ngoài tài liệu: các bước gỡ rối trong và có thể làm chậm chương trình của bạn khi:
Các tải chương trình hoặc unloads một DLL. Rất nhiều thứ xảy ra trong quá trình tải, trình gỡ rối đi săn tìm một tệp biểu tượng gỡ lỗi (.pdb). Nó có thể liên lạc với một máy chủ biểu tượng để tải xuống. Bất kỳ điểm ngắt nào được đặt trong mã nguồn DLL sẽ được kích hoạt. Điều này có thể khá chậm, nhưng hiệu quả là tạm thời và thường chỉ làm chậm quá trình khởi động. Bạn có thể thấy thông báo tải/dỡ trong cửa sổ Output.
Chương trình tăng ngoại lệ. Điều này kích hoạt trình gỡ lỗi tại thời điểm ngoại lệ được nêu ra, "thông báo cơ hội đầu tiên". Điều này có thể rất hữu ích, bạn có thể sử dụng hộp kiểm Debug + Exception, Thrown để làm cho trình gỡ lỗi dừng lại khi ngoại lệ được nâng lên. Bạn có thể thấy thông báo thông báo trong cửa sổ Output. Mã số này làm làm chậm và bắt các ngoại lệ rất nhiều và có khả năng là nguồn gốc của sự chậm lại của bạn. Không bao giờ sử dụng ngoại lệ cho điều khiển luồng.
Chủ đề bắt đầu chạy hoặc kết thúc. Một lần nữa, một thông báo thông báo được in ra cửa sổ Output. Bạn sẽ phải tạo một số lô hàng lô để làm cho chương trình của bạn chậm lại.
Khi chương trình của bạn sử dụng OutputDebugString() cho mục đích truy tìm. Hiển thị trong cửa sổ Output. Một ứng cử viên tốt cho một chậm lại, sản lượng rơi vào xô bit nếu không có trình sửa lỗi được đính kèm.Bạn không nên gặp bất kỳ sự cố nào khi chẩn đoán điều này là nguyên nhân, tác dụng phụ rõ ràng là nhìn thấy một số lô của thư trong cửa sổ Kết quả.
Khi chương trình truy cập điểm ngắt. Không có nhiều lý do để bị bối rối bởi điều đó. Nhưng bạn có thể thiết lập các điểm ngắt làm chậm chương trình rất nhiều nhưng không gây ra lỗi ngắt. Đặc biệt là Điểm ngắt có điều kiện, Bộ đếm truy cập, Bộ lọc và hoạt động Khi lần truy cập sẽ chậm. Sử dụng Debug + Windows + Breakpoints để xem lại các điểm ngắt được xác định.
Nguồn
2010-07-29 14:09:03
Gỡ lỗi thêm nhiều chi phí cho chương trình. Tại sao bạn giả định mọi thứ sai? – Oded
Gỡ lỗi không được thêm quá nhiều chi phí. Sự khác biệt giữa một trình gỡ rối được đính kèm và không được đính kèm không phải là sự khác biệt chút nào. – plaisthos