C# Class CsDebugScript.Engine.SymbolProviders.DiaSymbolProvider

Symbol provider that is being implemented over DIA library.
Inheritance: ISymbolProvider
Afficher le fichier Open project: southpolenator/WinDbgCs

Méthodes publiques

Méthode Description
DiaSymbolProvider ( ) : System

Initializes a new instance of the DiaSymbolProvider class.

GetEnumName ( Module module, uint enumTypeId, ulong enumValue ) : string

Gets the name of the enumeration value.

GetFrameLocals ( StackFrame stackFrame, bool arguments ) : VariableCollection

Gets the stack frame locals.

GetGlobalVariableAddress ( Module module, string globalVariableName ) : ulong

Gets the global variable address.

GetGlobalVariableTypeId ( Module module, string globalVariableName ) : uint

Gets the global variable type identifier.

GetProcessAddressFunctionName ( Process process, ulong address, string &functionName, ulong &displacement ) : void

Gets the name of the function for the specified address.

GetProcessAddressSourceFileNameAndLine ( Process process, ulong address, string &sourceFileName, uint &sourceFileLine, ulong &displacement ) : void

Gets the source file name and line for the specified address.

GetRuntimeCodeTypeAndOffset ( Process process, ulong vtableAddress ) : int>.Tuple

Gets the runtime code type and offset to original code type.

GetStackFrameFunctionName ( StackFrame stackFrame, string &functionName, ulong &displacement ) : void

Gets the name of the function for the specified stack frame.

GetStackFrameSourceFileNameAndLine ( StackFrame stackFrame, string &sourceFileName, uint &sourceFileLine, ulong &displacement ) : void

Gets the source file name and line for the specified stack frame.

GetSymbolNameByAddress ( Process process, ulong address ) : ulong>.Tuple

Gets the symbol name by address.

GetTypeAllFieldNames ( Module module, uint typeId ) : string[]

Gets the names of all fields of the specified type.

GetTypeAllFieldTypeAndOffset ( Module module, uint typeId, string fieldName ) : int>.Tuple

Gets the field type id and offset of the specified type.

GetTypeBaseClass ( Module module, uint typeId, string className ) : int>.Tuple

Gets the type's base class type and offset.

GetTypeBasicType ( Module module, uint typeId ) : BasicType

Gets the type of the basic type.

GetTypeDirectBaseClasses ( Module module, uint typeId ) : Dictionary>

Gets the type's direct base classes type and offset.

GetTypeElementTypeId ( Module module, uint typeId ) : uint

Gets the element type of the specified type.

GetTypeFieldNames ( Module module, uint typeId ) : string[]

Gets the names of fields of the specified type.

GetTypeFieldTypeAndOffset ( Module module, uint typeId, string fieldName ) : int>.Tuple

Gets the field type id and offset of the specified type.

GetTypeId ( Module module, string typeName ) : uint

Gets the type identifier.

GetTypeName ( Module module, uint typeId ) : string

Gets the name of the specified type.

GetTypePointerToTypeId ( Module module, uint typeId ) : uint

Gets the type pointer to type of the specified type.

GetTypeSize ( Module module, uint typeId ) : uint

Gets the size of the specified type.

GetTypeTag ( Module module, uint typeId ) : SymTag

Gets the symbol tag of the specified type.

ReadSimpleData ( CodeType codeType, ulong address ) : ulong

Reads the simple data (1 to 8 bytes) for specified type and address to read from.

Private Methods

Méthode Description
GetDiaModule ( Module module ) : ISymbolProviderModule

Gets the DIA module.

GetDiaModule ( Process process, ulong instructionOffset, ulong &distance, Module &module ) : ISymbolProviderModule

Gets the DIA module.

GetRuntimeCodeTypeAndOffset ( ulong>.Tuple tuple ) : int>.Tuple

Gets the runtime code type and offset to original code type.

LoadModule ( Module module ) : ISymbolProviderModule

Loads the module from PDB file.

Method Details

DiaSymbolProvider() public méthode

Initializes a new instance of the DiaSymbolProvider class.
public DiaSymbolProvider ( ) : System
Résultat System

GetEnumName() public méthode

Gets the name of the enumeration value.
public GetEnumName ( Module module, uint enumTypeId, ulong enumValue ) : string
module Module The module.
enumTypeId uint The enumeration type identifier.
enumValue ulong The enumeration value.
Résultat string

GetFrameLocals() public méthode

Gets the stack frame locals.
public GetFrameLocals ( StackFrame stackFrame, bool arguments ) : VariableCollection
stackFrame StackFrame The stack frame.
arguments bool if set to true only arguments will be returned.
Résultat VariableCollection

GetGlobalVariableAddress() public méthode

Gets the global variable address.
public GetGlobalVariableAddress ( Module module, string globalVariableName ) : ulong
module Module The module.
globalVariableName string Name of the global variable.
Résultat ulong

GetGlobalVariableTypeId() public méthode

Gets the global variable type identifier.
public GetGlobalVariableTypeId ( Module module, string globalVariableName ) : uint
module Module The module.
globalVariableName string Name of the global variable.
Résultat uint

GetProcessAddressFunctionName() public méthode

