2010-02-24 22 views
8

Tôi có một vấn đề nhỏ trong khi gỡ lỗi ứng dụng của mình trong VS 2010 RC khi tôi muốn xem tất cả các phần tử của std :: map container.VS2010 RC - chỉ 100 std :: yếu tố bản đồ trong trình gỡ lỗi

Khi trình gỡ lỗi đạt đến điểm ngắt và tôi muốn kiểm tra giá trị của bản đồ trong thanh tra phần tử (trong cửa sổ 'Địa phương' và trong cửa sổ bật lên sau khi di chuột lên tên biến) và tôi đang cuộn xuống danh sách các yếu tố nó dừng lại trên phần tử 100 và tôi không thể là các phần tử tiếp theo. Bản đồ chứa hơn 200 phần tử (thông số phản đối của bản đồ cho thấy điều này đúng) nhưng tôi không thể xem tất cả chúng trong trình kiểm tra phần tử.

Sự cố xuất hiện ngay cả trong đơn giản nhất std::map<int, int> được lấp đầy với 200 giá trị int.

Có thể đây là vấn đề với cài đặt, nhưng tôi đã thử nhiều kết hợp của chúng và nó vẫn không hoạt động. Có lẽ ai đó có một số ý tưởng làm thế nào để giải quyết điều này.

Cảm ơn bạn trước sự giúp đỡ của bạn.

+0

Tôi đoán đó chỉ là giới hạn của trình gỡ lỗi. Họ có thể chọn để có một số giới hạn trên vì vậy cho ** thực sự ** cấu trúc dữ liệu lớn nó không chỉ treo cho những gì trông giống như mãi mãi. –

+0

Đối với trường hợp cụ thể này, bạn có thể không chỉ gỡ lỗi theo cách cũ và in ra các nội dung bản đồ để stdout hoặc một tập tin? Nó chỉ là một vài dòng mã, và có lẽ sẽ chỉ là một công việc một lần. –

+1

Báo cáo sự cố với Microsoft (https://connect.microsoft.com/) nếu bạn cảm thấy cần giải quyết. – Max

Trả lời

3

Hiển thị thông tin như vậy được đạo diễn bởi tệp autoexp.dat (thường nằm trong "Program Files *" \ "Microsoft Visual Studio *" \ Common7 \ Packages \ Debugger). Có vẻ như Microsoft đã thêm giới hạn mã hoá cứng của 100 phần tử vào toán tử #tree, để tránh làm lạnh Visual Studio trong trường hợp vòng lặp trong cây.

+0

Trên VS 2008, cũng có giới hạn: chuỗi giá trị được giới hạn trong khoảng 400 ký tự, kết thúc bằng ... để cho biết rằng có nhiều giá trị hơn. – plodoc

3

Với VS 2010 SP1 giới hạn này đã được tăng lên thành giá trị mặc định là 2000 mục nhập. Đây cũng có thể được sửa đổi bằng cách thiết lập một khóa registry (tất cả những lời cảnh báo tiêu chuẩn về việc sửa đổi registry áp dụng ở đây):

  • cho x86: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ VisualStudio \ 10.0 \ NativeDE \ VisualizerMaxChildren
  • cho x64: HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ VisualStudio \ 10.0 \ NativeDE \ VisualizerMaxChildren

Scot Brennecke, leo thang Engineer Microsoft VC++ Hỗ trợ

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