C# Class CsDebugScript.VS.VSDebugger

Inheritance: Engine.IDebuggerEngine
Datei anzeigen Open project: southpolenator/WinDbgCs Class Usage Examples

Public Methods

Method Description
BreakExecution ( Process process ) : void

When doing live process debugging breaks debugee execution of the specified process.

ContinueExecution ( Process process ) : void

When doing live process debugging continues debugee execution of the specified process.

CreateDefaultSymbolProvider ( ) : Engine.ISymbolProvider
CreateDefaultSymbolProviderModule ( ) : Engine.ISymbolProviderModule
Execute ( string command ) : void

Executes the specified command, but leaves its output visible to the user.

ExecuteAction ( System.Action action ) : void

Executes the action in redirected console output and error stream.

FindPatternInMemory ( Process process, ulong memoryStart, ulong memoryEnd, byte pattern, int patternStart, int patternEnd, uint searchAlignment = 1, bool searchWritableMemoryOnly = false ) : ulong
GetAllProcesses ( ) : Process[]

Gets all processes currently being debugged.

GetCurrentProcess ( ) : Process

Gets the current process.

GetLastEventInfo ( ) : DebugEventInfo

Gets last event info.

GetMemoryRegions ( Process process ) : MemoryRegion[]
GetModuleAddress ( Process process, string moduleName ) : ulong

Gets the address of the module loaded into specified process.

GetModuleImageName ( Module module ) : string

Gets the name of the image. This is the name of the executable file, including the extension. Typically, the full path is included in user mode but not in kernel mode.

GetModuleLoadedImage ( Module module ) : string

Gets the name of the loaded image. Unless Microsoft CodeView symbols are present, this is the same as the image name.

GetModuleMappedImage ( Module module ) : string

Gets the name of the mapped image. In most cases, this is null. If the debugger is mapping an image file (for example, during minidump debugging), this is the name of the mapped image.

GetModuleName ( Module module ) : string

Gets the module name. This is usually just the file name without the extension. In a few cases, the module name differs significantly from the file name.

GetModuleSymbolFile ( Module module ) : string

Gets the name of the symbol file. The path and name of the symbol file. If no symbols have been loaded, this is the name of the executable file instead.

GetModuleTimestampAndSize ( Module module ) : ulong>.Tuple

Gets the timestamp and size of the module.

GetModuleVersion ( Module module, int &major, int &minor, int &revision, int &patch ) : void

Gets the module version.

GetProcessActualProcessorType ( Process process ) : Engine.Native.ImageFileMachine

Gets the actual processor type of the specified process.

GetProcessCurrentThread ( Process process ) : System.Thread

Gets the current thread of the specified process.

GetProcessDumpFileName ( Process process ) : string

Gets the dump file name of the specified process.

GetProcessEffectiveProcessorType ( Process process ) : Engine.Native.ImageFileMachine

Gets the effective processor type of the specified process.

GetProcessEnvironmentBlockAddress ( Process process ) : ulong
GetProcessExecutableName ( Process process ) : string

Gets the executable name of the specified process.

GetProcessModules ( Process process ) : Module[]

Gets all modules of the specified process.

GetProcessSystemId ( Process process ) : uint

Gets the system identifier of the specified process.

GetProcessThreads ( Process process ) : System.Thread[]

Gets all threads of the specified process.

GetProcessUpTime ( Process process ) : uint
GetStackTraceFromContext ( Process process, ulong contextAddress, uint contextSize ) : StackTrace
GetThreadContext ( System.Thread thread ) : ThreadContext

Gets the thread context of the specified thread.

GetThreadCurrentStackFrame ( System.Thread thread ) : StackFrame

Gets the current stack frame of the specified thread.

GetThreadEnvironmentBlockAddress ( System.Thread thread ) : ulong

Gets the environment block address of the specified thread.

GetThreadStackTrace ( System.Thread thread ) : StackTrace

Gets the stack trace of the specified thread.

IsMinidump ( Process process ) : bool
QueryVirtual ( Process process, ulong address, ulong &baseAddress, ulong &regionSize ) : void
ReadAnsiString ( Process process, ulong address, int length = -1 ) : string

Reads the ANSI string.

ReadInput ( ) : string

Reads the line from the debugger input.

ReadMemory ( Process process, ulong address, uint size ) : MemoryBuffer

Reads the memory from the specified process.

ReadUnicodeString ( Process process, ulong address, int length = -1 ) : string

Reads the unicode string.

SetCurrentProcess ( Process process ) : void