Gets the name of the function for the specified address.
public GetProcessAddressFunctionName ( Process process, ulong address, string &functionName, ulong &displacement ) : void
process Process The process.
address ulong The address.
functionName string Name of the function.
displacement ulong The displacement.
Résultat void

GetProcessAddressSourceFileNameAndLine() public méthode

Gets the source file name and line for the specified address.
public GetProcessAddressSourceFileNameAndLine ( Process process, ulong address, string &sourceFileName, uint &sourceFileLine, ulong &displacement ) : void
process Process The process.
address ulong The address.
sourceFileName string Name of the source file.
sourceFileLine uint The source file line.
displacement ulong The displacement.
Résultat void

GetRuntimeCodeTypeAndOffset() public méthode

Gets the runtime code type and offset to original code type.
public GetRuntimeCodeTypeAndOffset ( Process process, ulong vtableAddress ) : int>.Tuple
process Process The process.
vtableAddress ulong The vtable address.
Résultat int>.Tuple

GetStackFrameFunctionName() public méthode

Gets the name of the function for the specified stack frame.
public GetStackFrameFunctionName ( StackFrame stackFrame, string &functionName, ulong &displacement ) : void
stackFrame StackFrame The stack frame.
functionName string Name of the function.
displacement ulong The displacement.
Résultat void

GetStackFrameSourceFileNameAndLine() public méthode

Gets the source file name and line for the specified stack frame.
public GetStackFrameSourceFileNameAndLine ( StackFrame stackFrame, string &sourceFileName, uint &sourceFileLine, ulong &displacement ) : void
stackFrame StackFrame The stack frame.
sourceFileName string Name of the source file.
sourceFileLine uint The source file line.
displacement ulong The displacement.
Résultat void

GetSymbolNameByAddress() public méthode

Gets the symbol name by address.
public GetSymbolNameByAddress ( Process process, ulong address ) : ulong>.Tuple
process Process The process.
address ulong The address.
Résultat ulong>.Tuple

GetTypeAllFieldNames() public méthode

Gets the names of all fields of the specified type.
public GetTypeAllFieldNames ( Module module, uint typeId ) : string[]
module Module The module.
typeId uint The type identifier.
Résultat string[]

GetTypeAllFieldTypeAndOffset() public méthode

Gets the field type id and offset of the specified type.
public GetTypeAllFieldTypeAndOffset ( Module module, uint typeId, string fieldName ) : int>.Tuple
module Module The module.
typeId uint The type identifier.
fieldName string Name of the field.
Résultat int>.Tuple

GetTypeBaseClass() public méthode

Gets the type's base class type and offset.
public GetTypeBaseClass ( Module module, uint typeId, string className ) : int>.Tuple
module Module The module.
typeId uint The type identifier.
className string Name of the class.
Résultat int>.Tuple

GetTypeBasicType() public méthode

Gets the type of the basic type.
public GetTypeBasicType ( Module module, uint typeId ) : BasicType
module Module The module.
typeId uint The type identifier.
Résultat BasicType

GetTypeDirectBaseClasses() public méthode

Gets the type's direct base classes type and offset.
public GetTypeDirectBaseClasses ( Module module, uint typeId ) : Dictionary>
module Module The module.
typeId uint The type identifier.
Résultat Dictionary>

GetTypeElementTypeId() public méthode

Gets the element type of the specified type.
public GetTypeElementTypeId ( Module module, uint typeId ) : uint
module Module The module.
typeId uint The type identifier.
Résultat uint

GetTypeFieldNames() public méthode

Gets the names of fields of the specified type.
public GetTypeFieldNames ( Module module, uint typeId ) : string[]
module Module The module.
typeId uint The type identifier.
Résultat string[]

GetTypeFieldTypeAndOffset() public méthode

Gets the field type id and offset of the specified type.
public GetTypeFieldTypeAndOffset ( Module module, uint typeId, string fieldName ) : int>.Tuple
module Module The module.
typeId uint The type identifier.
fieldName string Name of the field.
Résultat int>.Tuple

GetTypeId() public méthode

Gets the type identifier.
public GetTypeId ( Module module, string typeName ) : uint
module Module The module.
typeName string Name of the type.
Résultat uint

GetTypeName() public méthode

Gets the name of the specified type.
public GetTypeName ( Module module, uint typeId ) : string
module Module The module.
typeId uint The type identifier.
Résultat string

GetTypePointerToTypeId() public méthode

Gets the type pointer to type of the specified type.
public GetTypePointerToTypeId ( Module module, uint typeId ) : uint
module Module The module.
typeId uint The type identifier.
Résultat uint

GetTypeSize() public méthode

Gets the size of the specified type.
public GetTypeSize ( Module module, uint typeId ) : uint
module Module The module.
typeId uint The type identifier.
Résultat uint

GetTypeTag() public méthode

Gets the symbol tag of the specified type.
public GetTypeTag ( Module module, uint typeId ) : SymTag
module Module The module.
typeId uint The type identifier.
Résultat SymTag

ReadSimpleData() public méthode

Reads the simple data (1 to 8 bytes) for specified type and address to read from.
public ReadSimpleData ( CodeType codeType, ulong address ) : ulong
codeType CodeType Type of the code.
address ulong The address.
Résultat ulong