Visual Studio de funcionalidad extendida AddressSanitizer (VCAsan)

Las VCAsan*.lib bibliotecas implementan características extendidas del IDE del depurador en Visual Studio. Estas características permiten al IDE mostrar errores addressSanitizer en sesiones de depuración activas o sin conexión guardando un archivo de volcado de memoria con metadatos. La biblioteca se vincula cada vez que el compilador de MSVC addressSanitizer.

Inventario de bibliotecas de VCAsan

Opción runtime Biblioteca de vínculos VCAsan
/MT libvcasan.lib
/MD vcasan.lib
/MTd libvcasand.lib
/MDd vcasand.lib

Características de la biblioteca VCAsan

Ventana de informe de errores Rich AddressSanitizer en Visual Studio IDE

La biblioteca VCAsan registra una devolución de llamada en el tiempo de ejecución addressSanitizer mediante la función de interfaz __asan_set_error_report_callback . Si se genera un informe AddressSanitizer, esta devolución de llamada se usa para producir una excepción detectada por Visual Studio. Visual Studio usa los datos de excepción para generar el mensaje que se muestra al usuario en el IDE.

Nota

La biblioteca VCAsan registra una función de devolución de llamada en el tiempo de ejecución addressSanitizer. Si el código llama a esta función de registro una segunda vez, sobrescribe el registro de devolución de llamada de la biblioteca VCAsan. Esto da lugar a la pérdida de todos los Visual Studio integración del IDE. Volverá a la experiencia de usuario del IDE predeterminada. También es posible que se pierda la llamada de un usuario que registra su devolución de llamada. Si encuentra algún problema, cree un error.

Guardar errores addressSanitizer en un nuevo tipo de archivo de volcado de memoria

Al vincular la biblioteca VCAsan al archivo ejecutable, los usuarios pueden habilitarla para generar un volcado de memoria en tiempo de ejecución. A continuación, el tiempo de ejecución addressSanitizer genera un archivo de volcado cuando se produce un error diagnóstico. Para habilitar esta característica, el usuario establece la ASAN_SAVE_DUMPS variable de entorno mediante un comando como este:

set ASAN_SAVE_DUMPS=MyFileName.dmp

El archivo debe tener un sufijo .dmp para seguir las convenciones Visual Studio IDE.

Esto es lo que sucede cuando se especifica un archivo de volcado para : si el tiempo de ejecución addressSanitizer detecta un error, guarda un archivo de volcado de memoria que tiene los ASAN_SAVE_DUMPS metadatos asociados al error. El depurador de Visual Studio versión 16.9 y posteriores puede analizar los metadatos guardados en el archivo de volcado. Puede establecer por prueba, almacenar estos artefactos binarios y, a continuación, verlos en el IDE con la ASAN_SAVE_DUMPS indexación de origen adecuada.

Vea también

Información general de AddressSanitizer
Problemas conocidos de AddressSanitizer
Referencia de lenguaje y compilación de AddressSanitizer
Referencia del entorno de ejecución de AddressSanitizer
Bytes paralelos de AddressSanitizer
Nube o pruebas distribuidas de AddressSanitizer
Ejemplos de errores de AddressSanitizer