Sets the current process.

SetCurrentStackFrame ( StackFrame stackFrame ) : void
SetCurrentThread ( System.Thread thread ) : void

Sets the current thread.

Terminate ( Process process ) : void

Terminates given process.

VSDebugger ( VSDebuggerProxy proxy ) : System

Initializes a new instance of the VSDebugger class.

Private Methods

Method Description
UpdateCache ( ) : void

Updates the cache since something changed in debugger state.

Method Details

BreakExecution() public method

When doing live process debugging breaks debugee execution of the specified process.
public BreakExecution ( Process process ) : void
process Process Process to break.
return void

ContinueExecution() public method

When doing live process debugging continues debugee execution of the specified process.
public ContinueExecution ( Process process ) : void
process Process Process to be continued.
return void

CreateDefaultSymbolProvider() public method

public CreateDefaultSymbolProvider ( ) : Engine.ISymbolProvider
return Engine.ISymbolProvider

CreateDefaultSymbolProviderModule() public method

public CreateDefaultSymbolProviderModule ( ) : Engine.ISymbolProviderModule
return Engine.ISymbolProviderModule

Execute() public method

Executes the specified command, but leaves its output visible to the user.
This function is not planned to be implemented for VS debugger.
public Execute ( string command ) : void
command string The command.
return void

ExecuteAction() public method

Executes the action in redirected console output and error stream.
This function is not planned to be implemented for VS debugger.
public ExecuteAction ( System.Action action ) : void
action System.Action The action.
return void

FindPatternInMemory() public method

public FindPatternInMemory ( Process process, ulong memoryStart, ulong memoryEnd, byte pattern, int patternStart, int patternEnd, uint searchAlignment = 1, bool searchWritableMemoryOnly = false ) : ulong
process Process
memoryStart ulong
memoryEnd ulong
pattern byte
patternStart int
patternEnd int
searchAlignment uint
searchWritableMemoryOnly bool
return ulong

GetAllProcesses() public method

Gets all processes currently being debugged.
public GetAllProcesses ( ) : Process[]
return Process[]

GetCurrentProcess() public method

Gets the current process.
public GetCurrentProcess ( ) : Process
return Process

GetLastEventInfo() public method

Gets last event info.
This function is not planned to be implemented for VS debugger.
public GetLastEventInfo ( ) : DebugEventInfo
return DebugEventInfo

GetMemoryRegions() public method

public GetMemoryRegions ( Process process ) : MemoryRegion[]
process Process
return MemoryRegion[]

GetModuleAddress() public method

Gets the address of the module loaded into specified process.
public GetModuleAddress ( Process process, string moduleName ) : ulong
process Process The process.
moduleName string Name of the module.
return ulong

GetModuleImageName() public method

Gets the name of the image. This is the name of the executable file, including the extension. Typically, the full path is included in user mode but not in kernel mode.
public GetModuleImageName ( Module module ) : string
module Module The module.
return string

GetModuleLoadedImage() public method

Gets the name of the loaded image. Unless Microsoft CodeView symbols are present, this is the same as the image name.
public GetModuleLoadedImage ( Module module ) : string
module Module The module.
return string

GetModuleMappedImage() public method

Gets the name of the mapped image. In most cases, this is null. If the debugger is mapping an image file (for example, during minidump debugging), this is the name of the mapped image.
public GetModuleMappedImage ( Module module ) : string
module Module The module.
return string

GetModuleName() public method

Gets the module name. This is usually just the file name without the extension. In a few cases, the module name differs significantly from the file name.
public GetModuleName ( Module module ) : string
module Module The module.
return string

GetModuleSymbolFile() public method

Gets the name of the symbol file. The path and name of the symbol file. If no symbols have been loaded, this is the name of the executable file instead.
public GetModuleSymbolFile ( Module module ) : string
module Module The module.
return string

GetModuleTimestampAndSize() public method

Gets the timestamp and size of the module.
public GetModuleTimestampAndSize ( Module module ) : ulong>.Tuple
module Module The module.
return ulong>.Tuple

GetModuleVersion() public method

Gets the module version.
public GetModuleVersion ( Module module, int &major, int &minor, int &revision, int &patch ) : void
module Module The module.
major int The version major number.
minor int The version minor number.
revision int The version revision number.
patch int The version patch number.
return void

GetProcessActualProcessorType() public method

Gets the actual processor type of the specified process.
public GetProcessActualProcessorType ( Process process ) : Engine.Native.ImageFileMachine
process Process The process.
return Engine.Native.ImageFileMachine

