Funzione SymLoadModule (dbghelp.h)
Carica la tabella dei simboli.
Questa funzione è stata sostituita dalla funzione SymLoadModuleEx .
Sintassi
DWORD IMAGEAPI SymLoadModule(
[in] HANDLE hProcess,
[in, optional] HANDLE hFile,
[in, optional] PCSTR ImageName,
[in, optional] PCSTR ModuleName,
[in] DWORD BaseOfDll,
[in] DWORD SizeOfDll
);
Parametri
[in] hProcess
Handle per il processo. Questo handle deve essere stato passato in precedenza alla funzione SymInitialize .
[in, optional] hFile
Handle per il file per l'immagine eseguibile. Questo argomento viene usato principalmente dai debugger, in cui il debugger passa l'handle di file ottenuto da un evento di debug. Un valore NULL indica che hFile non viene usato.
[in, optional] ImageName
Nome dell'immagine eseguibile. Questo nome può contenere un percorso parziale, un percorso completo o nessun percorso. Se il file non può trovarsi in base al nome specificato, viene utilizzato il percorso di ricerca dei simboli.
[in, optional] ModuleName
Nome del collegamento per il modulo. Se il valore del puntatore è NULL, la libreria crea un nome usando il nome di base del file di simboli.
[in] BaseOfDll
Indirizzo di caricamento del modulo. Se il valore è zero, la libreria ottiene l'indirizzo di caricamento dal file di simboli. L'indirizzo di caricamento contenuto nel file di simboli non è necessariamente l'indirizzo di caricamento effettivo. I debugger e altre applicazioni con un indirizzo di carico effettivo devono usare l'indirizzo di caricamento reale quando si chiama questa funzione.
Se l'immagine è un file con estensione pdb, questo parametro non può essere zero.
[in] SizeOfDll
Dimensioni del modulo, in byte. Se il valore è zero, la libreria ottiene le dimensioni dal file di simboli. Le dimensioni contenute nel file di simboli non sono necessariamente le dimensioni effettive. I debugger e altre applicazioni con dimensioni effettive devono usare le dimensioni reali quando si chiama questa funzione.
Se l'immagine è un file con estensione pdb, questo parametro non può essere zero.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è l'indirizzo di base del modulo caricato.
Se la funzione ha esito negativo, il valore restituito è zero. Per recuperare informazioni sull'errore estese, chiamare GetLastError.
Se il modulo è già caricato, il valore restituito è zero e GetLastError restituisce ERROR_SUCCESS.
Commenti
Il gestore dei simboli crea una voce per il modulo e, se l'opzione di caricamento dei simboli posticipati è disattivata, viene effettuato un tentativo di caricare i simboli. Se il caricamento posticipato dei simboli è abilitato, il modulo viene contrassegnato come posticipato e i simboli non vengono caricati fino a quando non viene eseguito un riferimento a un simbolo nel modulo.
Per scaricare la tabella dei simboli, usare la funzione SymUnloadModule64 .
Tutte le funzioni DbgHelp, ad esempio questa, sono a thread singolo. Di conseguenza, le chiamate da più thread a questa funzione genereranno un comportamento imprevisto o un danneggiamento della memoria. Per evitare questo problema, è necessario sincronizzare tutte le chiamate simultanee da più thread a questa funzione.
Questa funzione sostituisce la funzione SymLoadModule . Per altre informazioni, vedere Aggiornamento del supporto della piattaforma. SymLoadModule è definito come segue in DbgHelp.h.
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymLoadModule SymLoadModule64
#else
DWORD
IMAGEAPI
SymLoadModule(
__in HANDLE hProcess,
__in_opt HANDLE hFile,
__in_opt PCSTR ImageName,
__in_opt PCSTR ModuleName,
__in DWORD BaseOfDll,
__in DWORD SizeOfDll
);
#endif
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | dbghelp.h |
Libreria | Dbghelp.lib |
DLL | Dbghelp.dll |
Componente ridistribuibile | DbgHelp.dll 5.1 o versione successiva |