From b58e7e0b81b653e28ffa6234d4a21fb650aac861 Mon Sep 17 00:00:00 2001 From: "SND\\ussrhero_cp" Date: Mon, 7 Dec 2015 20:35:05 +0000 Subject: [PATCH] [0.3.x] added : getLocalProcesses routine ( Return list of runnng processes on the host system ) git-svn-id: https://pykd.svn.codeplex.com/svn@90880 9b283d60-5439-405e-af05-b73fd8c4d996 --- pykd/pydbgeng.cpp | 20 ++++++++++++++++++++ pykd/pydbgeng.h | 1 + pykd/pymod.cpp | 2 ++ 3 files changed, 23 insertions(+) diff --git a/pykd/pydbgeng.cpp b/pykd/pydbgeng.cpp index cf6ba02..b7d955c 100644 --- a/pykd/pydbgeng.cpp +++ b/pykd/pydbgeng.cpp @@ -143,6 +143,26 @@ python::list getTargetProcesses() /////////////////////////////////////////////////////////////////////////////// +python::list getLocalProcesses() +{ + std::vector processInfoLst; + + do { + AutoRestorePyState pystate; + kdlib::getLiveProcessesList(processInfoLst); + + } while(false); + + python::list lst; + + for ( unsigned long i = 0; i < processInfoLst.size(); ++i) + lst.append( python::make_tuple( processInfoLst[i].pid, processInfoLst[i].name, processInfoLst[i].user ) ); + + return lst; +} + +/////////////////////////////////////////////////////////////////////////////// + python::tuple getBugCheckData() { kdlib::SystemCrashInfo crashInfo = {}; diff --git a/pykd/pydbgeng.h b/pykd/pydbgeng.h index f883b1c..8902943 100644 --- a/pykd/pydbgeng.h +++ b/pykd/pydbgeng.h @@ -274,6 +274,7 @@ inline kdlib::MEMOFFSET_64 getImplicitProcessOffset() python::list getProcessThreads(); python::list getTargetProcesses(); +python::list getLocalProcesses(); /////////////////////////////////////////////////////////////////////////////// diff --git a/pykd/pymod.cpp b/pykd/pymod.cpp index 04b12ae..bbb0de2 100644 --- a/pykd/pymod.cpp +++ b/pykd/pymod.cpp @@ -165,6 +165,8 @@ BOOST_PYTHON_MODULE( pykd ) "Check if script works in windbg context" ); python::def( "writeDump", pykd::writeDump, "Create memory dump file" ); + python::def( "getLocalProcesses", pykd::getLocalProcesses, + "Return list of runnng processes on the host system" ); python::def( "breakin", pykd::targetBreak, "Break into debugger" );