Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De symboolhandler laadt symbolen wanneer u de functie SymInitialize aanroept met de parameter fInvadeProcess ingesteld op TRUE- of wanneer u de functie SymLoadModuleEx aanroept om een module op te geven. In beide gevallen laadt de symboolhandler de symbolen of stelt het laden van symbolen uit totdat symbolen worden aangevraagd, afhankelijk van de opties die zijn ingesteld door de SymSetOptions functie.
De symboolhandler kan worden gebruikt om symbolische informatie op te halen voor elke module; het hoeft niet te worden gekoppeld aan een proces dat is opgegeven in de SymInitialize aanroep. Als u een willekeurige module wilt gebruiken, geeft u het volledige pad naar de module-afbeelding op in de parameter ImageName. U kunt een pad gebruiken naar een uitvoerbare module met foutopsporingsgegevens (.exe, .dll, .drv, .sys, .scr, .cplof .com). Gebruik de parameter BaseOfDll om een laadadres op te geven. Vervolgens worden symbooladressen gebaseerd op dat adres.
Het is mogelijk niet nodig om een symboolmodule geladen te houden gedurende de duur van een toepassing. Als u de symboolmodule wilt vrijgeven uit de lijst met modules van de symboolhandler, gebruikt u de functie SymUnloadModule64. Met deze functie wordt het geheugen vrijgegeven dat is toegewezen voor de symboolmodule. Als u symbolen voor die module opnieuw wilt gebruiken, moet u de functie SymLoadModuleEx aanroepen, zelfs als de optie voor het uitstellen van het symbool is ingesteld.
Problemen met symboolbelasting vaststellen
Als u alle pogingen om symbolen te laden wilt weergeven, roept u SymSetOptions- aan met SYMOPT_DEBUG. Hierdoor voert DbgHelp de functie OutputDebugString uit met gedetailleerde informatie over symboolzoekopdrachten, zoals de directories die worden doorzocht en foutberichten. Als uw code gebruikmaakt van SymRegisterCallback64, roept DbgHelp uw callback-functie aan in plaats van OutputDebugString-aan te roepen. De parameter ActionCode is ingesteld op CBA_DEBUG_INFO en de parameter CallbackData is een tekenreeks die kan worden weergegeven.
Als u wilt dat deze foutopsporingsuitvoer wordt weergegeven in de console zonder de broncode te wijzigen, stelt u de DBGHELP_DBGOUT omgevingsvariabele in op een niet-NULL--waarde voordat u de SymInitialize-functie aanroept. Als u de gegevens wilt registreren bij een bestand, stelt u de omgevingsvariabele DBGHELP_LOG in op de naam van het logboekbestand dat moet worden gebruikt.
Houd er rekening mee dat deze functies alleen moeten worden gebruikt wanneer dat nodig is. Ze kunnen het laden van symbolen vertragen van modules die veel symbolen bevatten.