10

Tôi đang sử dụng VS2010 Beta 2 để gỡ lỗi một số mã đa luồng. Tình yêu song song ngăn xếp, vvCố định tất cả các chủ đề về điểm ngắt trong VS2010

Tôi có một câu hỏi, mặc dù: Tôi có một breakpoint đặt trong một phương pháp có thể được gọi bởi nhiều chủ đề. Khi tôi nhấn vào điểm ngắt, tôi thực sự muốn giữ tiêu điểm trên sợi đã kích hoạt điểm ngắt đó. Tuy nhiên, khi tôi nhấn "bước", VS thường chuyển sang một chủ đề khác (nói rằng tôi dừng lại trên thread 1, nhưng trong khi đó, thread 2 chạm điểm ngắt của tôi).

Tôi biết rằng tôi có thể cố định thủ công chủ đề trong cửa sổ chuỗi. Có cách nào để làm điều đó tự động - về cơ bản, một khi tôi nhấn một breakpoint, đóng băng tất cả các chủ đề ngoại trừ hiện tại cho đến khi tôi nhấn F-5?

+0

Yea, một sự vội vã như vậy, đặc biệt nếu bạn có nhiều chủ đề song song! Có thể lưu ý threadID như Kragen đã nói và sử dụng "Run to cursor" để tiến tới dòng tiếp theo. Nếu một chuỗi truy cập vào dòng và threadID của nó không phải là một trong những bạn theo dõi tắt sau đó lặp lại "chạy đến con trỏ" cho đến khi bạn nhận được các chủ đề mong muốn. Ít nhất VS sẽ không nhảy qua tất cả các chương trình và bạn tiếp tục mất tập trung. – Llyle

Trả lời

2

Không phải là tôi biết, tuy nhiên bạn có thể vô hiệu hóa điểm ngắt trong khi bạn đang bước qua.

Khi tôi lo lắng về việc gây nhầm lẫn nhiều chủ đề, tôi có xu hướng chỉ giữ cửa sổ luồng mở và ghi chú về id của chuỗi.

2

Nếu bạn tải cửa sổ Threads từ Debug-> Windows-> Threads .. Khi bạn nhấn một điểm break, bạn có thể chọn tất cả các chủ đề và nhấp vào "Freeze Threads", sau đó bạn có thể tiếp tục thread đang hoạt động, chọn nó và chọn "Thaw threads".

Điều này sẽ chỉ cho phép luồng hiện tại thực thi trong trình gỡ lỗi.

11

Tôi vừa phát hành phần mở rộng Visual Studio 2010 thực hiện chính xác những gì bạn đang tìm kiếm. Và hoàn toàn miễn phí :).

Presentation

Visual Studio 2010 Phần mở rộng này thêm hai phím tắt và các nút trên thanh công cụ cho phép các nhà phát triển dễ dàng tập trung vào chủ đề duy nhất trong khi gỡ lỗi các ứng dụng đa luồng.

Nó làm giảm đáng kể sự cần thiết phải tự đi vào cửa sổ Threads để đóng băng/rã đông tất cả các chủ đề nhưng một trong đó cần phải được theo sau, và do đó giúp cải thiện năng suất.

Tính năng

Giới hạn thực hiện hơn nữa để chỉ thread hiện hành. Sẽ đóng băng tất cả các chủ đề khác. Phím tắt: CTRL + T + T hoặc nút Bông tuyết. Chuyển sang chuỗi đơn kế tiếp (dựa trên ID). Sẽ thay đổi chủ đề hiện tại và đóng băng tất cả các chủ đề khác. Phím tắt: CTRL + T + J hoặc nút Tiếp theo.

Hãy khám phá here on the Gallery, trên official page hoặc Codeplex repository.

+0

Tôi sẽ kiểm tra! Cảm ơn! – JMarsch

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