Compartir vía


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.

Consulte también