forked from qt-creator/qt-creator
		
	
		
			
				
	
	
		
			127 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <windows.h>
 | 
						|
#include <dbgeng.h>
 | 
						|
 | 
						|
class Debugger;
 | 
						|
 | 
						|
class WinDbgEventCallback : public IDebugEventCallbacks
 | 
						|
{
 | 
						|
public:
 | 
						|
    WinDbgEventCallback(Debugger* dbg)
 | 
						|
        : m_pDebugger(dbg)
 | 
						|
    {}
 | 
						|
 | 
						|
    // IUnknown.
 | 
						|
    STDMETHOD(QueryInterface)(
 | 
						|
        THIS_
 | 
						|
        IN REFIID InterfaceId,
 | 
						|
        OUT PVOID* Interface
 | 
						|
        );
 | 
						|
    STDMETHOD_(ULONG, AddRef)(
 | 
						|
        THIS
 | 
						|
        );
 | 
						|
    STDMETHOD_(ULONG, Release)(
 | 
						|
        THIS
 | 
						|
        );
 | 
						|
 | 
						|
    // IDebugEventCallbacks.
 | 
						|
 | 
						|
    STDMETHOD(GetInterestMask)(
 | 
						|
        THIS_
 | 
						|
        __out PULONG Mask
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(Breakpoint)(
 | 
						|
        THIS_
 | 
						|
        __in PDEBUG_BREAKPOINT Bp
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(Exception)(
 | 
						|
        THIS_
 | 
						|
        __in PEXCEPTION_RECORD64 Exception,
 | 
						|
        __in ULONG FirstChance
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(CreateThread)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG64 Handle,
 | 
						|
        __in ULONG64 DataOffset,
 | 
						|
        __in ULONG64 StartOffset
 | 
						|
        );
 | 
						|
    STDMETHOD(ExitThread)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG ExitCode
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(CreateProcess)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG64 ImageFileHandle,
 | 
						|
        __in ULONG64 Handle,
 | 
						|
        __in ULONG64 BaseOffset,
 | 
						|
        __in ULONG ModuleSize,
 | 
						|
        __in_opt PCSTR ModuleName,
 | 
						|
        __in_opt PCSTR ImageName,
 | 
						|
        __in ULONG CheckSum,
 | 
						|
        __in ULONG TimeDateStamp,
 | 
						|
        __in ULONG64 InitialThreadHandle,
 | 
						|
        __in ULONG64 ThreadDataOffset,
 | 
						|
        __in ULONG64 StartOffset
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(ExitProcess)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG ExitCode
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(LoadModule)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG64 ImageFileHandle,
 | 
						|
        __in ULONG64 BaseOffset,
 | 
						|
        __in ULONG ModuleSize,
 | 
						|
        __in_opt PCSTR ModuleName,
 | 
						|
        __in_opt PCSTR ImageName,
 | 
						|
        __in ULONG CheckSum,
 | 
						|
        __in ULONG TimeDateStamp
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(UnloadModule)(
 | 
						|
        THIS_
 | 
						|
        __in_opt PCSTR ImageBaseName,
 | 
						|
        __in ULONG64 BaseOffset
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(SystemError)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG Error,
 | 
						|
        __in ULONG Level
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(SessionStatus)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG Status
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(ChangeDebuggeeState)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG Flags,
 | 
						|
        __in ULONG64 Argument
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(ChangeEngineState)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG Flags,
 | 
						|
        __in ULONG64 Argument
 | 
						|
        );
 | 
						|
 | 
						|
    STDMETHOD(ChangeSymbolState)(
 | 
						|
        THIS_
 | 
						|
        __in ULONG Flags,
 | 
						|
        __in ULONG64 Argument
 | 
						|
        );
 | 
						|
 | 
						|
private:
 | 
						|
    Debugger*   m_pDebugger;
 | 
						|
};
 | 
						|
 |