visual studio que punto puede proceso ningun modo interrupción interrupcion genero fuente establecer encuentra diferente desde depurar como codigo asociar archivo aplicacion actualmente activará c++ pointers visual-studio-2015 operator-keyword

c++ - que - pasa el mouse para ver un campo después del operador->() en Visual Studio mientras se depura



la aplicacion se encuentra en modo de interrupcion visual studio 2017 (2)

Tuve una clase pequeña:

class A{ public:int aField; }

A continuación, mientras estoy depurando, si aField mouse alrededor de un aField en a->aField , Visual Studio mostrará el valor del campo muy bien (como un pequeño reloj).

A* a=new A(); a->aField=1234; //^ hover here

Luego actualicé el código para anular operator-> : -

class APtr{ //my custom smart pointer A* ptr; A* operator->(){ return ptr; } } APtr a; ..... a->aField=1234; //^ hover here

Ya no aparece pop-up (Hay una ventana emergente para a , pero no para un aField )
¿Cómo hacer aparecer el lindo popup?

Editar (razón de Bounty): "user1610015" ha proporcionado una solución factible, pero creo que podría haber una solución más conveniente (solo un poco puede ayudar). Una nueva solución incluso puede sugerirme a algunos complementos u otros IDEs.

Editar 2:
Aquí hay un ejemplo de la linda ventana emergente que quiero.
No funciona para el campo después del operator-> .


¡Ese es exactamente el caso para los visualizadores natvis! Afortunadamente, está usando VS2015, donde son totalmente compatibles.

Para tu ejemplo

class APtr { public: APtr(A* a_Pointer) { ptr = a_Pointer; } A* operator->() { return ptr; } private: A* ptr; };

Tendrá que crear un archivo con extensión .natvis , por ejemplo APtr.natvis , con el siguiente contenido:

<?xml version="1.0" encoding="utf-8"?> <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010"> <Type Name="APtr"> <SmartPointer Usage="Minimal">ptr</SmartPointer> </Type> </AutoVisualizer>

¡Entonces simplemente agrega este archivo a su proyecto, como cualquier otro archivo .cpp , y comienza a .cpp !

Para componer algo más complicado, recomiendo encontrar archivos *.natvis en C:/Program Files (x86)/Microsoft Visual Studio 14.0 y usarlos como ejemplo.


El depurador no reconoce el operador->, pero puede obtener la misma información pasando el puntero sobre la variable de puntero inteligente y luego con la flecha hacia la derecha en la información sobre herramientas: