2013-03-05 6 views
5

Tôi có một giải pháp, cả khách hàng và máy chủ đang chạy, với nhiều dự án, giao diện người dùng là Silverlight trong giải pháp của tôi. Khi mã đang chạy, tôi đã phá vỡ tất cả và mong đợi dừng trong dòng mã hiện đang chạy. Thay vào đó, tôi nhận được thông báo "Không có nguồn, Không có mã nguồn có sẵn cho vị trí hiện tại". Điều gì có thể là giải pháp cho điều này? Lưu ý rằng nó xảy ra bất cứ khi nào tôi nhấn break tất cả, bất kể phần nào đang được thực hiện. các điểm ngắt tiêu chuẩn dừng lại.Visual Studio ngắt tất cả trong gỡ lỗi

Trả lời

4

Điều này nghe có vẻ như hành vi tiêu chuẩn ... Hãy nhớ rằng đằng sau hậu trường bạn có dlls khung (ntdll.dll/windowsbase.dll/presentationframework.dll vv) thực hiện phép thuật của họ (nghe máy chủ tin nhắn, làm việc với OS vv.) ...

Vì vậy, hầu hết thời gian khi bạn "Break All", bạn có cơ hội rất tốt để rơi vào một trong số họ.
Bạn có thể mở Call Stack cửa sổ và thấy chính xác nơi bạn đang (bạn có thể cần phải nhấp chuột phải và "Show External Code") ... và Đôi khi bạn cũng có thể thấy phương pháp cụ thể của bạn gọi trong đó ...

Đưa điểm ngắt trong mã số của bạn và dừng trong đó thường là phương pháp chính xác để dừng trong các phương pháp có liên quan đến ứng dụng cụ thể của bạn.

+2

Trong một công việc previosu, tôi đã sử dụng "Break All" hầu như hàng ngày để làm những gì OP mong đợi và những gì bạn phải mô tả là hành vi phi tiêu chuẩn. Về cơ bản, bạn có thể khởi tạo chế độ Break All và sau đó, ngay khi bạn tương tác với ứng dụng của mình theo cách khiến cho việc thực thi đi qua mã của bạn (nghĩa là không phải khung công tác chứ không phải một số DLL của bên thứ ba) nó sẽ tạm dừng. Đó là, có hiệu lực, giống như đặt một điểm break trên mỗi dòng của mã riêng của bạn và sau đó bắt đầu trình gỡ lỗi. Bây giờ tôi đang ở một công việc mới và hành vi giống như mô tả OP. Làm cách nào để lấy lại những gì tôi từng có? – bubbleking