mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-29 20:03:33 +08:00
[0.3.x] added : ProcessDebugOptions enumerator
git-svn-id: https://pykd.svn.codeplex.com/svn@90973 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
c9f7ad5e1e
commit
aa872e196f
@ -12,17 +12,17 @@ namespace pykd {
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
inline
|
inline
|
||||||
kdlib::PROCESS_DEBUG_ID startProcess( const std::wstring &processName, bool debugChildren = false )
|
kdlib::PROCESS_DEBUG_ID startProcess(const std::wstring &processName, const kdlib::ProcessDebugFlags& flags = kdlib::ProcessDebugDefault)
|
||||||
{
|
{
|
||||||
AutoRestorePyState pystate;
|
AutoRestorePyState pystate;
|
||||||
return kdlib::startProcess(processName, debugChildren);
|
return kdlib::startProcess(processName, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
kdlib::PROCESS_DEBUG_ID attachProcess( kdlib::PROCESS_ID pid )
|
kdlib::PROCESS_DEBUG_ID attachProcess(kdlib::PROCESS_ID pid, const kdlib::ProcessDebugFlags& flags = kdlib::ProcessDebugDefault)
|
||||||
{
|
{
|
||||||
AutoRestorePyState pystate;
|
AutoRestorePyState pystate;
|
||||||
return kdlib::attachProcess(pid);
|
return kdlib::attachProcess(pid, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline
|
inline
|
||||||
|
@ -36,6 +36,7 @@ static const std::string pykdVersion = PYKD_VERSION_BUILD_STR
|
|||||||
|
|
||||||
|
|
||||||
BOOST_PYTHON_FUNCTION_OVERLOADS( startProcess_, pykd::startProcess, 1, 2 );
|
BOOST_PYTHON_FUNCTION_OVERLOADS( startProcess_, pykd::startProcess, 1, 2 );
|
||||||
|
BOOST_PYTHON_FUNCTION_OVERLOADS( attachProcess_, pykd::attachProcess, 1, 2);
|
||||||
BOOST_PYTHON_FUNCTION_OVERLOADS( detachProcess_, pykd::detachProcess, 0, 1 );
|
BOOST_PYTHON_FUNCTION_OVERLOADS( detachProcess_, pykd::detachProcess, 0, 1 );
|
||||||
BOOST_PYTHON_FUNCTION_OVERLOADS( terminateProcess_, pykd::terminateProcess, 0, 1 );
|
BOOST_PYTHON_FUNCTION_OVERLOADS( terminateProcess_, pykd::terminateProcess, 0, 1 );
|
||||||
BOOST_PYTHON_FUNCTION_OVERLOADS(closeDump_, pykd::closeDump, 0, 1);
|
BOOST_PYTHON_FUNCTION_OVERLOADS(closeDump_, pykd::closeDump, 0, 1);
|
||||||
@ -138,10 +139,10 @@ BOOST_PYTHON_MODULE( pykd )
|
|||||||
|
|
||||||
// Manage debug target
|
// Manage debug target
|
||||||
|
|
||||||
python::def( "startProcess", pykd::startProcess, startProcess_( boost::python::args( "commandline", "debugChildren" ),
|
python::def( "startProcess", pykd::startProcess, startProcess_( boost::python::args( "commandline", "debugOptions"),
|
||||||
"Start process for debugging" ) );
|
"Start process for debugging" ) );
|
||||||
python::def( "attachProcess", pykd::attachProcess,
|
python::def("attachProcess", pykd::attachProcess, attachProcess_(boost::python::args("pid", "debugOptions"),
|
||||||
"Attach debugger to a exsisting process" );
|
"Attach debugger to a exsisting process") );
|
||||||
python::def( "detachProcess", pykd::detachProcess, detachProcess_( boost::python::args( "id" ),
|
python::def( "detachProcess", pykd::detachProcess, detachProcess_( boost::python::args( "id" ),
|
||||||
"Stop process debugging") );
|
"Stop process debugging") );
|
||||||
python::def( "detachAllProcesses", pykd::detachAllProcesses,
|
python::def( "detachAllProcesses", pykd::detachAllProcesses,
|
||||||
@ -1094,6 +1095,14 @@ BOOST_PYTHON_MODULE( pykd )
|
|||||||
.value("PageExecuteWriteCopy", kdlib::PageExecuteWriteCopy)
|
.value("PageExecuteWriteCopy", kdlib::PageExecuteWriteCopy)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
python::enum_<kdlib::ProcessDebugOptions>("ProcessDebugOptions", "Process debug option")
|
||||||
|
.value("BreakOnStart", kdlib::ProcessBreakOnStart)
|
||||||
|
.value("BreakOnStop", kdlib::ProcessBreakOnStop)
|
||||||
|
.value("DebugChildren", kdlib::ProcessDebugChildren)
|
||||||
|
.value("NoDebugHeap", kdlib::ProcessNoDebugHeap)
|
||||||
|
.value("Deafult", kdlib::ProcessDebugDefault)
|
||||||
|
;
|
||||||
|
|
||||||
python::class_<EventHandler, boost::noncopyable>(
|
python::class_<EventHandler, boost::noncopyable>(
|
||||||
"eventHandler", "Base class for overriding and handling debug notifications" )
|
"eventHandler", "Base class for overriding and handling debug notifications" )
|
||||||
.def( "onBreakpoint", &EventHandler::onBreakpoint,
|
.def( "onBreakpoint", &EventHandler::onBreakpoint,
|
||||||
|
@ -81,11 +81,14 @@ if __name__ == "__main__":
|
|||||||
print( "\nTesting PyKd ver. %s" % pykd.__version__ )
|
print( "\nTesting PyKd ver. %s" % pykd.__version__ )
|
||||||
print( "Directory: %s" % os.path.dirname(pykd.__file__) )
|
print( "Directory: %s" % os.path.dirname(pykd.__file__) )
|
||||||
|
|
||||||
|
import time
|
||||||
|
# time.sleep(30)
|
||||||
|
|
||||||
target.appPath = os.path.join( os.path.dirname(pykd.__file__), "targetapp.exe" )
|
target.appPath = os.path.join( os.path.dirname(pykd.__file__), "targetapp.exe" )
|
||||||
target.moduleName = os.path.splitext(os.path.basename(target.appPath))[0]
|
target.moduleName = os.path.splitext(os.path.basename(target.appPath))[0]
|
||||||
|
|
||||||
unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run( getTestSuite() )
|
unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run( getTestSuite() )
|
||||||
#unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run( getTestSuite("typeinfo.TypeInfoTest.testCompareWihNone") )
|
#unittest.TextTestRunner(stream=sys.stdout, verbosity=2).run( getTestSuite("typedvar.TypedVarTest.testCompare") )
|
||||||
|
|
||||||
try: input = raw_input
|
try: input = raw_input
|
||||||
except NameError: pass
|
except NameError: pass
|
||||||
|
Loading…
Reference in New Issue
Block a user