SymLoadModule-Funktion (dbghelp.h)
Lädt die Symboltabelle.
Diese Funktion wurde von der SymLoadModuleEx-Funktion abgelöst.
Syntax
DWORD IMAGEAPI SymLoadModule(
[in] HANDLE hProcess,
[in, optional] HANDLE hFile,
[in, optional] PCSTR ImageName,
[in, optional] PCSTR ModuleName,
[in] DWORD BaseOfDll,
[in] DWORD SizeOfDll
);
Parameter
[in] hProcess
Ein Handle für den Prozess. Dieses Handle muss zuvor an die SymInitialize-Funktion übergeben worden sein.
[in, optional] hFile
Ein Handle für die Datei für das ausführbare Image. Dieses Argument wird hauptsächlich von Debuggern verwendet, bei denen der Debugger das Dateihandle übergibt, das von einem Debugereignis abgerufen wurde. Der Wert NULL gibt an, dass hFile nicht verwendet wird.
[in, optional] ImageName
Der Name des ausführbaren Images. Dieser Name kann einen Teilpfad, einen vollständigen Pfad oder gar keinen Pfad enthalten. Wenn die Datei nicht mit dem angegebenen Namen gefunden werden kann, wird der Symbolsuchpfad verwendet.
[in, optional] ModuleName
Ein Verknüpfungsname für das Modul. Wenn der Zeigerwert NULL ist, erstellt die Bibliothek einen Namen unter Verwendung des Basisnamens der Symboldatei.
[in] BaseOfDll
Die Ladeadresse des Moduls. Wenn der Wert 0 ist, ruft die Bibliothek die Ladeadresse aus der Symboldatei ab. Die in der Symboldatei enthaltene Ladeadresse ist nicht notwendigerweise die tatsächliche Ladeadresse. Debugger und andere Anwendungen mit einer tatsächlichen Ladeadresse sollten beim Aufrufen dieser Funktion die tatsächliche Ladeadresse verwenden.
Wenn es sich bei dem Bild um eine PDB-Datei handelt, darf dieser Parameter nicht 0 (null) sein.
[in] SizeOfDll
Die Größe des Moduls in Bytes. Wenn der Wert null ist, erhält die Bibliothek die Größe aus der Symboldatei. Die in der Symboldatei enthaltene Größe entspricht nicht unbedingt der tatsächlichen Größe. Debugger und andere Anwendungen mit einer tatsächlichen Größe sollten beim Aufrufen dieser Funktion die reale Größe verwenden.
Wenn es sich bei dem Bild um eine PDB-Datei handelt, darf dieser Parameter nicht 0 (null) sein.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert die Basisadresse des geladenen Moduls.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen.
Wenn das Modul bereits geladen ist, ist der Rückgabewert null, und GetLastError gibt ERROR_SUCCESS zurück.
Hinweise
Der Symbolhandler erstellt einen Eintrag für das Modul, und wenn die Option verzögertes Laden von Symbolen deaktiviert ist, wird versucht, die Symbole zu laden. Wenn das verzögerte Laden von Symbolen aktiviert ist, wird das Modul als verzögert markiert, und die Symbole werden erst geladen, wenn auf ein Symbol im Modul verwiesen wird.
Verwenden Sie zum Entladen der Symboltabelle die Funktion SymUnloadModule64 .
Alle DbgHelp-Funktionen, z. B. diese, sind singlethreaded. Daher führen an diese Funktion gerichtete Aufrufe mehrerer Threads wahrscheinlich zu unerwartetem Verhalten oder einer Beschädigung des Speichers. Um dies zu vermeiden, müssen Sie alle an diese Funktion gerichteten gleichzeitigen Aufrufe mehrerer Threads synchronisieren.
Diese Funktion ersetzt die SymLoadModule-Funktion . Weitere Informationen finden Sie unter Aktualisierte Plattformunterstützung. SymLoadModule wird in DbgHelp.h wie folgt definiert.
#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
Anforderungen
Zielplattform | Windows |
Kopfzeile | dbghelp.h |
Bibliothek | Dbghelp.lib |
DLL | Dbghelp.dll |
Verteilbare Komponente | DbgHelp.dll 5.1 oder höher |