SplitSymbols-Funktion (imagehlp.h)

Entfernt Symbole aus dem angegebenen Bild.

Syntax

BOOL IMAGEAPI SplitSymbols(
  [in]  PSTR  ImageName,
  [in]  PCSTR SymbolsPath,
  [out] PSTR  SymbolFilePath,
  [in]  ULONG Flags
);

Parameter

[in] ImageName

Der Name des Bilds, von dem Symbole aufgeteilt werden sollen.

[in] SymbolsPath

Das Unterverzeichnis zum Speichern von Symbolen. Dieser Parameter ist optional.

[out] SymbolFilePath

Der Name der generierten Symboldatei. Diese Datei hat in der Regel die Erweiterung .dbg.

[in] Flags

Die Informationen, die vom Bild getrennt werden sollen. Dieser Parameter kann null oder eine Kombination der folgenden Werte sein.

Wert Bedeutung
SPLITSYM_EXTRACT_ALL
0x00000002
Normalerweise enthält ein Bild mit getrennten Symbolen weiterhin ein MISC-Debugverzeichnis mit dem Namen der Symboldatei. Daher kann der Debugger die Symbole weiterhin finden. Wenn Sie dieses Flag verwenden, wird dieser Link entfernt. Das Endergebnis ähnelt der Verwendung des Schalters -debug:none im Microsoft-Linker.
SPLITSYM_REMOVE_PRIVATE
0x00000001
Dadurch werden die privaten symbolischen CodeView-Informationen entfernt, wenn die Symboldatei generiert wird.
SPLITSYM_SYMBOLPATH_IS_SRC
0x00000004
Der Pfad der Symboldatei enthält einen alternativen Pfad zum Suchen der PDB-Datei.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen abzurufen.

Hinweise

Die SplitSymbols-Funktion sollte verwendet werden, wenn Symbole aus einem Bild entfernt werden. Es wird eine Symboldatei erstellt, die alle kompatiblen Debugger verstehen. Das Format ist in WinNT.h definiert und besteht aus einem Bildheader, gefolgt vom Array von Abschnittsheadern, den FPO-Informationen und allen symbolischen Debuginformationen aus dem Bild.

Wenn der SymbolsPath-ParameterNULL ist, wird die Symboldatei in dem Verzeichnis gespeichert, in dem das Bild vorhanden ist. Andernfalls wird es im Unterverzeichnis unterhalb von SymbolsPath gespeichert, das der Erweiterung des Bilds entspricht. Die Verwendung dieser Methode verringert die Wahrscheinlichkeit von Symboldateikollisionen. Die Symbole für myapp.exe befinden sich beispielsweise im Verzeichnis SymbolsPath\exe und die Symbole für myapp.dll im Verzeichnis SymbolsPath\dll.

Alle ImageHlp-Funktionen, z. B. diese, sind Singlethreads. 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.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile imagehlp.h
Bibliothek Imagehlp.lib
DLL Imagehlp.dll

Weitere Informationen

ImageHlp-Funktionen