GetProcessCurrentThread() public method

Gets the current thread of the specified process.
public GetProcessCurrentThread ( Process process ) : System.Thread
process Process The process.
return System.Thread

GetProcessDumpFileName() public method

Gets the dump file name of the specified process.
public GetProcessDumpFileName ( Process process ) : string
process Process The process.
return string

GetProcessEffectiveProcessorType() public method

Gets the effective processor type of the specified process.
public GetProcessEffectiveProcessorType ( Process process ) : Engine.Native.ImageFileMachine
process Process The process.
return Engine.Native.ImageFileMachine

GetProcessEnvironmentBlockAddress() public method

public GetProcessEnvironmentBlockAddress ( Process process ) : ulong
process Process
return ulong

GetProcessExecutableName() public method

Gets the executable name of the specified process.
public GetProcessExecutableName ( Process process ) : string
process Process The process.
return string

GetProcessModules() public method

Gets all modules of the specified process.
public GetProcessModules ( Process process ) : Module[]
process Process The process.
return Module[]

GetProcessSystemId() public method

Gets the system identifier of the specified process.
public GetProcessSystemId ( Process process ) : uint
process Process The process.
return uint

GetProcessThreads() public method

Gets all threads of the specified process.
public GetProcessThreads ( Process process ) : System.Thread[]
process Process The process.
return System.Thread[]

GetProcessUpTime() public method

public GetProcessUpTime ( Process process ) : uint
process Process
return uint

GetStackTraceFromContext() public method

public GetStackTraceFromContext ( Process process, ulong contextAddress, uint contextSize ) : StackTrace
process Process
contextAddress ulong
contextSize uint
return StackTrace

GetThreadContext() public method

Gets the thread context of the specified thread.
public GetThreadContext ( System.Thread thread ) : ThreadContext
thread System.Thread The thread.
return ThreadContext

GetThreadCurrentStackFrame() public method

Gets the current stack frame of the specified thread.
public GetThreadCurrentStackFrame ( System.Thread thread ) : StackFrame
thread System.Thread The thread.
return StackFrame

GetThreadEnvironmentBlockAddress() public method

Gets the environment block address of the specified thread.
public GetThreadEnvironmentBlockAddress ( System.Thread thread ) : ulong
thread System.Thread The thread.
return ulong

GetThreadStackTrace() public method

Gets the stack trace of the specified thread.
public GetThreadStackTrace ( System.Thread thread ) : StackTrace
thread System.Thread The thread.
return StackTrace

IsMinidump() public method

public IsMinidump ( Process process ) : bool
process Process
return bool

QueryVirtual() public method

public QueryVirtual ( Process process, ulong address, ulong &baseAddress, ulong &regionSize ) : void
process Process
address ulong
baseAddress ulong
regionSize ulong
return void

ReadAnsiString() public method

Reads the ANSI string.
public ReadAnsiString ( Process process, ulong address, int length = -1 ) : string
process Process The process.
address ulong The address.
length int The length. If length is -1, string is null terminated
return string

ReadInput() public method

Reads the line from the debugger input.
This function is not planned to be implemented for VS debugger.
public ReadInput ( ) : string
return string

ReadMemory() public method

Reads the memory from the specified process.
public ReadMemory ( Process process, ulong address, uint size ) : MemoryBuffer
process Process The process.
address ulong The memory address.
size uint The buffer size.
return CsDebugScript.Engine.Utility.MemoryBuffer

ReadUnicodeString() public method

Reads the unicode string.
public ReadUnicodeString ( Process process, ulong address, int length = -1 ) : string
process Process The process.
address ulong The address.
length int The length. If length is -1, string is null terminated
return string

SetCurrentProcess() public method

Sets the current process.
Process wasn't found
public SetCurrentProcess ( Process process ) : void
process Process The process.
return void

SetCurrentStackFrame() public method

public SetCurrentStackFrame ( StackFrame stackFrame ) : void
stackFrame StackFrame
return void

SetCurrentThread() public method

Sets the current thread.
Thread wasn't found
public SetCurrentThread ( System.Thread thread ) : void
thread System.Thread The thread.
return void

Terminate() public method

Terminates given process.
public Terminate ( Process process ) : void
process Process Process to Terminate.
return void

VSDebugger() public method

Initializes a new instance of the VSDebugger class.
public VSDebugger ( VSDebuggerProxy proxy ) : System
proxy VSDebuggerProxy The Visual Studio debugger proxy running in Default AppDomain.
return System