IDebugModule3::GetSymbolInfo
Recupera una lista de rutas de acceso que se buscan en símbolos, así como los resultados de la búsqueda de cada ruta de acceso.
Sintaxis
int GetSymbolInfo(
enum_SYMBOL_SEARCH_INFO_FIELDS dwFields,
MODULE_SYMBOL_SEARCH_INFO[] pinfo
);
Parámetros
dwFields
[in] Combinación de marcas de la enumeración SYMBOL_SEARCH_INFO_FIELDS que especifica qué campos de pInfo
se van a rellenar.
pInfo
[out] Estructura MODULE_SYMBOL_SEARCH_INFO cuyos miembros se van a rellenar con la información especificada. Si se trata de un valor NULL, este método devuelve E_INVALIDARG
.
Valor devuelto
Si el método se ejecuta correctamente, devuelve S_OK
; de lo contrario, devuelve un código de error.
Nota:
La cadena devuelta (en la MODULE_SYMBOL_SEARCH_INFO
estructura) podría estar vacía incluso si S_OK
se devuelve. En este caso, no había información de búsqueda para devolver.
Comentarios
Si el bstrVerboseSearchInfo
campo de la MODULE_SYMBOL_SEARCH_INFO
estructura no está vacío, contiene una lista de rutas de acceso buscadas y los resultados de esa búsqueda. La lista tiene formato con una ruta de acceso, seguida de puntos suspensivos ("..."), seguida del resultado. Si hay más de un par de resultados de ruta de acceso, cada par está separado por un par "\r\n" (retorno de carro/avance de línea). El patrón tiene este aspecto:
<ruta de acceso>...<result>\r\n<path>...<result>\r\n<path>...<Resultado>
Tenga en cuenta que la última entrada no tiene una secuencia \r\n.
Ejemplo
En este ejemplo, este método devuelve tres rutas de acceso con tres resultados de búsqueda diferentes. Cada línea finaliza con un par de retorno de carro/avance de línea. La salida de ejemplo simplemente imprime los resultados de búsqueda como una sola cadena.
Nota:
Un resultado de estado es todo lo que sigue inmediatamente a "..." hasta el final de la línea.
void ShowSymbolSearchResults(IDebugModule3 *pIDebugModule3)
{
MODULE_SYMBOL_SEARCH_INFO ssi = { 0 };
HRESULT hr;
hr = pIDebugModule3->GetSymbolInfo(SSIF_VERBOSE_SEARCH_INFO,&ssi);
if (SUCCEEDED(hr)) {
CComBSTR searchInfo = ssi.bstrVerboseSearchInfo;
if (searchInfo.Length() != 0) {
std::wcout << (wchar_t *)(BSTR)searchInfo;
std::wcout << std::endl;
}
}
}
c:\symbols\user32.pdb... Archivo no encontrado.c:\winnt\symbols\user32.pdb... La versión no coincide.\\symbols\symbols\user32.dll\0a8sd0ad8ad\user32.pdb... Símbolos cargados.