diff options
Diffstat (limited to 'src/ToolBox/SOS/Strike/xplat/dbgeng.h')
-rw-r--r-- | src/ToolBox/SOS/Strike/xplat/dbgeng.h | 485 |
1 files changed, 0 insertions, 485 deletions
diff --git a/src/ToolBox/SOS/Strike/xplat/dbgeng.h b/src/ToolBox/SOS/Strike/xplat/dbgeng.h deleted file mode 100644 index 5dcf9572bb..0000000000 --- a/src/ToolBox/SOS/Strike/xplat/dbgeng.h +++ /dev/null @@ -1,485 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -//---------------------------------------------------------------------------- -// -// Debugger engine interface subset implemented with ILLDBServices -// -//---------------------------------------------------------------------------- - -#ifndef __DBGENG_H__ -#define __DBGENG_H__ - -#include <unknwn.h> -#include <rpc.h> -#include <lldbservices.h> - -#ifdef __cplusplus -extern "C" { -#endif - -class DebugClient -{ -private: - LONG m_ref; - ILLDBServices *m_lldbservices; - -public: - DebugClient(ILLDBServices *lldbservices) : - m_ref(1), - m_lldbservices(lldbservices) - { - m_lldbservices->AddRef(); - } - - //---------------------------------------------------------------------------- - // IUnknown - //---------------------------------------------------------------------------- - - HRESULT - QueryInterface( - REFIID InterfaceId, - PVOID* Interface); - - ULONG AddRef(); - - ULONG Release(); - - //---------------------------------------------------------------------------- - // IDebugControl2 - //---------------------------------------------------------------------------- - - // Checks for a user interrupt, such a Ctrl-C - // or stop button. - // This method is reentrant. - HRESULT - GetInterrupt() - { - return m_lldbservices->GetInterrupt(); - } - - // Sends output through clients - // output callbacks if the mask is allowed - // by the current output control mask and - // according to the output distribution - // settings. - HRESULT - Output( - ULONG mask, - PCSTR format, - ...) - { - va_list args; - va_start (args, format); - HRESULT result = m_lldbservices->OutputVaList(mask, format, args); - va_end (args); - return result; - } - - HRESULT - OutputVaList( - ULONG mask, - PCSTR format, - va_list args) - { - char str[4096]; - int length = _vsnprintf_s(str, sizeof(str), _TRUNCATE, format, args); - if (length > 0) - { - return Output(mask, "%s", str); - } - return E_FAIL; - } - - // The following methods allow direct control - // over the distribution of the given output - // for situations where something other than - // the default is desired. These methods require - // extra work in the engine so they should - // only be used when necessary. - HRESULT - ControlledOutput( - ULONG outputControl, - ULONG mask, - PCSTR format, - ...) - { - va_list args; - va_start (args, format); - HRESULT result = ControlledOutputVaList(outputControl, mask, format, args); - va_end (args); - return result; - } - - HRESULT - ControlledOutputVaList( - ULONG outputControl, - ULONG mask, - PCSTR format, - va_list args) - { - return OutputVaList(mask, format, args); - } - - // Returns information about the debuggee such - // as user vs. kernel, dump vs. live, etc. - HRESULT - GetDebuggeeType( - PULONG debugClass, - PULONG qualifier) - { - return m_lldbservices->GetDebuggeeType(debugClass, qualifier); - } - - // Returns the page size for the currently executing - // processor context. The page size may vary between - // processor types. - HRESULT - GetPageSize( - PULONG size) - { - return m_lldbservices->GetPageSize(size); - } - - HRESULT - GetExecutingProcessorType( - PULONG type) - { - return m_lldbservices->GetExecutingProcessorType(type); - } - - HRESULT - Execute( - ULONG outputControl, - PCSTR command, - ULONG flags) - { - return m_lldbservices->Execute(outputControl, command, flags); - } - - HRESULT - GetLastEventInformation( - PULONG type, - PULONG processId, - PULONG threadId, - PVOID extraInformation, - ULONG extraInformationSize, - PULONG extraInformationUsed, - PSTR description, - ULONG descriptionSize, - PULONG descriptionUsed) - { - return m_lldbservices->GetLastEventInformation(type, processId, threadId, extraInformation, - extraInformationSize, extraInformationUsed, description, descriptionSize, descriptionUsed); - } - - HRESULT - Disassemble( - ULONG64 offset, - ULONG flags, - PSTR buffer, - ULONG bufferSize, - PULONG disassemblySize, - PULONG64 endOffset) - { - return m_lldbservices->Disassemble(offset, flags, buffer, bufferSize, disassemblySize, endOffset); - } - - //---------------------------------------------------------------------------- - // IDebugControl4 - //---------------------------------------------------------------------------- - - // Stack tracing with a full initial context - // and full context return for each frame. - // The FrameContextsSize parameter is the total - // byte size of FrameContexts. FrameContextsEntrySize - // gives the byte size of each entry in - // FrameContexts. - HRESULT - GetContextStackTrace( - PVOID startContext, - ULONG startContextSize, - PDEBUG_STACK_FRAME frames, - ULONG framesSize, - PVOID frameContexts, - ULONG frameContextsSize, - ULONG frameContextsEntrySize, - PULONG framesFilled) - { - return m_lldbservices->GetContextStackTrace(startContext, startContextSize, frames, - framesSize, frameContexts, frameContextsSize, frameContextsEntrySize, framesFilled); - } - - //---------------------------------------------------------------------------- - // IDebugDataSpaces - //---------------------------------------------------------------------------- - - HRESULT - ReadVirtual( - ULONG64 offset, - PVOID buffer, - ULONG bufferSize, - PULONG bytesRead) - { - return m_lldbservices->ReadVirtual(offset, buffer, bufferSize, bytesRead); - } - - HRESULT - WriteVirtual( - ULONG64 offset, - PVOID buffer, - ULONG bufferSize, - PULONG bytesWritten) - { - return m_lldbservices->WriteVirtual(offset, buffer, bufferSize, bytesWritten); - } - - //---------------------------------------------------------------------------- - // IDebugSymbols - //---------------------------------------------------------------------------- - - HRESULT - GetSymbolOptions( - PULONG options) - { - return m_lldbservices->GetSymbolOptions(options); - } - - HRESULT - GetNameByOffset( - ULONG64 offset, - PSTR nameBuffer, - ULONG nameBufferSize, - PULONG nameSize, - PULONG64 displacement) - { - return m_lldbservices->GetNameByOffset(offset, nameBuffer, nameBufferSize, nameSize, displacement); - } - - HRESULT - GetNumberModules( - PULONG loaded, - PULONG unloaded) - { - return m_lldbservices->GetNumberModules(loaded, unloaded); - } - - HRESULT GetModuleByIndex( - ULONG index, - PULONG64 base) - { - return m_lldbservices->GetModuleByIndex(index, base); - } - - HRESULT - GetModuleByModuleName( - PCSTR name, - ULONG startIndex, - PULONG index, - PULONG64 base) - { - return m_lldbservices->GetModuleByModuleName(name, startIndex, index, base); - } - - HRESULT - GetModuleByOffset( - ULONG64 offset, - ULONG startIndex, - PULONG index, - PULONG64 base) - { - return m_lldbservices->GetModuleByOffset(offset, startIndex, index, base); - } - - HRESULT - GetModuleNames( - ULONG index, - ULONG64 base, - PSTR imageNameBuffer, - ULONG imageNameBufferSize, - PULONG imageNameSize, - PSTR moduleNameBuffer, - ULONG moduleNameBufferSize, - PULONG moduleNameSize, - PSTR loadedImageNameBuffer, - ULONG loadedImageNameBufferSize, - PULONG loadedImageNameSize) - { - return m_lldbservices->GetModuleNames(index, base, imageNameBuffer, imageNameBufferSize, imageNameSize, moduleNameBuffer, - moduleNameBufferSize, moduleNameSize, loadedImageNameBuffer, loadedImageNameBufferSize, loadedImageNameSize); - } - - HRESULT - GetLineByOffset( - ULONG64 offset, - PULONG line, - PSTR fileBuffer, - ULONG fileBufferSize, - PULONG fileSize, - PULONG64 displacement) - { - return m_lldbservices->GetLineByOffset(offset, line, fileBuffer, fileBufferSize, fileSize, displacement); - } - - HRESULT - GetSourceFileLineOffsets( - PCSTR file, - PULONG64 buffer, - ULONG bufferLines, - PULONG fileLines) - { - return m_lldbservices->GetSourceFileLineOffsets(file, buffer, bufferLines, fileLines); - } - - // Uses the given file path and the source path - // information to try and locate an existing file. - // The given file path is merged with elements - // of the source path and checked for existence. - // If a match is found the element used is returned. - // A starting element can be specified to restrict - // the search to a subset of the path elements; - // this can be useful when checking for multiple - // matches along the source path. - // The returned element can be 1, indicating - // the file was found directly and not on the path. - HRESULT - FindSourceFile( - ULONG startElement, - PCSTR file, - ULONG flags, - PULONG foundElement, - PSTR buffer, - ULONG bufferSize, - PULONG foundSize) - { - return m_lldbservices->FindSourceFile(startElement, file, flags, foundElement, buffer, bufferSize, foundSize); - } - - //---------------------------------------------------------------------------- - // IDebugSystemObjects - //---------------------------------------------------------------------------- - - HRESULT - GetCurrentProcessId( - PULONG id) - { - return m_lldbservices->GetCurrentProcessId(id); - } - - HRESULT - GetCurrentThreadId( - PULONG id) - { - return m_lldbservices->GetCurrentThreadId(id); - } - - HRESULT - SetCurrentThreadId( - ULONG id) - { - return m_lldbservices->SetCurrentThreadId(id); - } - - HRESULT - GetCurrentThreadSystemId( - PULONG sysId) - { - return m_lldbservices->GetCurrentThreadSystemId(sysId); - } - - HRESULT - GetThreadIdBySystemId( - ULONG sysId, - PULONG threadId) - { - return m_lldbservices->GetThreadIdBySystemId(sysId, threadId); - } - - HRESULT - GetThreadContextById( - /* in */ ULONG32 threadID, - /* in */ ULONG32 contextFlags, - /* in */ ULONG32 contextSize, - /* out */ PBYTE context) - { - return m_lldbservices->GetThreadContextById(threadID, contextFlags, contextSize, context); - } - - //---------------------------------------------------------------------------- - // IDebugRegisters - //---------------------------------------------------------------------------- - - HRESULT - GetValueByName( - PCSTR name, - PDWORD_PTR debugValue) - { - return m_lldbservices->GetValueByName(name, debugValue); - } - - HRESULT - GetInstructionOffset( - PULONG64 offset) - { - return m_lldbservices->GetInstructionOffset(offset); - } - - HRESULT - GetStackOffset( - PULONG64 offset) - { - return m_lldbservices->GetStackOffset(offset); - } - - HRESULT - GetFrameOffset( - PULONG64 offset) - { - return m_lldbservices->GetFrameOffset(offset); - } -}; - -MIDL_INTERFACE("d4366723-44df-4bed-8c7e-4c05424f4588") -IDebugControl2 : DebugClient -{ -}; - -MIDL_INTERFACE("94e60ce9-9b41-4b19-9fc0-6d9eb35272b3") -IDebugControl4 : DebugClient -{ -}; - -MIDL_INTERFACE("88f7dfab-3ea7-4c3a-aefb-c4e8106173aa") -IDebugDataSpaces : DebugClient -{ -}; - -MIDL_INTERFACE("8c31e98c-983a-48a5-9016-6fe5d667a950") -IDebugSymbols : DebugClient -{ -}; - -MIDL_INTERFACE("6b86fe2c-2c4f-4f0c-9da2-174311acc327") -IDebugSystemObjects : DebugClient -{ -}; - -MIDL_INTERFACE("ce289126-9e84-45a7-937e-67bb18691493") -IDebugRegisters : DebugClient -{ -}; - -typedef interface ILLDBServices* PDEBUG_CLIENT; -typedef interface IDebugControl2* PDEBUG_CONTROL2; -typedef interface IDebugControl4* PDEBUG_CONTROL4; -typedef interface IDebugDataSpaces* PDEBUG_DATA_SPACES; -typedef interface IDebugSymbols* PDEBUG_SYMBOLS; -typedef interface IDebugSystemObjects* PDEBUG_SYSTEM_OBJECTS; -typedef interface IDebugRegisters* PDEBUG_REGISTERS; - -#ifdef __cplusplus -}; -#endif - -#endif // #ifndef __DBGENG_H__ |