C# Class CsDebugScript.Engine.Debuggers.DbgEngDllHelpers.DbgEngSymbolProvider

Symbol provider that is being implemented over DbgEng.dll.
Inheritance: ISymbolProvider, ISymbolProviderModule
Show file Open project: southpolenator/WinDbgCs Class Usage Examples

Public Methods

Method Description
DbgEngSymbolProvider ( DbgEngDll dbgEngDll ) : System

Initializes a new instance of the DbgEngSymbolProvider class.

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

Gets the name of the enumeration value.

GetFrameLocals ( StackFrame frame, Module module, uint relativeAddress, bool arguments ) : VariableCollection

Gets the stack frame locals.

GetFrameLocals ( StackFrame stackFrame, bool arguments ) : VariableCollection

Gets the stack frame locals.

GetFunctionNameAndDisplacement ( Process process, ulong processAddress, uint address, string &functionName, ulong &displacement ) : void

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

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.

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

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

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

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

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.

GetSymbolNameByAddress ( Process process, ulong address, uint distance ) : 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
GetTypedData ( Tuple typedDataId ) : DEBUG_TYPED_DATA

Gets the typed data.

Method Details

DbgEngSymbolProvider() public method

Initializes a new instance of the DbgEngSymbolProvider class.
public DbgEngSymbolProvider ( DbgEngDll dbgEngDll ) : System
dbgEngDll DbgEngDll The DbgEngDll debugger engine
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 frame, Module module, uint relativeAddress, bool arguments ) : VariableCollection
frame StackFrame The frame.
module Module The module.
relativeAddress uint The relative address.
arguments bool if set to true only arguments will be returned.
return VariableCollection

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

GetFunctionNameAndDisplacement() public method

Gets the name of the function for the specified stack frame.
public GetFunctionNameAndDisplacement ( Process process, ulong processAddress, uint address, string &functionName, ulong &displacement ) : void
process Process The process.
processAddress ulong The process address.
address uint The address.
functionName string Name of the function.
displacement ulong The displacement.
return void

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

GetRuntimeCodeTypeAndOffset() public method

Gets the runtime code type and offset to original code type.
public GetRuntimeCodeTypeAndOffset ( Process process, ulong vtableAddress, uint distance ) : int>.Tuple
process Process The process.
vtableAddress ulong The vtable address.
distance uint The distance within the module.
return int>.Tuple

GetSourceFileNameAndLine() public method

Gets the source file name and line for the specified stack frame.
public GetSourceFileNameAndLine ( Process process, ulong processAddress, uint address, string &sourceFileName, uint &sourceFileLine, ulong &displacement ) : void
process Process The process.
processAddress ulong The process address.
address uint The address.
sourceFileName string Name of the source file.
sourceFileLine uint The source file line.
displacement ulong The displacement.
return void

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

GetSymbolNameByAddress() public method

Gets the symbol name by address.
public GetSymbolNameByAddress ( Process process, ulong address, uint distance ) : ulong>.Tuple
process Process The process.
address ulong The address.
distance uint The distance within the module.
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