Me encontré con una excepción y mirando las variables en la ventana del reloj, estoy viendo algunos signos de interrogación (???). ¿Esto significa que está apuntando a una dirección no válida?¿Qué significan los signos de interrogación (???) en la ventana de visualización de Visual Studio?
¿Qué significan los signos de interrogación (???) en la ventana de visualización de Visual Studio?
Respuesta
Significa que el depurador no puede determinar su valor.
Por ejemplo, verá esto bastante si su código implica HWND
s. Si se mira a través de los archivos de encabezado de Windows, se define como esto a través de una macro:
struct HWND__{int unused;}; typedef struct HWND__ *HWND;
lo tanto, el tipo de HWND
es realmente el "puntero a un HWND__
" tipo. Sin embargo, los valores HWND
que obtiene de funciones como CreateWindow()
no son en realidad indicadores de nada.
Pero el depurador tratará de averiguar el valor del miembro unused
en la estructura, pero no puede hacerlo:
También verá este tipo de errores cuando la variable visto tiene información incorrecta o faltante.
¿Es este un proyecto de estilo C++?
El depurador normalmente utiliza el "???" cadena cuando es capaz de evaluar una expresión pero no puede obtener ningún tipo de información para una parte específica de la pantalla. Esto ocurre típicamente debido a símbolos PDB faltantes o incorrectos.
Es probable que esto suceda si la expresión accede a datos dañados (tablas virtuales anuladas o RTTI). Pero no sé 100% si eso es cierto.
Normalmente significa que el puntero o la referencia apuntan a la memoria inaccesible, y por lo tanto no puede obtener el valor para presentar. Por ejemplo, si tiene un puntero que se supone que apunta a un Foo, el depurador normalmente interpretará los bits que apunta el puntero como Foo, independientemente de si el puntero es válido o no. Pero en algunos casos, un puntero salvaje podría apuntar a una ubicación que ni siquiera está asignada en el espacio de proceso. En ese caso, el depurador no puede obtener los bits.
- 1. ¿Qué significan los colores de margen de Visual Studio?
- 2. ¿Qué significan estos signos en Vim?
- 3. ¿Qué variables especiales están disponibles en la ventana de visualización de Visual Studio en .NET?
- 4. Visualización de ventana de depuración de Visual C++ de CR/LF en Visual Studio 2008
- 5. Parámetros SQL y signos de interrogación
- 6. Habilitar la visualización de números de línea en Visual Studio
- 7. tipos de ventana de Chrome. ¿Qué significan?
- 8. Visual Studio ventana de comandos
- 9. Depurador de Visual Studio - Visualización de valores enteros en Hex
- 10. ¿Qué significan los signos de exclamación en el archivo yml de traducción Rails i18N?
- 11. ¿Qué significa -1. # IND000 en la ventana de depuración de Visual Studio?
- 12. hebreo aparece como signos de interrogación en netbeans
- 13. En GHCi, ¿por qué el tipo de la función arrow `: kind (->)` incluye signos de interrogación `(->) :: ?? ->? -> * `?
- 14. Ventana de edición dividida en Visual Studio
- 15. ¿Por qué IE8 muestra signos de interrogación en lugar de viñetas en el campo Contraseña HTML?
- 16. ¿Qué significan los colores en la ventana de registro de TortoiseGit
- 17. Solo los signos de interrogación en traza inversa informados por gdb en ARM
- 18. Valor devuelto en la ventana Autos de Visual Studio
- 19. ¿Qué significan los signos más y menos en el objetivo C junto a un método?
- 20. #if, #else, #end if ... ¿qué significan los signos hash en VBA?
- 21. guardar datos de la ventana de memoria de Visual Studio
- 22. ¿Cómo reemplazar signos de interrogación dentro de una cadena con los valores de una matriz?
- 23. ¿Qué significan los iconos de flecha en Subclipse?
- 24. Los raíles muestran signos de interrogación (????) para mis datos de entrada utf8
- 25. ¿Qué significan las tiras rojas y los signos "*" en Aptana 3?
- 26. Visual Studio 2010 Express. Escribir en la ventana de salida
- 27. ¿Aplansar miembros heredados en la ventana Inspección de Visual Studio?
- 28. Los caracteres Unicode se convierten en signos de interrogación después de insertarlos en la base de datos
- 29. signo de interrogación en JavaScript
- 30. Ventana Comando vs. Inmediato en Visual Studio
No es cierto. Los ??? la cadena de error está relacionada con la información de tipo incorrecto. Si no puede evaluar la expresión, proporcionará un mensaje de error más útil. – JaredPar
@JaredPar: Mi redacción es un poco inactiva. Lo que quise decir es que el depurador no puede entender su valor. –
Gotcha. La versión editada aclaraba la confusión. Pero sí muestra el ??? para tipos malos y malos valores. – JaredPar