2012-04-29 16 views
9

TL; DR: ¿Se puede limpiar para el desarrollador la información de tipo que se muestra en el depurador de Visual Studio/Intellisense/compilador de salida para los nombres largos de stl?Ruido reducido en la depuración de los tipos stl

C++, Visual Studio

Considere el código:

std::map<int, int> m; 

Considere el tipo información en

  1. La ventana de inspección watch window

  2. Con un ratón sobre en el identificador mouse over

  3. Intellisense rápidas (parámetros de un método, la imagen formateados por razones de brevedad) method parameter

  4. (como # 3) finalización de IntelliSense para un identificador a medida que escribe el nombre intellisense

Cada uno de estos casos está mostrando descripciones de tipo de contenedores STL son mucho lío de detalles con poca frecuencia necesarios.

me he dado cuenta de Visual Studio 2011 está mostrando como stringstd::string (una mejora impresionante), en lugar de std::basic_string<char, std::char_traits<char>, std::allocator<char>> - pero esto no ocurre para otros tipos de STL que he probado.

Sé por qué está mostrando esa información, sé que la información es correcta, y críticamente importante en algunos casos. Es simplemente mi opinión de que la mayoría de las veces, al desarrollador no le importaría menos y map<int, int> sería suficiente. ¿Alguna forma de formatear o configurar la salida para reducir el ruido?

+0

Además de estar lejos de un largo nombre de tipo, es uno de los problemas fundamentales de la depuración y errores de C++. No hay nada que pueda omitir sin ocultar información esencial. – pmr

+2

Bonito esquema de color! – Puppy

+0

@pmr Acepto que es información esencial, pero me está diciendo que no sabe (a menos que algunos hayan pirateado los nombres) que 'std :: map ' IS 'std :: map , std :: allocator >> '? ¿Tiene que ver eso cada vez porque lo olvidó o no está seguro? Esta no es información esencial que debe ver CADA VEZ. Ese es mi punto. – payo

Respuesta

1

La herramienta que está buscando STLFilt (http://www.bdsoft.com/tools/stlfilt.html).

Cortesía: http: //yosefk.com/c++fqa/templates.html#fqa-35.17

A pesar de las advertencias crípticas/errores pueden ser engorroso para decodificar para un principiante, le sugeriría a acostumbrarse, si quieres ser un profesional.

+0

Puedo leer la salida stl críptica bien (he estado escribiendo C++ profesionalmente durante muchos años), es solo una pérdida de tiempo leerlo. Verificare su sugerencia, gracias. – payo

+0

stlfilt será lo suficientemente bueno, gracias por la sugerencia :) – payo

Cuestiones relacionadas