From 6c05d847dee0e4c8c618f3a7e5c84f24d4fbf6cd Mon Sep 17 00:00:00 2001 From: "SND\\ussrhero_cp" Date: Sun, 5 Apr 2015 22:17:31 +0000 Subject: [PATCH] [0.3.x] added : targetSystem.getId method git-svn-id: https://pykd.svn.codeplex.com/svn@90240 9b283d60-5439-405e-af05-b73fd8c4d996 --- pykd/pymod.cpp | 18 ++++++++++++++++ pykd/pyprocess.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/pykd/pymod.cpp b/pykd/pymod.cpp index e5dfce9..4b76516 100644 --- a/pykd/pymod.cpp +++ b/pykd/pymod.cpp @@ -516,8 +516,12 @@ BOOST_PYTHON_MODULE( pykd ) "Return current target system").staticmethod("getCurrent") .def("getSystem", TargetSystemAdapter::getSystem, "Return target system by index").staticmethod("getSystem") + .def("getSystemById", TargetSystemAdapter::getSystemById, + "Return target system by id").staticmethod("getSystemById") .add_property("desc", TargetSystemAdapter::getDescription, "Retunr target system description") + .add_property("id", TargetSystemAdapter::getId, + "Return id of the target system" ) .def("isDumpAnalyzing", TargetSystemAdapter::isDumpAnalyzing, "Check if it is a dump analyzing ( not living debuggee )") .def("isKernelDebugging", TargetSystemAdapter::isKernelDebugging, @@ -541,8 +545,12 @@ BOOST_PYTHON_MODULE( pykd ) "Return a current process" ).staticmethod("getCurrent") .def("getProcess", TargetProcessAdapter::getProcess, "Return process by index").staticmethod("getProcess") + .def("getProcessById", TargetProcessAdapter::getProcessById, + "Return process by id").staticmethod("getProcessById") .add_property("systemID", TargetProcessAdapter::getSystemId, "Retrun system process ID ( PID )" ) + .add_property("id", TargetProcessAdapter::getId, + "Return process id") .add_property("peb", TargetProcessAdapter::getPebOffset, "Return PEB address" ) .add_property("exeName", TargetProcessAdapter::getExeName, @@ -562,6 +570,16 @@ BOOST_PYTHON_MODULE( pykd ) ; python::class_("targetThread", "Class representing process in the target system", python::no_init ) + .def("getNumber", TargetThreadAdapter::getNumberThreads, + "Return number of threads").staticmethod("getNumber") + .def("getCurrent", TargetThreadAdapter::getCurrent, + "Return a current thread").staticmethod("getCurrent") + .def("getThread", TargetThreadAdapter::getThread, + "Return thread by index").staticmethod("getThread") + .def("getThreadById", TargetThreadAdapter::getThreadById, + "Return process by id").staticmethod("getThreadById") + .add_property("id", TargetThreadAdapter::getId, + "Return thread id") .add_property("systemID", TargetThreadAdapter::getSystemId, "Retrun system thread ID ( TID )" ) .add_property("teb", TargetThreadAdapter::getTebOffset, diff --git a/pykd/pyprocess.h b/pykd/pyprocess.h index 5d1d5e5..46d71cf 100644 --- a/pykd/pyprocess.h +++ b/pykd/pyprocess.h @@ -27,12 +27,24 @@ struct TargetSystemAdapter { return kdlib::TargetSystem::getByIndex(index); } + static kdlib::TargetSystemPtr getSystemById(kdlib::SYSTEM_DEBUG_ID id) + { + AutoRestorePyState pystate; + return kdlib::TargetSystem::getById(id); + } + static std::wstring getDescription(kdlib::TargetSystem& system) { AutoRestorePyState pystate; return system.getDescription(); } + static kdlib::SYSTEM_DEBUG_ID getId(kdlib::TargetSystem& system) + { + AutoRestorePyState pystate; + return system.getId(); + } + static bool isDumpAnalyzing(kdlib::TargetSystem& system) { AutoRestorePyState pystate; @@ -91,6 +103,12 @@ struct TargetProcessAdapter { return kdlib::TargetProcess::getByIndex(index); } + static kdlib::TargetProcessPtr getProcessById(kdlib::PROCESS_DEBUG_ID id) + { + AutoRestorePyState pystate; + return kdlib::TargetProcess::getById(id); + } + static unsigned long getNumberProcesses() { AutoRestorePyState pystate; @@ -103,6 +121,12 @@ struct TargetProcessAdapter { return process.getSystemId(); } + static kdlib::PROCESS_DEBUG_ID getId(kdlib::TargetProcess& process) + { + AutoRestorePyState pystate; + return process.getId(); + } + static kdlib::MEMOFFSET_64 getPebOffset(kdlib::TargetProcess& process) { AutoRestorePyState pystate; @@ -161,6 +185,36 @@ struct TargetProcessAdapter { struct TargetThreadAdapter { + static unsigned long getNumberThreads() + { + AutoRestorePyState pystate; + return kdlib::TargetThread::getNumber(); + } + + static kdlib::TargetThreadPtr getCurrent() + { + AutoRestorePyState pystate; + return kdlib::TargetThread::getCurrent(); + } + + static kdlib::TargetThreadPtr getThread(unsigned long index) + { + AutoRestorePyState pystate; + return kdlib::TargetThread::getByIndex(index); + } + + static kdlib::TargetThreadPtr getThreadById(kdlib::THREAD_DEBUG_ID id) + { + AutoRestorePyState pystate; + return kdlib::TargetThread::getById(id); + } + + static kdlib::THREAD_DEBUG_ID getId(kdlib::TargetThread& thread) + { + AutoRestorePyState pystate; + return thread.getId(); + } + static kdlib::THREAD_ID getSystemId(kdlib::TargetThread& thread ) { AutoRestorePyState pystate;