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" );