2010-03-04 25 views
15

Acabo de enterarme de $ exception en la ventana de visualización VS.NET para .NET ayer. Esto muestra la excepción actual que se ha lanzado y es un gran ahorro de tiempo al no tener que encontrar el pequeño icono de signo de exclamación y pasar el cursor sobre él.¿Qué variables especiales están disponibles en la ventana de visualización de Visual Studio en .NET?

¿Qué otras variables especiales hay en la ventana del reloj?

(Nota: esta pregunta es sobre .NET, C++ no.)

Respuesta

8

Apoyado Pseudovariables en Visual Studio .NET para depurar:

  • $ excepción: muestra información sobre la última excepción. Si no se ha producido ninguna excepción, la evaluación de $exception muestra un mensaje de error. En Visual C# solamente, cuando el Asistente de excepciones está deshabilitado, $exception se agrega automáticamente a la ventana Locals cuando ocurre una excepción.
  • $ usuario: muestra una estructura con información de cuenta para la cuenta que ejecuta la aplicación. Por razones de seguridad, la información de contraseña no se muestra.

Lo siguiente sólo se aplica a Visual Basic:

  • $ borrar o eliminar $$: Borra una variable implícita que se creó en la inmediata ventana . La sintaxis es $delete,variable o $$delete,variable.
  • $ objectids o $ listobjectids: Muestra todos los Object IDs como hijos de la expresión especificada. La sintaxis es $objectid,expresión o $listobjectids,expresión.
  • $ N #: Muestra objeto con ID de objeto igual a N .
  • $ dynamic: muestra el nodo Dynamic View especial para un objeto que implementa el IDynamicMetaObjectProvider. Interfaz. La sintaxis es $dynamic,objeto. Esta característica solo se aplica al código que usa .NET Framework versión 4. Consulte Dynamic View.
8

Si hace clic derecho cualquier variable en la ventana Inspección, puede crear un ID de objeto . Esto le dará un número, por ej. el primer ID de objeto será 1 #.

El Objeto ID representa la instancia específica. La instancia se puede ver en la ventana Inspección al igual que una variable regular, pero puede seguir mirando la instancia incluso cuando la referencia local esté fuera del alcance. Cuando finalmente se recolecte la basura, perderás el acceso a ella.

2

El uso de "@err" mostrará el valor de GetLastError() y "@ err, hr" muestra el mensaje de error.

+1

Esto es de C++ land (junto con @eax, @clk, y así sucesivamente), pero esperaba obtener más del mundo .NET. – scobi

2

La pseudovariable de $ usuario es la única documentada. En VS2010, el depurador VB.NET adquiere some new ones.

+0

La $ dynamic que VB soporta también funciona en C# a través de ", dynamic". Sin embargo, no estoy seguro del resto. http://msdn.microsoft.com/en-us/library/dd998308%28v=VS.100%29.aspx – scobi

+0

Vi algo más en ese artículo de MSDN. Admite la vista dinámica automática de __ComObject. Eso es genial. –

2

@ERR ; valor de error pasado, el mismo valor devuelto por la función API GetLastError()

@TIB ; Thread bloque de información para el subproceso actual

@CLK ; reloj Undocumented registro; utilizable sólo en la ventana Inspección

@EAX, @EBX, @ECX, @EDX, @ESI, @EDI, @EIP, @ESP, @EBP, @EFL ; CPU Intel registra

@CS , @DS, @ES, @SS, @FS, @GS ; segmento CPU Intel registra

@ ST0, @ ST1, ST2 @, @ ST3, ST4 @, @ ST5, ST6 @, @ ST7 ; Intel CPU de punto flotante registra

Cuestiones relacionadas