2012-04-29 21 views
9

TL; DR: Thông tin loại có thể hiển thị trong trình gỡ lỗi/intellisense/trình biên dịch đầu ra cho tên loại dài từ stl được làm sạch cho nhà phát triển không?Giảm nhiễu trong chế độ xem gỡ lỗi của các loại stl

C++, Visual Studio

xem xét mã:

std::map<int, int> m; 

Xem xét loại thông tin trong

  1. Cửa sổ đồng hồ watch window

  2. Với chuột lên trên định danh mouse over

  3. Intellisense prompt (tham số cho một phương pháp, hình ảnh định dạng cho ngắn gọn) method parameter

  4. (như # 3) hoàn IntelliSense cho một số nhận dạng khi bạn gõ tên intellisense

Mỗi trường hợp được cho thấy giới thiệu loại container STL là một mớ hỗn độn dài của chi tiết thường xuyên cần thiết.

Tôi đã chú ý đến studio hình ảnh 2011 đang hiển thị stringstd::string (cải tiến tuyệt vời) thay vì std::basic_string<char, std::char_traits<char>, std::allocator<char>> - nhưng điều này không xảy ra đối với các loại stl khác mà tôi đã thử nghiệm.

Tôi biết lý do tại sao nó hiển thị thông tin đó, tôi biết thông tin là chính xác và cực kỳ quan trọng trong một số trường hợp. Nó chỉ đơn giản là ý kiến ​​của tôi rằng hầu hết thời gian, các nhà phát triển không thể quan tâm ít hơn và map<int, int> sẽ là đủ. Bất kỳ cách nào để định dạng hoặc cấu hình đầu ra để giảm tiếng ồn?

+0

Bên cạnh đó là xa một tên loại dài, nó là một trong những vấn đề cơ bản của lỗi C++ và gỡ lỗi. Không có gì bạn có thể bỏ qua mà không giấu thông tin cần thiết. – pmr

+2

Màu sắc đẹp mắt! – Puppy

+0

@pmr Tôi đồng ý đó là thông tin cần thiết - nhưng bạn có nói với tôi rằng bạn không biết điều đó (trừ khi một số đã tấn công tên) mà 'std :: map ' IS 'std :: map , std :: allocator >> '? Bạn có phải thấy rằng mọi lúc bởi vì bạn quên hoặc không chắc chắn? Đây không phải là thông tin cần thiết mà bạn phải xem MỌI THỜI GIAN. Đó là quan điểm của tôi. – payo

Trả lời

1

Công cụ bạn đang tìm kiếm STLFilt (http://www.bdsoft.com/tools/stlfilt.html).

Courtesy: http: //yosefk.com/c++fqa/templates.html#fqa-35.17

Mặc dù những lời cảnh báo khó hiểu/lỗi có thể cồng kềnh để giải mã cho người mới bắt đầu, tôi sẽ đề nghị bạn làm quen với nó, nếu bạn muốn trở thành một người chuyên nghiệp.

+0

Tôi có thể đọc đầu ra stl khó hiểu tốt (được viết C++ chuyên nghiệp trong nhiều năm nay), nó chỉ lãng phí thời gian để đọc qua nó. Tôi sẽ kiểm tra đề nghị của bạn, cảm ơn bạn. – payo

+0

stlfilt sẽ đủ tốt, cảm ơn đề xuất :) – payo

0

Bạn có thể muốn xem autoexp.dat vì nó kiểm soát cách hiển thị dữ liệu và giá trị trong trình gỡ lỗi. How to Write Native C++ Debugger Visualizers in Visual Studio for Complicated Types Introduction

+0

không phải là chỉ cho các giá trị và không phải là loại? Tôi không nói về giá trị, nhưng loại. Tôi sẽ thêm một ảnh chụp màn hình. – payo

+0

cũng có, hướng dẫn đó cho thấy cách Loại không bao giờ được làm sạch – payo

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