Freigeben über


Andere Symbolserver-DLLs

Wenn Sie eine andere Methode für die Symbolsuche verwenden möchten, können Sie ihre eigene Symbolserver-DLL bereitstellen, anstatt SymSrv zu verwenden.

Festlegen des Symbolpfads

Bei der Implementierung eines anderen Symbolservers als SymSrv wird der Symbolpfad des Debuggers auf die gleiche Weise wie bei SymSrv festgelegt. Eine Erläuterung der Symbolpfadsyntax finden Sie unter Microsoft Public Symbols und Advanced SymSrv Use . Die einzige Änderung, die Sie vornehmen müssen, besteht darin, die Zeichenfolge symsrv.dll durch den Namen Ihrer eigenen Symbolserver-DLL zu ersetzen.

Wenn Sie möchten, können Sie eine andere Syntax innerhalb der Parameter verwenden, um die Verwendung verschiedener Technologien wie UNC-Pfade, SQL-Datenbankbezeichner oder Internetspezifikationen anzugeben.

Implementierung Ihres eigenen Symbolservers

Ein Ansatz besteht darin, Code zu verwenden, der mit DbgHelp kommuniziert, um die Symbole zu finden. Jedes Mal, wenn DbgHelp Symbole für ein neu geladenes Modul benötigt, ruft er den Symbolserver auf, um die entsprechenden Symboldateien zu finden. Der Symbolserver sucht jede Datei gemäß eindeutigen Parametern, z. B. dem Zeitstempel oder der Bildgröße. Der Server gibt einen überprüften Pfad zur angeforderten Datei zurück.

Sie dürfen den tatsächlichen Symboldateinamen, der von Ihrem Symbolserver zurückgegeben wird, nicht ändern. DbgHelp speichert den Namen einer Symboldatei an mehreren Speicherorten. Daher muss der Server eine Datei mit demselben Namen zurückgeben, der beim Anfordern des Symbols angegeben wurde. Diese Einschränkung ist erforderlich, um sicherzustellen, dass die Während des Ladens von Symbolen angezeigten Symbolnamen diejenigen sind, die der Programmierer erkennt.

Einschränkungen für mehrere Symbolserver

DbgHelp unterstützt die Verwendung von jeweils nur einem Symbolserver. Ihr Symbolpfad kann mehrere Instanzen derselben Symbolserver-DLL enthalten, jedoch nicht zwei verschiedene Symbolserver-DLLs. Dies ist nicht viel von einer Einschränkung, da Sie immer noch frei sind, mehrere Instanzen eines Symbolservers in Den Symbolpfad einzuschließen, die jeweils auf einen anderen Symbolspeicher verweisen. Wenn Sie jedoch zwischen zwei verschiedenen Symbolserver-DLLs wechseln möchten, müssen Sie den Symbolpfad jedes Mal ändern.

Installieren der benutzerdefinierten Symbolserver-DLL

Die Details der Symbolserverinstallation hängen von Ihrer Situation ab. Möglicherweise möchten Sie einen Installationsprozess einrichten, der die Symbolserver-DLL kopiert und die _NT_SYMBOL_PATH Umgebungsvariable automatisch festlegt.

Je nach technologie, die auf Ihrem Server verwendet wird, müssen Sie möglicherweise auch die Symboldaten selbst installieren oder darauf zugreifen.

Portable PDB (Programmdatenbank)

Das Format portable PDB (Program Database) beschreibt eine Codierung von Debuginformationen, die von Compilern von Common Language Infrastructure (CLI)-Sprachen erstellt und von Debuggern und anderen Tools verwendet werden. Das Format basiert auf dem ECMA-335 Partition II-Metadatenstandard. Es unterstützt den Betrieb auf verschiedenen Betriebssystemen und Plattformen. Weitere Informationen finden Sie unter Portable PDB-Smbole.

Benutzerdefinierte Symbolspeicher und Symbolserver

Informationen zum Erstellen von benutzerdefinierten Symbolservern finden Sie unter "Benutzerdefinierte Symbolspeicher" und "Symbolserver".