2010-08-11 69 views
5

Thông thường khi sử dụng các điểm ngắt trong Visual Studio (2008 trong ví dụ này), tôi chỉ thấy một danh sách phẳng. Đôi khi, mặc dù, tôi nhận được một cái nhìn cây cho mỗi điểm ngắt, như hình dưới đây (có 26 nút con của nút mở rộng). Tất cả các nút cây tham chiếu đến cùng một dòng mã và tất cả các cột tùy chọn hiển thị cùng một dữ liệu cho mỗi nút. Tôi đoán rằng họ có thể làm với chủ đề, nhưng việc sử dụng chúng là gì và chúng thực sự hiển thị những gì? Và nếu chúng là của một số sử dụng, làm thế nào bạn có nghĩa vụ phải phân biệt giữa chúng?Cửa sổ Visual Studio Breakpoints: TreeView hiển thị những gì?

Breakpoints window http://www.freeimagehosting.net/uploads/2244242173.png

+0

Nó thường là nhiều phiên âm của cùng một mã - tôi sẽ thường nói khi bạn có một lớp cơ sở chung, nhưng tôi không thể tự làm việc đó bây giờ. Hoặc ít nhất đó là lời giải thích khi tôi lập trình với C++ và ATL. – Rup

Trả lời

4

Trong trường hợp của tôi, nó có vẻ liên quan đến AppDomains trong quá trình này đang được gỡ rối. Nếu tôi đính kèm WinDbg vào quá trình, tải SOS.dll và chạy !DumpDomain, tôi có thể thấy 26 AppDomains, tương ứng với 26 nút cây trong câu hỏi. Nó sẽ là tốt đẹp nếu có một cột trong cửa sổ Breakpoints mà sẽ phân biệt giữa những điều này!

3

Đây được gọi là Điểm dừng cho trẻ em, được ghi lại thưa thớt (1, 2) và thường khá là lỗi.

Theo kinh nghiệm, cho mã gốc breakpoint con được hình thành:

  1. Đối với chức năng inlined, khởi tạo nhiều lần,
  2. Đối với chức năng mẫu, khởi tạo nhiều lần,
  3. Trong thư viện tĩnh được liên kết chống lại nhiều Các tệp DLL trong quá trình gỡ lỗi [es],
  4. Bất cứ khi nào công cụ gỡ lỗi cảm thấy buồn chán. Nghiêm túc, hầu hết trong số họ có vẻ hoàn toàn không có thật.
Các vấn đề liên quan