2009-06-09 51 views
196

Có thể xem một mảng trong trình gỡ rối Visual Studio không? QuickWatch chỉ hiển thị phần tử đầu tiên của mảng.Xem mảng trong trình gỡ lỗi Visual Studio?

+2

http: // support .microsoft.com/kb/198953 – becko

+0

Nếu nó là một CArray, viết mảng.m_pData [pos] hoặc mảng-> m_pData [pos] (tùy thuộc vào trường hợp) trên Cửa sổ Đồng hồ cho phép bạn xem nội dung của mảng tại vị trí Chức vụ! – sergiol

Trả lời

475

Bạn có thể thử mẹo nhỏ gọn này cho C++. Lấy biểu thức cung cấp cho bạn mảng và sau đó nối thêm dấu phẩy và số phần tử bạn muốn xem. Việc mở rộng giá trị đó sẽ hiển thị cho bạn các phần tử 0- (N-1) trong đó N là số bạn thêm sau dấu phẩy.

Ví dụ: nếu pArray là mảng, hãy nhập pArray,10 trong cửa sổ xem.

+8

Tìm kiếm không thể tin được. Tuy nhiên nó chỉ hoạt động với các giá trị ngay lập tức, không cho phép truy cập thành viên số học hoặc năng động. –

+17

Lưu ý rằng bạn cũng có thể sử dụng dàn diễn viên trong giao diện gỡ lỗi. Nếu 'pArray' là kiểu' void * 'bạn có thể gõ' (char *) pArray, 10' sẽ hiển thị nội dung của mảng được hiểu là char. – Machtl

+0

Không thể thực hiện việc này trong Visual Studio 2008 Express. Nếu tôi thêm một biểu thức "a + 1,2" trong cửa sổ xem, lỗi foloowing sẽ xảy ra: "lỗi: + không thể được thực hiện trên 'pArray' và '1'". Bạn đang sử dụng phiên bản VS nào? –

1

Di chuột qua tên mảng, sau đó di chuột qua biểu tượng nhỏ (+) xuất hiện.

+14

Đối với C++, điều này sẽ chỉ hiển thị cho bạn phần tử đầu tiên – JaredPar

13

Bạn đang cố xem một mảng có bộ nhớ được phân bổ động không? Nếu không, bạn có thể xem một mảng cho C++ và C# bằng cách đặt nó trong cửa sổ xem trong trình gỡ rối, với nội dung của nó hiển thị khi bạn mở rộng mảng trên (+) trong cửa sổ xem bằng cách nhấp chuột trái.

Nếu đó là con trỏ đến mảng được phân bổ động, để xem nội dung N của con trỏ, hãy nhập "con trỏ, N" trong cửa sổ xem của trình gỡ lỗi. Lưu ý, N phải là một số nguyên hoặc trình gỡ lỗi sẽ cho bạn một lỗi nói rằng nó không thể truy cập nội dung. Sau đó, nhấp chuột trái vào biểu tượng nhỏ (+) xuất hiện để xem nội dung.

18

Tôi sử dụng trình bổ sung ArrayDebugView cho Visual Studio (http://arraydebugview.sourceforge.net/).

Có vẻ như đó là một dự án đã chết (nhưng tôi vẫn đang tiếp tục) nhưng trình bổ sung vẫn hoạt động tốt cho tôi trong VS2010 cho cả C++ và C#.

Nó có một vài quirks (thứ tự tab, hộp thoại phương thức, không có nút đóng) nhưng khả năng vẽ nội dung của một mảng trong biểu đồ nhiều hơn bù đắp cho nó.

Chỉnh sửa tháng 7 năm 2014: Tôi cuối cùng đã tạo một tiện ích Visual Studio mới để thay thế chức năng của ArrayebugView. Nó có sẵn trên VIsual Studio Gallery, tìm kiếm ArrayPlotter hoặc vào http://visualstudiogallery.msdn.microsoft.com/2fde2c3c-5b83-4d2a-a71e-5fdd83ce6b96?SRC=Home

+0

Trông tuyệt vời nhưng không hỗ trợ VS2013 ?? VSIXInstaller.NoApplicableSKUsException: Phần mở rộng này không thể cài đặt trên bất kỳ sản phẩm hiện đang được cài đặt nào. Các sản phẩm được hỗ trợ: Microsoft.VisualStudio.Pro Phiên bản: [10.0] Phiên bản: [11.0] Phiên bản: [12.0] Phiên bản: [14.0] – Gregory

+2

Nó nên làm! Tôi đã phát triển nó trong VS2013! Bạn đang chạy phiên bản VS2013 (gói dịch vụ/ấn bản) nào? Nếu bạn tìm kiếm ArrayPlotter trong Trình quản lý mở rộng (trong phần Trực tuyến), bạn có thấy nó có sẵn trong đó không? –

+0

Công cụ đẹp, hoạt động tốt cho tôi trong VS2013. –

61

Nếu bạn có một mảng lớn và chỉ muốn xem phần phụ của mảng, bạn có thể nhập vào cửa sổ xem;

ptr+100,10 

để hiển thị danh sách gồm 10 phần tử bắt đầu từ ptr [100]. Lưu ý rằng các bảng con được hiển thị sẽ bắt đầu tại [0], vì vậy bạn sẽ phải nhớ rằng ptr [0] thực sự là ptr [100] và ptr [1] là ptr [101], v.v.

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