Usar símbolos
Para obtener información general sobre los símbolos, incluido el uso de archivos de símbolos y servidores de símbolos, consulte Símbolos.
Nombres y ubicaciones de símbolos
Para buscar la ubicación de un símbolo según su nombre, use GetOffsetByName. Para obtener más información sobre la sintaxis utilizada para especificar nombres de símbolos, vea Sintaxis de símbolos y Coincidencia de símbolos.
Si no se conoce el nombre exacto de un símbolo o varios símbolos tienen el mismo nombre, StartSymbolMatch iniciará una búsqueda de símbolos cuyos nombres coincidan con un patrón determinado. Para obtener más información sobre la sintaxis, consulte Sintaxis de caracteres comodín de cadena.
Para buscar el nombre de un símbolo según su ubicación, use GetNameByOffset. Para buscar los nombres de símbolos en un módulo cerca de una ubicación determinada, use GetNearNamebyOffset.
Nota Siempre que sea posible, califique el símbolo con el nombre del módulo; por ejemplo , mymodule!main. De lo contrario, si el símbolo no existe (por ejemplo, debido a un error tipográfico), el motor tendrá que cargar y buscar los símbolos de cada módulo; esto puede ser un proceso lento, especialmente para la depuración en modo kernel. Si el nombre del símbolo se ha calificado con un nombre de módulo, el motor solo tendrá que buscar los símbolos de ese módulo.
Un símbolo se identifica de forma única mediante la estructura DEBUG_MODULE_AND_ID. Los métodos GetSymbolEntriesByName y GetSymbolEntriesByOffset devuelven esta estructura, que busca símbolos basados en su nombre y ubicación, respectivamente.
El método GetSymbolEntryInformation devuelve una descripción de un símbolo mediante la estructura DEBUG_SYMBOL_ENTRY .
Para buscar el desplazamiento de un campo dentro de una estructura, use GetFieldOffset. Para buscar el nombre de un campo según su índice dentro de una estructura, use GetFieldName. Para buscar el nombre de una constante de enumeración según su valor, use GetConstantName.
El método GetSymbolInformation puede realizar varias solicitudes para obtener información sobre los símbolos.
Opciones de símbolos
Varias opciones controlan cómo se cargan y descargan los símbolos. Para obtener una descripción de estas opciones, vea Establecer opciones de símbolos.
Las opciones de símbolos se pueden activar mediante AddSymbolOptions y desactivarlas mediante RemoveSymbolOptions.
GetSymbolOptions devuelve las opciones de símbolos actuales. Para establecer todas las opciones de símbolo a la vez, use SetSymbolOptions.
Volver a cargar símbolos
Después de cargar los archivos de símbolos, el motor almacena la información de símbolos en una caché interna. Para vaciar esta memoria caché, use Recarga. Estos símbolos deberán cargarse de nuevo ahora o más adelante.
Símbolos sintéticos
Los símbolos sintéticos son una manera de etiquetar una dirección arbitraria para facilitar la referencia. Los símbolos sintéticos se pueden crear en cualquier módulo existente. El método AddSyntheticSymbol crea un nuevo símbolo sintético. Los símbolos sintéticos se pueden quitar mediante RemoveSyntheticSymbol. Al volver a cargar los símbolos del módulo, se eliminan todos los símbolos sintéticos asociados a ese módulo.
Ruta de acceso del símbolo
Para agregar un directorio o servidor de símbolos a la ruta de acceso de símbolos, use el método AppendSymbolPath. GetSymbolPath devuelve toda la ruta de acceso del símbolo y se puede cambiar mediante SetSymbolPath.