2011-09-14 35 views
12

Visual Studio hiển thị các phần tử của một vectơ hoặc các ký tự của một chuỗi, trong C++ như thế nào? Có cách nào cho tôi để làm cho nó hiển thị các lớp học của riêng tôi một cách tùy chỉnh?Trình hiển thị trình gỡ rối Visual C++?

+0

Xem thêm [Boost 1.54 trình hiển thị đa điểm] (http://www.boost.org/doc/libs/1_54_0/libs/multiprecision/doc/html/boost_multiprecision/ tut/misc/visualizers.html). Nó thêm các mục vào 'autoexp.dat'. – jww

Trả lời

13

http://msdn.microsoft.com/en-us/library/zf0e8s14(v=VS.100).aspx

Đối với mã nguồn gốc, bạn có thể thêm mở rộng kiểu dữ liệu tùy chỉnh để các tập tin autoexp.dat, mà nằm trong Visual Studio 10.0 \ Common7 \ Packages \ thư mục Debugger Program Files \ Microsoft . Hướng dẫn về cách để viết quy tắc tự động được đặt trong chính tệp đó.

Đối với lớp này:

template<class T> 
struct auto_array { 
    T* data; 
    int Len; 
}; 

các autoexp.data có thể trông giống như:

auto_array<*> { 
    children 
    (
     #array 
     (
      expr :  $e.Data[$i], 
      size :  $e.Len 
     ) 
    ) 
    preview 
    (
     #(
      "[", $e.Len , "](", 
      #array 
      (
       expr : $e.Data[$i], 
       size : $e.Len 
      ), 
      ")" 
     ) 
    ) 
} 

KindDragon thông tin cho rằng Visual Studio 2012 sử dụng một định dạng tập tin mới: natvis

+0

Ooh thú vị! Dường như khá dễ dàng, cảm ơn rất nhiều! :) – Mehrdad

+6

Visual Studio 2012 sử dụng định dạng tệp mới natvis http://blogs.msdn.com/b/vcblog/archive/2012/07/12/10329460.aspx – KindDragon

3

Bạn có thể thêm trình hiển thị cho các loại C++ tùy chỉnh vào tệp autoexp.dat. Định dạng được sử dụng trong tệp và thay đổi vị trí từ phiên bản sang phiên bản của Visual Studio nhưng nếu bạn sử dụng Google cho autoexp.dat, bạn sẽ tìm thấy một số ví dụ về cách tùy chỉnh nó.

+0

Tuyệt vời, cảm ơn! +1 – Mehrdad

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