mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 03:23:23 +08:00
[0.0 -> 0.1 ] integrated dbgcmd.h
git-svn-id: https://pykd.svn.codeplex.com/svn@70292 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
aea113947f
commit
ee60976466
86
pykd/dbgcmd.h
Normal file
86
pykd/dbgcmd.h
Normal file
@ -0,0 +1,86 @@
|
||||
#pragma once
|
||||
|
||||
#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( ¤tStatus );
|
||||
|
||||
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();
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
Loading…
Reference in New Issue
Block a user