C# Класс CsDebugScript.Engine.SymbolProviders.DiaSymbolProvider

Symbol provider that is being implemented over DIA library.
Наследование: ISymbolProvider
Показать файл Открыть проект

Открытые методы

Метод Описание
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.

Приватные методы

Метод Описание
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.

Описание методов

DiaSymbolProvider() публичный Метод

Initializes a new instance of the DiaSymbolProvider class.
public DiaSymbolProvider ( ) : System
Результат System

GetEnumName() публичный Метод

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.
Результат string

GetFrameLocals() публичный Метод

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.
Результат VariableCollection

GetGlobalVariableAddress() публичный Метод

Gets the global variable address.
public GetGlobalVariableAddress ( Module module, string globalVariableName ) : ulong
module Module The module.
globalVariableName string Name of the global variable.
Результат ulong

GetGlobalVariableTypeId() публичный Метод

Gets the global variable type identifier.
public GetGlobalVariableTypeId ( Module module, string globalVariableName ) : uint
module Module The module.
globalVariableName string Name of the global variable.
Результат uint

GetProcessAddressFunctionName() публичный Метод

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.
Результат void

GetProcessAddressSourceFileNameAndLine() публичный Метод

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.
Результат void

GetRuntimeCodeTypeAndOffset() публичный Метод

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.
Результат int>.Tuple

GetStackFrameFunctionName() публичный Метод

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.
Результат void

GetStackFrameSourceFileNameAndLine() публичный Метод

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.
Результат void

GetSymbolNameByAddress() публичный Метод

Gets the symbol name by address.
public GetSymbolNameByAddress ( Process process, ulong address ) : ulong>.Tuple
process Process The process.
address ulong The address.
Результат ulong>.Tuple

GetTypeAllFieldNames() публичный Метод

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.
Результат string[]

GetTypeAllFieldTypeAndOffset() публичный Метод

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.
Результат int>.Tuple

GetTypeBaseClass() публичный Метод

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.
Результат int>.Tuple

GetTypeBasicType() публичный Метод

Gets the type of the basic type.
public GetTypeBasicType ( Module module, uint typeId ) : BasicType
module Module The module.
typeId uint The type identifier.
Результат BasicType

GetTypeDirectBaseClasses() публичный Метод

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.
Результат Dictionary>

GetTypeElementTypeId() публичный Метод

Gets the element type of the specified type.
public GetTypeElementTypeId ( Module module, uint typeId ) : uint
module Module The module.
typeId uint The type identifier.
Результат uint

GetTypeFieldNames() публичный Метод

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.
Результат string[]

GetTypeFieldTypeAndOffset() публичный Метод

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.
Результат int>.Tuple

GetTypeId() публичный Метод

Gets the type identifier.
public GetTypeId ( Module module, string typeName ) : uint
module Module The module.
typeName string Name of the type.
Результат uint

GetTypeName() публичный Метод

Gets the name of the specified type.
public GetTypeName ( Module module, uint typeId ) : string
module Module The module.
typeId uint The type identifier.
Результат string

GetTypePointerToTypeId() публичный Метод

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.
Результат uint

GetTypeSize() публичный Метод

Gets the size of the specified type.
public GetTypeSize ( Module module, uint typeId ) : uint
module Module The module.
typeId uint The type identifier.
Результат uint

GetTypeTag() публичный Метод

Gets the symbol tag of the specified type.
public GetTypeTag ( Module module, uint typeId ) : SymTag
module Module The module.
typeId uint The type identifier.
Результат SymTag

ReadSimpleData() публичный Метод

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.
Результат ulong