Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
///////////////////////////////////////////////////////////////////////////////
// Copyright (C) Microsoft Corporation, 2000.
//
// debugmon.hpp
//
// Direct3D Debug Monitor
//
///////////////////////////////////////////////////////////////////////////////
#ifndef _DEBUGMON_HPP
#define _DEBUGMON_HPP
#include "d3ddm.hpp"
//////////////////////////////////////////////////////////////////////////
//
// Shared Memory object - creates or attaches to shared memory identified
// by character string name and of the size (in bytes) provided to
// constructor
//
//////////////////////////////////////////////////////////////////////////
class D3DSharedMem { private: HANDLE m_hFileMap; void* m_pMem; BOOL m_bAlreadyExisted; public: //
// 6/20/2000(RichGr) - IA64: Change first parameter from int to INT_PTR so that
// all parameters are the same length. This is needed to make the va_start
// macro work correctly.
D3DSharedMem(INT_PTR cbSize, const char* pszFormat, ...); ~D3DSharedMem(void); void* GetPtr(void) { return m_pMem; } BOOL AlreadyExisted(void) { return m_bAlreadyExisted; } }; //////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//
//
//
//////////////////////////////////////////////////////////////////////////
class D3DDebugMonitor { public: D3DDebugMonitor( void ); ~D3DDebugMonitor( void );
// communications between target and monitor
DebugTargetContext* m_pTgtCtx; const DebugMonitorContext* m_pMonCtx; void* m_pCmdData; HANDLE m_hTgtEventBP; HANDLE m_hTgtEventAck; HANDLE m_hMonEventCmd; BOOL m_bDbgMonConnectionEnabled;
HRESULT AttachToMonitor( int iMon ); void DetachMonitorConnection( void ); BOOL CheckLostMonitorConnection( void );
inline BOOL MonitorConnected( void ) { return (NULL != m_pMonCtx); } inline UINT32 MonitorEventBP( void ) { return MonitorConnected() ? (m_pMonCtx->EventBP) : (0x0); }
BOOL IsEventBreak( UINT32 EventType ); HRESULT MonitorBreakpoint( void );
virtual HRESULT ProcessMonitorCommand( void ) = 0;
inline void StateChanged( UINT32 WhichState ) { m_pTgtCtx->StateChanged |= WhichState; }
protected: // shared-memory segments for the communications resources
D3DSharedMem* m_pMonCtxSM; D3DSharedMem* m_pTgtCtxSM; D3DSharedMem* m_pCmdDataSM;
};
///////////////////////////////////////////////////////////////////////////////
#endif // _DEBUGMON_HPP
|