pykd/pykd/dbgcmd.h
SND\kernelnet_cp 92538913e1 [0.1.x] added : compareMemory routine
git-svn-id: https://pykd.svn.codeplex.com/svn@71402 9b283d60-5439-405e-af05-b73fd8c4d996
2017-11-08 17:06:26 +04:00

136 lines
3.0 KiB
C++

#pragma once
#include <string>
#include "dbgobj.h"
namespace pykd {
///////////////////////////////////////////////////////////////////////////////////
std::string
dbgCommand( const std::wstring &command );
ULONG64
evaluate( const std::wstring &expression );
void
breakin();
///////////////////////////////////////////////////////////////////////////////////
class DbgExtension : private DbgObject {
public:
DbgExtension( IDebugClient4 *client, const std::wstring &extPath );
virtual ~DbgExtension();
std::string
call( const std::wstring &command, const std::wstring &param );
private:
ULONG64 m_handle;
};
typedef boost::shared_ptr<DbgExtension> DbgExtensionPtr;
DbgExtensionPtr
loadExtension( const std::wstring &extPath );
///////////////////////////////////////////////////////////////////////////////////
}; // end of namespace pykd
//#include <string>
//#include <map>
//#include "pyaux.h"
///////////////////////////////////////////////////////////////////////////////////
//
//std::string
//dbgCommand( const std::wstring &command );
//
//template <ULONG status>
//void
//setExecutionStatus()
//{
// HRESULT hres;
//
// hres = dbgExt->control->SetExecutionStatus( status );
//
// if ( FAILED( hres ) )
// throw DbgException( "IDebugControl::SetExecutionStatus failed" );
//
// ULONG currentStatus;
//
// do {
//
// {
// PyThread_StateRestore pyThreadRestore;
// hres = dbgExt->control->WaitForEvent( 0, INFINITE );
// }
//
// if ( FAILED( hres ) )
// {
// if (E_UNEXPECTED == hres)
// throw WaitEventException();
//
// throw DbgException( "IDebugControl::WaitForEvent failed" );
// }
//
// hres = dbgExt->control->GetExecutionStatus( &currentStatus );
//
// if ( FAILED( hres ) )
// throw DbgException( "IDebugControl::GetExecutionStatus failed" );
//
// } while( currentStatus != DEBUG_STATUS_BREAK && currentStatus != DEBUG_STATUS_NO_DEBUGGEE );
//
//}
//
///////////////////////////////////////////////////////////////////////////////////
//
//class dbgExtensionClass {
//
//public:
//
// dbgExtensionClass() :
// m_handle( NULL )
// {}
//
// dbgExtensionClass( const char* path );
//
// ~dbgExtensionClass();
//
// std::string
// call( const std::string &command, const std::string param );
//
// std::string
// print() const;
//
//private:
//
// ULONG64 m_handle;
// std::string m_path;
//};
//
//
///////////////////////////////////////////////////////////////////////////////////
//
//ULONG64
//evaluate( const std::string &expression );
//
///////////////////////////////////////////////////////////////////////////////////
//
//void
//breakin();
//
///////////////////////////////////////////////////////////////////////////////////