Symbole und Symboltags

Debuginformationen zu einem kompilierten Programm werden in der Programmdatenbankdatei (.pdb) als Symbole gespeichert, auf die über die Debug Interface Access (DIA) SDK-APIs zugegriffen werden kann. Alle Symbole verfügen über die Eigenschaften IDiaSymbol::get_symTag und IDiaSymbol::get_symIndexId. Die symTag-Eigenschaft gibt die Art des Symbols gemäß der Definition in der SymTagEnum-Enumeration an. Die symIndexId-Eigenschaft ist ein DWORD-Wert, der den eindeutigen Bezeichner für jede Instanz eines Symbols enthält.

Symbole verfügen auch über Eigenschaften, mit denen zusätzliche Informationen zum Symbol sowie Verweise auf andere Symbole angegeben werden können (in den meisten Fällen IDiaSymbol::get_lexicalParent oder IDiaSymbol::get_classParent). Wenn Sie eine Eigenschaft abfragen, die einen Verweis enthält, wird der Verweis als IDiaSymbol-Objekt zurückgegeben. Solche Eigenschaften werden immer mit einer anderen Eigenschaft gekoppelt, die denselben Namen aufweist, jedoch mit dem Suffix „Id“ (z. B. IDiaSymbol::get_lexicalParentId und IDiaSymbol::get_classParentId). In den Tabellen unter Symbolspeicherorte, Lexikalische Hierarchie von Symboltypen und Klassenhierarchie der Symboltypen werden die Eigenschaften für die einzelnen Symbolarten beschrieben. Diese Eigenschaften können relevante Informationen über oder Verweise auf andere Symbole enthalten. Da die *Id-Eigenschaften lediglich numerische Bezeichner (Ordnungszahl) der zugehörigen Eigenschaften sind, werden sie in weiteren Erläuterungen nicht behandelt. Sie werden nur erwähnt, wenn dies zur Erklärung von Parametern notwendig ist.

Wenn beim Versuch, auf die Eigenschaft zuzugreifen, kein Fehler auftritt und der Symboleigenschaft ein Wert zugewiesen wurde, gibt die get-Methode der Eigenschaft S_OK zurück. Der Rückgabewert S_FALSE gibt an, dass die Eigenschaft für das aktuelle Symbol ungültig ist.

In diesem Abschnitt

Symbolspeicherorte

Beschreibt die verschiedenen möglichen Speicherorte für Symbole.

Lexikalische Hierarchie der Symboltypen

Beschreibt die Symboltypen, die lexikalische Hierarchien wie Dateien, Module und Funktionen bilden.

Klassenhierarchie der Symboltypen

Beschreibt die Symboltypen, die verschiedenen Sprachelementen entsprechen, z. B. Klassen, Arrays und Funktionsrückgabetypen.

Weitere Informationen