C# Class CsDebugScript.Engine.SymbolProviders.DiaSymbolProvider

Symbol provider that is being implemented over DIA library.
Inheritance: ISymbolProvider
Exibir arquivo Open project: southpolenator/WinDbgCs

Public Methods

Method 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

Method 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 method

Initializes a new instance of the DiaSymbolProvider class.
public DiaSymbolProvider ( ) : System
return System

GetEnumName() public method

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.
return string

GetFrameLocals() public method

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.
return VariableCollection

GetGlobalVariableAddress() public method

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

GetGlobalVariableTypeId() public method

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

GetProcessAddressFunctionName() public method

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.
return void

GetProcessAddressSourceFileNameAndLine() public method

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.
return void

GetRuntimeCodeTypeAndOffset() public method

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.
return int>.Tuple

GetStackFrameFunctionName() public method

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.
return void

GetStackFrameSourceFileNameAndLine() public method

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.
return void

GetSymbolNameByAddress() public method

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

GetTypeAllFieldNames() public method

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.
return string[]

GetTypeAllFieldTypeAndOffset() public method

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.
return int>.Tuple

GetTypeBaseClass() public method

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.
return int>.Tuple

GetTypeBasicType() public method

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

GetTypeDirectBaseClasses() public method

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.
return Dictionary>

GetTypeElementTypeId() public method

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

GetTypeFieldNames() public method

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.
return string[]

GetTypeFieldTypeAndOffset() public method

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.
return int>.Tuple

GetTypeId() public method

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

GetTypeName() public method

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

GetTypePointerToTypeId() public method

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.
return uint

GetTypeSize() public method

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

GetTypeTag() public method

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

ReadSimpleData() public method

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.
return ulong